1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
def teststeps(self):
"""
执行测试步骤函数,主要用于执行读取的测试用例并进行会议模板模块功能测试操作
"""
# 从全局存储中获取webdriver对象
wd = GSTORE['wd']
# 先清空Excel文件中的测试结果和日志截图
clear_columns_in_xlsx(xlsx_file_path, "会议审批", ["测试结果", "日志截图"])
# 读取Excel文件中的测试用例数据
ddt_cases = read_xlsx_data(xlsx_file_path, "会议审批")
# 遍历 ddt_cases 并获取每一个 JSON 对象
for case in ddt_cases:
# 为每个测试用例添加一个 name 字段
case_name = case.get('case_name', f"Case_{ddt_cases.index(case) + 1}")
case['name'] = case_name
# 创建审批会议
meeting_message("审批会议室", "普通会议", "审批测试会议","长安大学", wd)
for step in case:
print(f"当前步骤: {step}")
# 先赋值
locator_type = get_by_enum(case.get('locator_type'))
locator_value = case.get('locator_value')
element_type = case.get('element_type')
element_value = case.get('element_value')
expented_result = case.get('expented_result')
# 判断页面功能类型
if case.get("page") == "ApprovalInitiate":
if element_type == "input":
safe_send_keys((locator_type, locator_value), element_value, wd)
sleep(1)
elif element_type == "click":
safe_click((locator_type, locator_value), wd)
sleep(2)
elif element_type == "getTips":
notify_text = get_notify_text(wd, (locator_type, locator_value), "Message_Template", "Template_Edit", "长安审批测试")
INFO(f"提示信息为:{notify_text}")
CHECK_POINT("编辑测试判断是否正确", expented_result in notify_text)
SELENIUM_LOG_SCREEN(wd, "50")
elif element_type == "function":
print(f"这是element_value的值:{element_value}")
# 退出登录,并调用用户登录函数
safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
sleep(1)
wd.refresh()
user_login(element_value[0],element_value[1])
sleep(2)
# 调用审批会议状态设置函数
approval_status_control("审批测试会议", element_value[2], wd)
sleep(1)
# 退出登录
safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
wd.refresh()
# 登录与退出操作频繁,到登录页后存在一个缓存界面,可以点击退出按钮
quit_element = wd.find_element(By.XPATH, "//div[@class='operat']//span//img")
if quit_element != "":
quit_element.click()
# 调用用户登录函数,登录普通用户
user_login("admin@PT","Ubains@4321")
# 进入会议审批模块
safe_click((By.XPATH, "//span[contains(text(),'会议审批')]"), wd)
sleep(1)