提交 015b6f24 authored 作者: 陈泽健's avatar 陈泽健

feat(新统一平台): 更新平台配置与测试逻辑

- 新统一前后台浏览器初始化名称
- 修改配置文件中前后台系统URL
- 调整ngrok远程端口
- 更新后台测试用例标签及数据源- 修改定时任务执行脚本路径与参数
- 生成新测试报告文件
上级 7ee620ce
...@@ -941,7 +941,7 @@ def dingding_send_message(latest_report, title, mobile, ding_type): ...@@ -941,7 +941,7 @@ def dingding_send_message(latest_report, title, mobile, ding_type):
logging.info(f"钉钉机器人Webhook URL: {final_webhook_url}") logging.info(f"钉钉机器人Webhook URL: {final_webhook_url}")
# 调用测试结果获取函数 # 调用测试结果获取函数
browser_init("兰州中石化项目测试环境") browser_init("新统一平台前台")
wd = GSTORE['wd'] wd = GSTORE['wd']
# print(latest_report) # print(latest_report)
test_result = get_test_result(latest_report, wd) test_result = get_test_result(latest_report, wd)
......
...@@ -8,7 +8,7 @@ from 新统一平台.Base.base import * ...@@ -8,7 +8,7 @@ from 新统一平台.Base.base import *
def suite_setup(): def suite_setup():
STEP(1, "初始化浏览器") STEP(1, "初始化浏览器")
browser_init("新统一平台") browser_init("标准版新统一平台前台")
def suite_teardown(): def suite_teardown():
browser_quit() browser_quit()
\ No newline at end of file
...@@ -8,7 +8,7 @@ from 新统一平台.Base.base import * ...@@ -8,7 +8,7 @@ from 新统一平台.Base.base import *
def suite_setup(): def suite_setup():
STEP(1, "初始化浏览器") STEP(1, "初始化浏览器")
browser_init("新统一平台") browser_init("标准版新统一平台后台")
def suite_teardown(): def suite_teardown():
browser_quit() browser_quit()
\ No newline at end of file
...@@ -10,13 +10,13 @@ sys.path.append(platform_path) ...@@ -10,13 +10,13 @@ sys.path.append(platform_path)
from 新统一平台.Base.base import * from 新统一平台.Base.base import *
# 构建XLSX文件的绝对路径 # 构建XLSX文件的绝对路径
xlsx_file_path = os.path.join(current_dir,'..', '测试数据', '会议预定测试用例.xlsx') xlsx_file_path = os.path.join(current_dir,'..', '测试数据', '新统一平台测试用例.xlsx')
class NewUnifiedPlatform: class NewUnifiedPlatform:
#执行指令: #执行指令:
# cd ./统一平台/ # cd ./统一平台/
# hytest --tag 新统一平台 # hytest --tag 新统一平台
tags = ['新统一平台后台系统标准版'] tags = ['新统一平台后台系统']
ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name="管理后台", case_type="标准版") ddt_cases = read_xlsx_data(xlsx_file_path, sheet_name="管理后台", case_type="标准版")
def teststeps(self): def teststeps(self):
......
{ {
"标准版新统一平台": "https://192.168.5.44" "新统一平台前台": "https://192.168.5.44",
"新统一平台后台系统": "https://192.168.5.44/#/LoginAdmin"
} }
\ No newline at end of file
...@@ -4,4 +4,4 @@ tunnels: ...@@ -4,4 +4,4 @@ tunnels:
nat1: nat1:
proto: proto:
tcp: 127.0.0.1:80 tcp: 127.0.0.1:80
remote_port: 31136 remote_port: 31137
<!DOCTYPE html>
<html>
<head>
<title>兰州中石化项目测试报告</title>
<meta charset="UTF-8">
<style>body {
font-family: consolas, Verdana, sans-serif;
font-size: 1.2em;
color: #696e71;
display: grid;
grid-template-columns: 1fr 5rem;
}
.main_section {
width: 90%;
margin: 0 auto;
}
#float_menu{
position:fixed;
top:0;
right:0;
text-align: center;
}
#float_menu .menu-item {
cursor: pointer;
padding: .5em;
margin: .5em 0;
color: #c08580;
background-color: #f8f0ef;
font-size: 1.2em;
}
.result{
display: flex;
}
.result_table{
border-collapse: collapse;
border: 1px solid #f0e0e5;
width: 30em;
text-align: center;
font-size: 1.0em;
}
.result_table td{
border: 1px solid #f0e0e5;
padding: .3em;
}
.result_barchart{
width: 30em;
margin: 0 5em 0 5em;
}
.barchar_item{
margin: 2.5rem 0;
}
.barchart_barbox {
margin: 0.5em 0;
width: 100%;
background-color: #fff;
border: 1px solid #86c2dd;
border-radius: .2em;
}
.barchart_bar {
text-align: right;
height: 1.2rem;
}
.h3_button {
margin: 1.5em;
cursor: pointer;
color: #03a9f4;
}
.info
{
white-space:pre-wrap;
margin: .8em 1.5em;
}
.error-info
{
color: #a64747
}
.suite_dir {
margin: 1em .2em;
padding: .3em;
/* background-color: #dfeff6; */
border: 1px solid #bcd8e4;
}
.suite_file {
margin: 1em .2em;
padding: .3em;
border: 1px solid #bcd8e4;
}
.case {
margin: 1em .2em;
/* padding: .3em; */
border: 1px solid #e7d4d4;
}
.case_class_path{
margin: 0em 1em;
}
.folder_header {
padding: .2em .7em;
background-color: #fffaf9;
cursor: pointer;
}
.setup{
margin: .2em;
/* padding: .3em; */
/* border: 1px solid #e7d4d4; */
}
.teardown{
margin: .2em;
/* padding: .3em;*/
/* border: 1px solid #e7d4d4; */
}
.test_steps{
margin: .2em;
padding: .3em;
/* border: 1px solid #e7d4d4; */
}
.label {
display: inline-block;
padding: .1em .5em;
font-size: .88em;
letter-spacing: 1px;
white-space: nowrap;
color: #0d6ebc;
border-radius: .2em;
min-width: 5em;
margin-right: 2em;
font-family: consolas;
}
/* .suite_setup .label{
color: #219e26 ;
}
.suite_teardown .label{
color: #219e26;
} */
/* .case.pass .casename{
color: #329132 ;
} */
.case.pass .caselabel{
color: white;
background-color: #3b9e3f;
}
/* .case.fail .casename{
color: #a64747;
} */
.case.fail .caselabel{
color: white;
background-color: #a64747;
}
/* .case.abort .casename{
color: #953ab7;
} */
.case.abort .caselabel{
color: white;
background-color: #9c27b0;
}
.case_step {
margin: .8em;
}
.checkpoint_pass {
margin: .8em;
}
.checkpoint_fail {
margin: .8em;
}
.case_step .tag{
color: #2196f3;;
margin: .3em 1em .3em 0;
padding: .1em .3em;
font-size: .92em;
}
.checkpoint_pass .tag{
color: #009806;
margin:.3em 1em .3em .5em;
padding: .1em .3em;
font-size: .92em;
}
.checkpoint_fail .tag{
color: #9c2020;
margin:.3em 1em .3em .5em;
padding: .1em .3em;
font-size: .92em;
}
.screenshot {
border: 1px solid #86c2dd;
}
.executetime {
float: right;
}
/* 模态框内容 */
.modal-content {
margin: auto;
display: block;
width: 95%;
max-width: 700px;
max-height: 80vh; /* 设置最大高度为视口高度的80% */
object-fit: contain; /* 保持图片的宽高比 */
zoom: 3;
}
/* 模态框 */
.modal {
display: none; /* 隐藏 */
position: fixed; /* 固定位置 */
z-index: 1; /* 坐在顶部 */
padding-top: 40px; /* 在图片上方添加一些内边距 */
left: 0;
top: 0;
width: 100%; /* 宽度 */
height: 100%; /* 高度 */
overflow: auto; /* 启用滚动 */
background-color: rgb(0,0,0); /* 背景颜色 */
background-color: rgba(0,0,0,0.9); /* 黑色背景半透明 */
}
/* 关闭按钮 */
.close {
position: absolute; /* 定义元素的定位方式为绝对定位 */
top: 10px; /* 距离最近的已定位祖先元素顶部15像素 */
right: 30px; /* 距离最近的已定位祖先元素右侧35像素 */
color: #f1f1f1; /* 文本颜色为浅灰色 */
font-size: 15px; /* 字体大小为40像素 */
font-weight: bold; /* 字体加粗 */
transition: 0.3s; /* 过渡效果,0.3秒内完成 */
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
</style>
<script type="text/javascript">var FOLDER_ALL_CASES = false; // 是否为精简模式的标记
var ERROR_INFOS = []; // 错误信息列表
var current_error_idx = -1;
// 页面加载后执行的函数
window.addEventListener("load", function(){
// 所有 .folder_header 添加点击事件处理
let folderHeaderEles = document.querySelectorAll(".folder_header");
folderHeaderEles.forEach(function(ele) {
ele.addEventListener("click", function(event) {
let fb = event.target.closest('.folder_header').nextElementSibling;
fb.style.display = fb.style.display === 'none' ? 'block' : 'none';
});
});
// 找到所有的错误信息对象
ERROR_INFOS = document.querySelectorAll(".error-info");
// 获取所有图片元素
let images = document.querySelectorAll('.modal-image');
// 获取模态框元素
let modal = document.getElementById("imageModal");
// 获取模态框中的图片元素
let modalImg = document.getElementById("img01");
// 获取关闭按钮元素
let span = document.getElementsByClassName("close")[0];
// 为每个图片添加点击事件监听器
images.forEach(function(img) {
img.addEventListener("click", function() {
modal.style.display = "block"; // 显示模态框
modalImg.src = this.src; // 设置模态框中的图片为点击的图片
});
});
// 当点击关闭按钮时,隐藏模态框
span.onclick = function() {
modal.style.display = "none";
};
// 当点击模态框外区域时,隐藏模态框
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
};
});
function toggle_folder_all_cases(){
let eles = document.querySelectorAll(".folder_body");
FOLDER_ALL_CASES = !FOLDER_ALL_CASES;
document.getElementById('display_mode').innerHTML = FOLDER_ALL_CASES ? "Detail" : "Summary";
for (const ele of eles){
ele.style.display = FOLDER_ALL_CASES ? "none" : "block";
}
}
function previous_error(){
// 查找错误必须是详细模式
if (FOLDER_ALL_CASES)
toggle_folder_all_cases()
current_error_idx -= 1;
if (current_error_idx < 0)
current_error_idx = 0;
let error = ERROR_INFOS[current_error_idx];
error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"});
}
function next_error(){
// 查找错误必须是详细模式
if (FOLDER_ALL_CASES)
toggle_folder_all_cases()
current_error_idx += 1;
if (current_error_idx > ERROR_INFOS.length - 1)
current_error_idx = ERROR_INFOS.length - 1;
let error = ERROR_INFOS[current_error_idx];
error.scrollIntoView({behavior: "smooth", block: "center", inline: "start"});
}
</script>
</head>
<body>
<div class="modal" id="imageModal">
<div>
<img class="modal-content" id="img01">
<span class="close">关闭</span>
</div>
</div>
<div class="main_section">
<h1 style="font-family: auto">兰州中石化项目测试报告</h1>
<h3>统计结果</h3>
<div class="result">
<table class="result_table">
<tbody>
<tr>
<td>hytest 版本</td>
<td>0.8.12</td>
</tr>
<tr>
<td>开始时间</td>
<td>2025/06/25 09:50:03</td>
</tr>
<tr>
<td>结束时间</td>
<td>2025/06/25 09:51:08</td>
</tr>
<tr>
<td>耗时</td>
<td>64.642 秒</td>
</tr>
<tr>
<td>预备执行用例数量</td>
<td>1</td>
</tr>
<tr>
<td>实际执用例行数量</td>
<td>1</td>
</tr>
<tr>
<td>通过</td>
<td>0</td>
</tr>
<tr>
<td>失败</td>
<td style="color:red">1</td>
</tr>
<tr>
<td>异常</td>
<td style="">0</td>
</tr>
<tr>
<td>阻塞</td>
<td style="">0</td>
</tr>
<tr>
<td>套件初始化失败</td>
<td style="">0</td>
</tr>
<tr>
<td>套件清除 失败</td>
<td style="">0</td>
</tr>
<tr>
<td>用例初始化失败</td>
<td style="">0</td>
</tr>
<tr>
<td>用例清除 失败</td>
<td style="">0</td>
</tr>
</tbody>
</table>
<div class="result_barchart">
<div class="barchar_item">
<span>用例通过 0% : 0 个</span>
<div class="barchart_barbox">
<div class="barchart_bar" style="width: 0.0%; background-color: #04AA6D;"></div>
</div>
</div>
<div class="barchar_item">
<span>用例失败 100% : 1 个</span>
<div class="barchart_barbox">
<div class="barchart_bar" style="width: 100.0%; background-color: #bb4069;"></div>
</div>
</div>
<div class="barchar_item">
<span>用例异常 0% : 0 个</span>
<div class="barchart_barbox">
<div class="barchart_bar" style="width: 0.0%; background-color: #9c27b0;"></div>
</div>
</div>
<div class="barchar_item">
<span>用例阻塞 0% : 0 个</span>
<div class="barchart_barbox">
<div class="barchart_bar" style="width: 0.0%; background-color: #dcbdbd;"></div>
</div>
</div>
</div>
</div>
<div style="margin-top:2em">
<h3 style="display:inline">执行日志</h3>
</div>
<div class="exec_log">
<div class="suite_dir" id="suite_dir cases\">
<div>
<span class="label">进入目录</span>
<span>cases\</span>
</div>
</div>
<div class="suite_dir" id="suite_dir cases\项目定制\兰州中石化项目25-05-24\">
<div>
<span class="label">进入目录</span>
<span>cases\项目定制\兰州中石化项目25-05-24\</span>
</div>
<div class="suite_setup setup" id="suite_setup setup cases\项目定制\兰州中石化项目25-05-24\">
<div class="folder_header">
<span class="label">套件初始化</span>
<span>cases\项目定制\兰州中石化项目25-05-24\</span>
<span class="executetime">2025-06-25 09:50:03</span>
</div>
<div class="folder_body">
<div class="case_step">
<span class="tag">步骤 #1</span>
<span>初始化浏览器</span>
</div>
<div class="info">'----------' 正在初始化浏览器 '----------'</div>
<div class="info">'----------' 浏览器初始化完成 '----------'</div>
<div class="info">输入用户名:admin</div>
<div class="info">输入密码:Ubains@4321</div>
<div class="info">输入验证码:csba</div>
<div class="info">点击登录按钮</div>
</div>
</div>
</div>
<div class="suite_file" id="suite_file cases\项目定制\兰州中石化项目25-05-24\兰州中石化测试.py">
<div>
<span class="label">进入文件</span>
<span>cases\项目定制\兰州中石化项目25-05-24\兰州中石化测试.py</span>
</div>
<div class="case fail" id="case_00000001">
<div class="folder_header">
<span class="label caselabel">用例 FAIL</span>
<span class="casename">会议申报测试015</span>
<span class="executetime">2025-06-25 09:50:10</span>
</div>
<div class="folder_body">
<span class="case_class_path">cases\项目定制\兰州中石化项目25-05-24\兰州中石化测试.py::LanzhouSinopecProject</span>
<div class="test_steps" id="test_steps 会议申报测试015">
<span class="label">测试步骤</span>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //div[@id='CreateMeeting']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095013175010.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: id、元素定位值: create-meeting-name-input、元素类型: input、元素值: 会议申报测试015、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095015534652.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@id='create-meeting-start-time-datepicker']、元素类型: input、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095017828422.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //button[@class='el-button el-picker-panel__link-btn el-button--default el-button--mini is-plain']//span[contains(text(),'确定')]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095020096921.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@id='create-meeting-location-select']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095022347717.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //span[contains(text(),'会议申报会议室015')]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095024592779.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@placeholder='请选择主办单位']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095026836919.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: (//div[@class='el-tree-node__content'])[10]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095029090005.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: (//button[@id='tree-selector-confirm'])[3]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095031352340.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@id='create-meeting-compere-select']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095033615661.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //div[@x-placement='bottom-start']//span[contains(text(),'范公司主管领导')]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095035889982.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@id='create-meeting-department-leader-select']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095038167141.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //span[contains(text(),'陈部门领导')]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095040429005.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //input[@id='create-meeting-company-leader-select']、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095042673478.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: (//span[contains(text(),'范公司主管领导')])[3]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095044926003.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //span[contains(text(),'提交')]、元素类型: click、元素值: 、预期结果: </div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095047256265.png" width="75">
</div>
<div class="info">页面: ConferenceDeclaration、元素定位类型: xpath、元素定位值: //p[@class='el-message__content']、元素类型: getTips、元素值: 、预期结果: 请选择会议开始时间</div>
<div>
<img class="modal-image screenshot" src="imgs/20250625095047417632.png" width="50%">
</div>
<div class="info">获取到的提示信息为:会议预定成功</div>
<div class="checkpoint_fail">
<span class="tag">检查点 FAIL</span>
<span>获取到的提示信息为:会议预定成功</span>
</div>
<div class="info error-info">
Traceback:
File &quot;E:\GithubData\自动化\ubains-module-test\预定系统\cases\项目定制\兰州中石化项目25-05-24\兰州中石化测试.py&quot;, line 90, in teststeps
CHECK_POINT(f&quot;获取到的提示信息为:{notify_text}&quot;, expented_result in notify_text)</div>
</div>
</div>
</div>
<div class="suite_teardown teardown" id="suite_teardown teardown cases\项目定制\兰州中石化项目25-05-24\">
<div class="folder_header">
<span class="label">套件清除</span>
<span>cases\项目定制\兰州中石化项目25-05-24\</span>
<span class="executetime">2025-06-25 09:50:49</span>
</div>
<div class="folder_body"></div>
</div>
<div class="suite_teardown teardown" id="suite_teardown teardown cases\">
<div class="folder_header">
<span class="label">套件清除</span>
<span>cases\</span>
<span class="executetime">2025-06-25 09:50:51</span>
</div>
<div class="folder_body">
<div class="info">清除浏览器</div>
</div>
</div>
</div>
</div>
</div>
<div id="float_menu">
<div class="menu-item" onclick="document.querySelector(&quot;body&quot;).scrollIntoView()">页首</div>
<div class="menu-item" onclick="window.open(&quot;http://www.byhy.net/tut/auto/hytest/01&quot;, &quot;_blank&quot;); ">帮助</div>
<div class="menu-item" id="display_mode" onclick="toggle_folder_all_cases()">Summary</div>
<div class="error_jumper" display="block">
<div class="menu-item" onclick="previous_error()" title="上一个错误"></div>
<div class="menu-item" onclick="next_error()" title="下一个错误"></div>
</div>
</div>
</body>
</html>
\ No newline at end of file
...@@ -3,7 +3,8 @@ import queue ...@@ -3,7 +3,8 @@ import queue
from Base.base import * from Base.base import *
import time import time
import logging import logging
import os
import sys
if getattr(sys, 'frozen', False): if getattr(sys, 'frozen', False):
base_dir = os.path.dirname(sys.executable) base_dir = os.path.dirname(sys.executable)
...@@ -16,31 +17,19 @@ if not os.path.isdir(cases_dir): ...@@ -16,31 +17,19 @@ if not os.path.isdir(cases_dir):
raise FileNotFoundError("请将 cases 目录放在程序同级目录下!") raise FileNotFoundError("请将 cases 目录放在程序同级目录下!")
""" """
调试主机-执行指令:
1.打开一个终端输入:
- cd .\预定系统\
- python -m http.server 81 --directory reports
2.打开新终端输入:
- cd .\预定系统\ngrok\ngrok-调试主机\
- .\start.bat
3.再打开一个终端输入:
- cd .\预定系统\
- python .\定时执行功能测试.py
自动化运行虚拟机-执行指令: 自动化运行虚拟机-执行指令:
1.打开一个终端输入: 1.打开一个终端输入:
- cd .\预定系统\ - cd .\新统一平台\
- python -m http.server 81 --directory reports - python -m http.server 80 --directory reports
2.打开新终端输入: 2.打开新终端输入:
- cd .\预定系统\ngrok\ngrok-自动化运行虚拟机 - cd .\新统一平台\ngrok
- .\start.bat - .\start.bat
3.再打开一个终端输入: 3.再打开一个终端输入:
- cd .\预定系统\ - cd .\新统一平台\
- python .\定时执行功能测试.py - python .\定时执行功能测试.py
""" """
import os
import sys
def get_resource_path(relative_path): def get_resource_path(relative_path):
""" """
...@@ -94,21 +83,8 @@ def start_workers(num_workers): ...@@ -94,21 +83,8 @@ def start_workers(num_workers):
# 启动3个工作线程 # 启动3个工作线程
start_workers(3) start_workers(3)
# 定时执行预定系统测试任务 # 定时执行新统一平台标准版
schedule.every().day.at("10:00").do(run_task, run_automation_test, report_title="预定系统测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="JSON测试", ding_type="标准版巡检") schedule.every().day.at("14:18").do(run_task, run_automation_test, report_title="新统一平台测试报告", report_url_prefix="http://nat.ubainsyun.com:31137", test_case="新统一平台后台系统", ding_type="标准版巡检")
schedule.every().day.at("07:00").do(run_task, run_automation_test, report_title="兰州中石化项目测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="兰州中石化项目", ding_type="标准版巡检")
# 定时执行展厅巡检任务
# schedule.every().day.at("07:45").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31136", test_case="展厅巡检", ding_type="展厅巡检")
schedule.every().monday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检", ding_type="展厅巡检")
schedule.every().thursday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检", ding_type="展厅巡检")
schedule.every().wednesday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检", ding_type="展厅巡检")
schedule.every().tuesday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检", ding_type="展厅巡检")
schedule.every().friday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31133", test_case="展厅巡检", ding_type="展厅巡检")
# schedule.every().saturday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31136", test_case="展厅巡检", ding_type="展厅巡检")
# schedule.every().sunday.at("07:42").do(run_task, run_automation_test, report_title="展厅巡检测试报告", report_url_prefix="http://nat.ubainsyun.com:31136", test_case="展厅巡检", ding_type="展厅巡检")
try: try:
# 无限循环,持续检查并执行计划任务 # 无限循环,持续检查并执行计划任务
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论