提交 1de04c68 authored 作者: 陈泽健's avatar 陈泽健

已将部门管理、用户管理模块完全输出完成,部门编辑存在定位失败问题,暂时没排查出来。输出会议室管理相关模块的脚本,当前已输出功能管理模块的新增与编辑功能代码。...

已将部门管理、用户管理模块完全输出完成,部门编辑存在定位失败问题,暂时没排查出来。输出会议室管理相关模块的脚本,当前已输出功能管理模块的新增与编辑功能代码。封装正则表达式函数用来判断密码的字符格式。优化代码的可维护性。
上级 c0532826
import csv import csv
import re
import psutil import psutil
import logging import logging
from hytest import * from hytest import *
...@@ -234,7 +236,7 @@ def send_keyboard(element_locator, wd): ...@@ -234,7 +236,7 @@ def send_keyboard(element_locator, wd):
# 如果元素不可交互,打印不可交互错误消息。 # 如果元素不可交互,打印不可交互错误消息。
print(f"ElementNotInteractableException: Element {element_locator} is not interactable.") print(f"ElementNotInteractableException: Element {element_locator} is not interactable.")
def get_notify_text(wd,module_name,function_name,name): def get_notify_text(wd,locator,module_name,function_name,name):
""" """
获取通知文本信息。 获取通知文本信息。
...@@ -250,7 +252,7 @@ def get_notify_text(wd,module_name,function_name,name): ...@@ -250,7 +252,7 @@ def get_notify_text(wd,module_name,function_name,name):
try: try:
# 获取提示信息 # 获取提示信息
notify_text = WebDriverWait(wd, 20).until( notify_text = WebDriverWait(wd, 20).until(
EC.presence_of_element_located((By.XPATH, "//p[@class='el-message__content']")) EC.presence_of_element_located((By.XPATH, locator))
).text ).text
# 屏幕截图 # 屏幕截图
SELENIUM_LOG_SCREEN(wd,"50%",module_name,function_name,name) SELENIUM_LOG_SCREEN(wd,"50%",module_name,function_name,name)
...@@ -360,6 +362,35 @@ def delete_images_in_directory(directory): ...@@ -360,6 +362,35 @@ def delete_images_in_directory(directory):
except Exception as e: except Exception as e:
print(f"删除文件 {file_path} 时出错: {e}") print(f"删除文件 {file_path} 时出错: {e}")
def is_valid_password(password):
try:
# 基本类型检查
if not isinstance(password, str):
raise ValueError("Password must be a string")
# 检查长度,密码至少需要11个字符
if len(password) < 11:
return False
# 使用正则表达式检查密码是否包含大小写字母和数字
if not re.match(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{11,}$', password):
return False
# 检查连续3位及以上不重复且不连续组合
for i in range(len(password) - 2):
# 检查是否有连续3位相同
if password[i] == password[i + 1] == password[i + 2]:
return False
# 检查是否有连续3位是连续字符(如123, abc)
if abs(ord(password[i + 1]) - ord(password[i])) == 1 and abs(ord(password[i + 2]) - ord(password[i + 1])) == 1:
return False
return True
except Exception as e:
print(f"An error occurred: {e}")
return False
def browser_quit(): def browser_quit():
""" """
退出浏览器并释放资源。 退出浏览器并释放资源。
......
...@@ -42,4 +42,8 @@ ...@@ -42,4 +42,8 @@
12. 2024-11-11 12. 2024-11-11
- 补充部门管理模块脚本,目前输出了部门新增、部门删除、部门编辑、部门查询。部门编辑还存在问题,待解决。 - 补充部门管理模块脚本,目前输出了部门新增、部门删除、部门编辑、部门查询。部门编辑还存在问题,待解决。
- 测试调用钉钉机器人发送消息接口,调用失败,根据接口文档排查是由于webhook地址缺少拼接的密钥和时间戳导致,后续进一步验证。 - 测试调用钉钉机器人发送消息接口,调用失败,根据接口文档排查是由于webhook地址缺少拼接的密钥和时间戳导致,后续进一步验证。
- 优化登录模块的脚本,使用hytest框架形式。 - 优化登录模块的脚本,使用hytest框架形式。
\ No newline at end of file 13. 2024-11-13
- 已将部门管理、用户管理模块完全输出完成,部门编辑存在定位失败问题,暂时没排查出来。
- 输出会议室管理相关模块的脚本,当前已输出功能管理模块的新增与编辑功能代码。
- 封装正则表达式函数用来判断密码的字符格式。优化代码的可维护性。
\ No newline at end of file
import sys
import os
from time import sleep
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
def suite_setup():
wd = GSTORE['wd']
admin_login()
enter_the_backend()
INFO("打开会议室管理下拉菜单")
safe_click((By.XPATH, "//div[@class='el-submenu__title']//span[contains(text(),'会议室管理')]"), wd)
sleep(1)
INFO("进入功能管理模块")
safe_click((By.XPATH, "//li[contains(text(),'功能管理')]"), wd)
sleep(1)
\ No newline at end of file
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/会议室管理/功能管理模块/功能新增.csv')
class Function_Add_000x:
# 执行指令是:hytest --test 用户新增_0**
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
# 从self.para中解构出用户名、密码、验证码和检查文本
name = self.name
function_name, function_detail, function_type, check_text = self.para
STEP(1, "点击【添加】按钮")
safe_click((By.XPATH,"//span[contains(text(),'添 加')]"),wd)
notify_text = elment_get_text((By.XPATH,"//span[contains(text(),'添加功能')]"),wd)
INFO(f"当前弹窗标题为:{notify_text}")
CHECK_POINT("弹窗标题检查", notify_text == "添加功能")
STEP(2, "输入功能名称、功能描述")
INFO(f"输入功能名称:{function_name},输入功能描述:{function_detail}")
safe_send_keys((By.XPATH,"//input[@placeholder='功能名称']"),function_name,wd)
safe_send_keys((By.XPATH,"//input[@placeholder='功能描述']"),function_detail,wd)
STEP(3, "选择功能类型")
INFO(f"选择功能类型:{function_type}")
safe_click((By.XPATH,"//div[@class='el-input el-input--suffix']//input[@placeholder='请选择']"),wd)
sleep(1)
# 判断功能类型,使用对应的定位方式
if function_type == "普通" or function_type == "语音转录" or function_type == "腾讯会议" or function_type == "华为云会议":
safe_click((By.XPATH,f"//span[contains(text(),'{function_type}')]"),wd)
else:
safe_click((By.XPATH,f"//span[normalize-space()='{function_type}']"),wd)
STEP(4, "点击【确定】按钮")
safe_click((By.XPATH,"//div[@aria-label='添加功能']//span[contains(text(),'确定')]"),wd)
sleep(2)
STEP(5, "检查新增结果")
notify_text = get_notify_text(wd,"//p[@class='el-message__content']","Function_Manage","Function_Add",f"{name}检查提示信息")
INFO(f"新增结果为:{notify_text}")
CHECK_POINT("新增结果检查", notify_text == check_text)
if notify_text != "添加成功":
# 返回功能列表
safe_click((By.XPATH,"//div[@aria-label='添加功能']//i[@class='el-dialog__close el-icon el-icon-close']"),wd)
\ No newline at end of file
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/会议室管理/功能管理模块/功能编辑.csv')
class Function_Edit_000x:
# 执行指令是:hytest --test _0**
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
# 从self.para中解构出用户名、密码、验证码和检查文本
name = self.name
function_name, new_function_name, new_function_detail, function_type, check_text = self.para
STEP(1, f"输入功能名称:{function_name},进行搜索")
safe_send_keys((By.XPATH,"//input[@placeholder='输入关键字']"),function_name,wd)
send_keyboard((By.XPATH,"//input[@placeholder='输入关键字']"),wd)
sleep(1)
notify_text = elment_get_text((By.XPATH,"//tbody/tr[@class='el-table__row']/td[2]/div[1]"),wd)
INFO(f"搜索结果为:{notify_text}")
CHECK_POINT("搜索结果与预期相符", notify_text == function_name)
STEP(2, "点击【编辑】按钮")
safe_click((By.XPATH,"//span[@class='el-tag el-tag--success el-tag--light']"),wd)
notify_text = elment_get_text((By.XPATH,"//span[contains(text(),'修改功能')]"),wd)
INFO(f"当前弹窗标题为:{notify_text}")
CHECK_POINT("弹窗标题与预期相符", notify_text == "修改功能")
STEP(3, "输入新的功能名称、功能描述")
INFO(f"输入功能名称:{new_function_name},输入功能描述:{new_function_detail}")
safe_send_keys((By.XPATH, "//input[@placeholder='功能名称']"), new_function_name, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='功能描述']"), new_function_detail, wd)
STEP(4, "选择功能类型")
INFO(f"选择功能类型:{function_type}")
safe_click((By.XPATH, "//div[@class='el-input el-input--suffix']//input[@placeholder='请选择']"), wd)
sleep(1)
# 判断功能类型,使用对应的定位方式
if function_type == "普通" or function_type == "语音转录" or function_type == "腾讯会议" or function_type == "华为云会议":
safe_click((By.XPATH, f"//span[contains(text(),'{function_type}')]"), wd)
else:
safe_click((By.XPATH, f"//span[normalize-space()='{function_type}']"), wd)
STEP(4, "点击【确定】按钮")
safe_click((By.XPATH, "//div[contains(@aria-label,'修改功能')]//span[contains(text(),'确定')]"), wd)
sleep(2)
STEP(5, "检查修改结果")
notify_text = get_notify_text(wd, "//p[@class='el-message__content']", "Function_Manage", "Function_Edit",
f"{name}检查提示信息")
INFO(f"修改结果为:{notify_text}")
CHECK_POINT("修改结果检查", notify_text == check_text)
if check_text != "修改成功":
INFO("check_text不等于修改成功")
# 返回功能列表
safe_click((By.XPATH, "//div[@aria-label='修改功能']//i[@class='el-dialog__close el-icon el-icon-close']"),
wd)
\ No newline at end of file
...@@ -71,7 +71,7 @@ class Login_00x: ...@@ -71,7 +71,7 @@ class Login_00x:
INFO(f"Alert text: {notify_text}") INFO(f"Alert text: {notify_text}")
else: else:
try: try:
notify_text = get_notify_text(wd, 'Login','Login_Pwd', f"{name}_检查登录失败提示信息") notify_text = get_notify_text(wd, "//p[@class='el-message__content']",'Login','Login_Pwd', f"{name}_检查登录失败提示信息")
INFO(f"Alert text: {notify_text}") INFO(f"Alert text: {notify_text}")
except Exception as e: except Exception as e:
INFO(f"Exception occurred: {e}") INFO(f"Exception occurred: {e}")
......
import sys
import os
from time import sleep
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
from 预定系统.Base.base import *
def suite_setup():
wd = GSTORE['wd']
admin_login()
enter_the_backend()
INFO("打开系统管理下拉菜单")
safe_click((By.XPATH, "//span[contains(text(),'系统管理')]"), wd)
INFO("进入系统设置模块")
safe_click((By.XPATH, "//li[contains(text(),'系统信息')]"), wd)
sleep(2)
\ No newline at end of file
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
class System_Setting_0001:
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_fastdfs_text = ""
notify_mysql_text = ""
notify_redis_text = ""
version_qianduan_text = ""
version_houdaun_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
STEP(1, "检查fastDFS服务运行是否正常")
notify_fastdfs_text = elment_get_text((By.XPATH,"(//div[@class='detail_content'][contains(text(),'正常启动')])[1]"), wd)
notify_mysql_text = elment_get_text((By.XPATH,"(//div[@class='detail_content'][contains(text(),'正常启动')])[2]"),wd)
notify_redis_text = elment_get_text((By.XPATH,"(//div[@class='detail_content'][contains(text(),'正常启动')])[3]"),wd)
INFO(f"fastDFS状态:{notify_fastdfs_text},mysql状态:{notify_mysql_text},redis状态:{notify_redis_text}")
version_qianduan_text = elment_get_text((By.XPATH,"/html/body/div[1]/div/div[2]/div[2]/div/div/div[2]/div[4]/div[1]/div/div"), wd)
version_houdaun_text = elment_get_text((By.XPATH,"/html/body/div[1]/div/div[2]/div[2]/div/div/div[2]/div[5]/div[1]/div/div"), wd)
INFO(f"前端版本:{version_qianduan_text},后端版本:{version_houdaun_text}")
CHECK_POINT("检查fastDFS、mysql、redis服务运行", notify_fastdfs_text == "正常启动", notify_mysql_text == "正常启动", notify_redis_text == "正常启动")
...@@ -3,7 +3,7 @@ import os ...@@ -3,7 +3,7 @@ import os
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
......
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
...@@ -58,7 +58,7 @@ class Main_User_Manage_0001: ...@@ -58,7 +58,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd) safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, 'User_Manage', 'User_Main', '用户管理主流程-用户新增') notify_text = get_notify_text(wd, "//p[@class='el-message__content']",'User_Manage', 'User_Main', '用户管理主流程-用户新增')
# 检查点:验证提示信息是否与预期相符 # 检查点:验证提示信息是否与预期相符
CHECK_POINT('弹出提示', notify_text == "添加成功") CHECK_POINT('弹出提示', notify_text == "添加成功")
...@@ -75,7 +75,7 @@ class Main_User_Manage_0001: ...@@ -75,7 +75,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//input[@value='登 录']"),wd) safe_click((By.XPATH, "//input[@value='登 录']"),wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, 'User_Manage', 'User_Main', '用户管理主流程-用户首次登录') notify_text = get_notify_text(wd, "//p[@class='el-message__content']",'User_Manage', 'User_Main', '用户管理主流程-用户首次登录')
# 检查点:验证提示信息是否与预期相符 # 检查点:验证提示信息是否与预期相符
INFO(f"首次登录提示:{notify_text}") INFO(f"首次登录提示:{notify_text}")
CHECK_POINT('弹出提示', notify_text == "首次登录,请修改密码") CHECK_POINT('弹出提示', notify_text == "首次登录,请修改密码")
...@@ -89,7 +89,7 @@ class Main_User_Manage_0001: ...@@ -89,7 +89,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//span[contains(text(),'确定')]"),wd) safe_click((By.XPATH, "//span[contains(text(),'确定')]"),wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, 'User_Manage', 'User_Main', '用户管理主流程-用户密码修改') notify_text = get_notify_text(wd, "//p[@class='el-message__content']",'User_Manage', 'User_Main', '用户管理主流程-用户密码修改')
# 检查点:验证提示信息是否与预期相符 # 检查点:验证提示信息是否与预期相符
INFO(f"首次登录修改密码提示:{notify_text}") INFO(f"首次登录修改密码提示:{notify_text}")
CHECK_POINT('弹出提示', notify_text == "修改成功,请重新登录") CHECK_POINT('弹出提示', notify_text == "修改成功,请重新登录")
......
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户修改密码.csv')
class User_Chanage_Pwd_000x:
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
# 从self.para中解构出用户名、密码、验证码和检查文本
name = self.name
username, new_password, check_password, check_text, back_check_text = self.para
# 根据条件判断是否执行编辑用户的操作
if name == '用户修改密码_001' or back_check_text == '修改成功':
# 执行编辑用户操作的步骤
STEP(1, f'选择用户:{username},点击【修改密码】按钮')
INFO(f'输入用户名:{username}进行搜索')
safe_send_keys((By.XPATH, "//input[@placeholder='输入关键字']"), username, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字']"), wd)
INFO('点击【修改密码】按钮')
safe_click((By.XPATH, "//span[@class='el-tag el-tag--warning el-tag--light']"), wd)
sleep(1)
STEP(2, '检查二次确认弹窗UI')
notify_text = elment_get_text((By.XPATH,
"//body/div[contains(@class,'el-dialog__wrapper')]/div[contains(@aria-label,'修改密码')]/div[contains(@class,'el-dialog__header')]/span[1]"),
wd)
INFO(f'校验二次确认弹窗UI:{notify_text}')
CHECK_POINT('校验二次确认弹窗UI', '修改密码' in notify_text)
sleep(1)
STEP(3, f'输入新密码:{new_password},确认密码:{check_password}')
# is_valid_password函数用于检查密码是否符合规范:11位及以上的大小写字母和数字且连续3位及以上不重复和不连续组合
flag = is_valid_password(new_password)
if flag == True or new_password == "":
# 输入新密码和确认密码
safe_send_keys((By.XPATH,
"//input[contains(@placeholder,'11位及以上的大小写字母和数字且连续3位及以上不重复和不连续组合')]"),
new_password, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='确认密码']"), check_password, wd)
STEP(4, '点击确定按钮')
INFO('点击确定按钮')
safe_click((By.XPATH,
"//body/div[@class='el-dialog__wrapper']/div[@aria-label='修改密码']/div[@class='el-dialog__footer']/span[@class='dialog-footer']/button[@type='button']/span[1]"),
wd)
sleep(2)
STEP(5, '检查提示信息')
if new_password == check_password:
notify_text = get_notify_text(wd, "//p[@class='el-message__content']", 'User_Manage',
'User_Chanage_Pwd',
f'{name}检查提示信息')
else:
notify_text = get_notify_text(wd, "//div[@class='el-message el-message--error']", 'User_Manage',
'User_Chanage_Pwd',
f'{name}检查提示信息')
INFO(f'校验修改密码提示信息:{notify_text}')
CHECK_POINT('校验修改密码提示信息', notify_text == check_text)
else:
# 如果密码校验失败,输入密码并检查错误提示
safe_send_keys((By.XPATH,
"//input[contains(@placeholder,'11位及以上的大小写字母和数字且连续3位及以上不重复和不连续组合')]"),
new_password, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='确认密码']"), check_password, wd)
sleep(2)
STEP(4, '检查提示信息')
notify_text = get_notify_text(wd, "//div[@class='el-message el-message--error']", 'User_Manage',
'User_Chanage_Pwd',
f'{name}检查提示信息')
INFO(f'校验修改密码提示信息:{notify_text}')
CHECK_POINT('校验修改密码提示信息', notify_text == check_text)
\ No newline at end of file
...@@ -4,7 +4,7 @@ from hytest import * ...@@ -4,7 +4,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
...@@ -14,7 +14,7 @@ from 预定系统.Base.base import * ...@@ -14,7 +14,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户删除.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户删除.csv')
class Delete_User_000x: class Delete_User_000x:
# 执行指令是:hytest --test 用户删除_0** # 执行指令是:hytest --test 用户删除_0**
......
import csv
from time import sleep from time import sleep
from hytest import * from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
...@@ -19,7 +18,7 @@ except ModuleNotFoundError as e: ...@@ -19,7 +18,7 @@ except ModuleNotFoundError as e:
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户新增.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户新增.csv')
class Add_User_00x: class Add_User_00x:
# 执行指令是:hytest --test 用户新增_0** # 执行指令是:hytest --test 用户新增_0**
...@@ -80,7 +79,7 @@ class Add_User_00x: ...@@ -80,7 +79,7 @@ class Add_User_00x:
safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd) safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd,"User_Manage","User_Add",f"{name}_检查提示信息") notify_text = get_notify_text(wd,"//p[@class='el-message__content']","User_Manage","User_Add",f"{name}_检查提示信息")
#输出提示信息 #输出提示信息
INFO(f"Alert text: {notify_text}") INFO(f"Alert text: {notify_text}")
......
...@@ -5,7 +5,7 @@ from hytest import * ...@@ -5,7 +5,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
# 导入模块 # 导入模块
...@@ -15,7 +15,7 @@ from 预定系统.Base.base import * ...@@ -15,7 +15,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户查询.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户查询.csv')
class Query_User_000x: class Query_User_000x:
# 执行指令是:hytest --test 用户查询_0** # 执行指令是:hytest --test 用户查询_0**
......
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户状态设置.csv')
class User_Status_000x:
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
# 从self.para中解构出用户名、密码、验证码和检查文本
name = self.name
username, status_type, check_text = self.para
# 根据status_type执行相应的功能测试
INFO(f'{status_type}功能')
STEP(1, f'选择用户:{username},点击{status_type}按钮')
INFO(f'输入用户名:{username}进行搜索')
safe_send_keys((By.XPATH, "//input[@placeholder='输入关键字']"), username, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字']"), wd)
sleep(2)
INFO(f'点击{status_type}按钮')
safe_click((By.XPATH, "//i[contains(@class,'el-icon-minus')]"), wd)
sleep(1)
STEP(2, '检查二次确认弹窗UI')
if status_type == '停用':
notify_text = elment_get_text((By.XPATH, f"//p[contains(text(),'是否要{status_type}此账号?')]"), wd)
INFO(f'校验二次确认弹窗UI:{notify_text}')
CHECK_POINT('校验二次确认弹窗UI', f'是否要{status_type}此账号?' in notify_text)
elif status_type == '启用':
notify_text = elment_get_text((By.XPATH, f"//p[contains(text(),'是否{status_type}该账户?')]"), wd)
INFO(f'校验二次确认弹窗UI:{notify_text}')
CHECK_POINT('校验二次确认弹窗UI', f'是否{status_type}' in notify_text)
STEP(3, '点击确定按钮')
INFO('点击确定按钮')
safe_click((By.XPATH,
"//button[contains(@class,'el-button el-button--default el-button--small el-button--primary')]//span[contains(text(),'确定')]"),
wd)
sleep(2)
STEP(4, '检查提示信息')
notify_text = get_notify_text(wd, "//p[@class='el-message__content']", 'User_Manage', 'User_Status',
f'{name}检查提示信息')
INFO(f'校验停用用户提示信息:{notify_text}')
CHECK_POINT(f'校验{status_type}用户提示信息', notify_text == check_text)
# 当check_text为'设置成功'时,进一步检查状态回显及登录功能
if check_text == '设置成功':
STEP(5, '检查状态回显')
status_text = elment_get_text((By.XPATH, f"//span[contains(text(),'已{status_type}')]"), wd)
INFO(f'校验用户状态回显:{status_text}')
if status_text == '已停用':
CHECK_POINT('校验停用用户状态回显', status_text == '已停用')
STEP(6, '退出登录页使用停用账号登录')
safe_click((By.XPATH, "//img[@title='返回预定首页']"), wd)
safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入账号或手机号或邮箱号']"), username, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入密码']"), 'Ubains@4321', wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入图形验证码']"), 'csba', wd)
safe_click((By.XPATH, "//input[@value='登 录']"), wd)
sleep(2)
notify_text = get_notify_text(wd, "//div[@role='alert']", 'User_Manage', 'User_Status',
f'{name}检查登录提示信息')
INFO(f'校验登录提示信息:{notify_text}')
CHECK_POINT('校验登录提示信息', notify_text == '用户被停用')
STEP(7, '重新登录管理员账号,回到用户管理界面')
admin_login()
enter_the_backend()
INFO("打开账号管理下拉菜单")
safe_click((By.XPATH, "//span[@class='aside_menu menu_account']"), wd)
INFO("进入用户管理模块")
safe_click((By.XPATH, "//li[contains(text(),'用户管理')]"), wd)
elif status_text == '已启用':
CHECK_POINT('校验用户状态回显', status_text == '已启用')
STEP(6, '退出登录页使用启用账号登录')
safe_click((By.XPATH, "//img[@title='返回预定首页']"), wd)
safe_click((By.XPATH, "//img[@title='退出登录']"), wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入账号或手机号或邮箱号']"), username, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入密码']"), 'Ubains@4321', wd)
safe_send_keys((By.XPATH, "//input[@placeholder='请输入图形验证码']"), 'csba', wd)
safe_click((By.XPATH, "//input[@value='登 录']"), wd)
sleep(2)
notify_text = elment_get_text((By.XPATH, "//span[contains(text(),'欢迎 自动化测试公司')]"), wd)
INFO(f'校验登录提示信息:{notify_text}')
CHECK_POINT('校验登录提示信息', notify_text == '欢迎 自动化测试公司')
\ No newline at end of file
from time import sleep
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
try:
from 预定系统.Base.base import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from 预定系统.Base.base import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户编辑.csv')
class User_Edit_000x:
# 执行指令是:hytest --test 用户新增_0**
ddt_cases = read_csv_data(csv_file_path)
def teststeps(self):
"""
执行测试步骤以用户新增功能。
本函数根据参数输入账号、用户名、密码、确认密码、部门、性别、手机号和邮箱,并检查新增后的提示信息是否与预期相符。
"""
# 初始化通知文本为空字符串
notify_text = ""
# 从全局存储中获取webdriver实例
wd = GSTORE['wd']
# 从self.para中解构出用户名、密码、验证码和检查文本
name = self.name
username, new_username, department, gender, phone, email, check_text, back_check_text = self.para
# 根据条件判断是否执行编辑用户的操作
if name == '用户编辑_001' or back_check_text == '修改成功':
# 执行编辑用户操作的步骤
STEP(1, f'选择用户:{username},点击编辑按钮')
INFO(f'输入用户名:{username}进行搜索')
safe_send_keys((By.XPATH, "//input[@placeholder='输入关键字']"), username, wd)
send_keyboard((By.XPATH, "//input[@placeholder='输入关键字']"), wd)
INFO('点击编辑按钮')
safe_click((By.XPATH, "//i[@class='el-icon-edit']"), wd)
sleep(1)
notify_text = elment_get_text((By.XPATH, "//span[contains(text(),'编辑用户')]"), wd)
INFO(f'校验编辑界面UI:{notify_text}')
CHECK_POINT('校验编辑界面', "编辑用户" in notify_text)
sleep(1)
# 执行输入用户信息的步骤
STEP(2, f'输入用户名:{new_username}')
sleep(2)
INFO(f'修改用户信息:{new_username, department, gender, phone, email}')
safe_send_keys((By.XPATH, "//input[@placeholder='用户名']"), new_username, wd)
# 清除下拉框数据
if name != '用户编辑_001':
safe_click((By.XPATH, "//i[@class='el-tag__close el-icon-close']"), wd)
# 点击部门下拉框
safe_click((By.XPATH, "//div[@class='el-input el-input--suffix']//input[@placeholder='请选择']"), wd)
# 选择部门
safe_click((By.XPATH, "/html[1]/body[1]/div[4]/div[1]/div[1]/div[1]/ul[1]/li[1]/label[1]/span[1]/span[1]"), wd)
# 选择性别
safe_click((By.XPATH, f"//span[contains(text(),'{gender}')]"), wd)
# 输入手机和邮箱
safe_send_keys((By.XPATH, "//input[@placeholder='手机']"), phone, wd)
safe_send_keys((By.XPATH, "//input[@placeholder='邮箱']"), email, wd)
sleep(2)
# 截图记录用户信息输入界面
SELENIUM_LOG_SCREEN(wd, '50%', 'User_Manage', 'User_Edit', f'{name}用户信息输入')
# 点击确定按钮提交用户信息
STEP(3, '点击确定按钮')
safe_click((By.XPATH, "//div[@aria-label='编辑用户']//span[contains(text(),'确定')]"), wd)
# 检查操作后的提示信息
STEP(4, '检查提示信息')
notify_text = get_notify_text(wd, "//p[@class='el-message__content']", 'User_Manage', 'User_Chanage_Pwd',
f'{name}检查提示信息')
CHECK_POINT('校验编辑用户提示信息', notify_text == check_text)
\ No newline at end of file
...@@ -3,7 +3,7 @@ import os ...@@ -3,7 +3,7 @@ import os
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
......
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
...@@ -12,7 +12,7 @@ from 预定系统.Base.base import * ...@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门主流程.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门主流程.csv')
class Main_Department_Manage_000x: class Main_Department_Manage_000x:
# 执行指令是:hytest --test 部门主流程_0** # 执行指令是:hytest --test 部门主流程_0**
...@@ -37,7 +37,7 @@ class Main_Department_Manage_000x: ...@@ -37,7 +37,7 @@ class Main_Department_Manage_000x:
safe_click((By.XPATH, "//button[@class='el-button el-button--primary el-button--medium']"), wd) safe_click((By.XPATH, "//button[@class='el-button el-button--primary el-button--medium']"), wd)
sleep(1) sleep(1)
# 获取新增后的通知文本 # 获取新增后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Main", f"{name}部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Main", f"{name}部门新增")
# 检查新增提示文本是否与预期相符 # 检查新增提示文本是否与预期相符
INFO(f"部门新增提示文本:{notify_text}") INFO(f"部门新增提示文本:{notify_text}")
CHECK_POINT("部门新增提示文本", notify_text == check_add_text) CHECK_POINT("部门新增提示文本", notify_text == check_add_text)
...@@ -64,7 +64,7 @@ class Main_Department_Manage_000x: ...@@ -64,7 +64,7 @@ class Main_Department_Manage_000x:
safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd) safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd)
sleep(1) sleep(1)
# 获取编辑后的通知文本 # 获取编辑后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Main", f"{name}部门编辑") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Main", f"{name}部门编辑")
INFO(f"部门编辑提示文本:{notify_text}") INFO(f"部门编辑提示文本:{notify_text}")
# 检查编辑提示文本是否与预期相符 # 检查编辑提示文本是否与预期相符
CHECK_POINT("部门编辑提示文本", notify_text == check_edit_text) CHECK_POINT("部门编辑提示文本", notify_text == check_edit_text)
...@@ -95,7 +95,7 @@ class Main_Department_Manage_000x: ...@@ -95,7 +95,7 @@ class Main_Department_Manage_000x:
wd) wd)
sleep(1) sleep(1)
# 获取删除后的通知文本 # 获取删除后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Main", f"{name}部门删除") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Main", f"{name}部门删除")
INFO(f"部门删除提示文本:{notify_text}") INFO(f"部门删除提示文本:{notify_text}")
# 检查删除提示文本是否与预期相符 # 检查删除提示文本是否与预期相符
CHECK_POINT("部门删除提示文本", notify_text == check_del_text) CHECK_POINT("部门删除提示文本", notify_text == check_del_text)
\ No newline at end of file
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
...@@ -12,7 +12,7 @@ from 预定系统.Base.base import * ...@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门删除.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门删除.csv')
class Department_Add_000x: class Department_Add_000x:
# 执行指令是:hytest --test 部门新增_0** # 执行指令是:hytest --test 部门新增_0**
...@@ -40,7 +40,7 @@ class Department_Add_000x: ...@@ -40,7 +40,7 @@ class Department_Add_000x:
sleep(1) sleep(1)
STEP(2, "检查父级部门新增提示文本信息") STEP(2, "检查父级部门新增提示文本信息")
# 获取新增后的通知文本 # 获取新增后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Delete", f"{name}部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Delete", f"{name}部门新增")
# 检查新增提示文本是否与预期相符 # 检查新增提示文本是否与预期相符
INFO(f"父级部门新增提示文本:{notify_text}") INFO(f"父级部门新增提示文本:{notify_text}")
CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text) CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text)
...@@ -50,7 +50,7 @@ class Department_Add_000x: ...@@ -50,7 +50,7 @@ class Department_Add_000x:
safe_click((By.XPATH, "(//span[contains(text(),'删除')])[4]"),wd) safe_click((By.XPATH, "(//span[contains(text(),'删除')])[4]"),wd)
safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"),wd) safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"),wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, "Department_Manage", "Department_Delete", f"{name}部门单个删除") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Delete", f"{name}部门单个删除")
INFO(f"单个部门删除提示文本:{notify_text}") INFO(f"单个部门删除提示文本:{notify_text}")
CHECK_POINT("单个部门删除提示文本", notify_text == check_del_text) CHECK_POINT("单个部门删除提示文本", notify_text == check_del_text)
sleep(2) sleep(2)
...@@ -66,7 +66,7 @@ class Department_Add_000x: ...@@ -66,7 +66,7 @@ class Department_Add_000x:
(By.XPATH, "(//span[contains(text(),'添 加')])[1]"), (By.XPATH, "(//span[contains(text(),'添 加')])[1]"),
wd) wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, "Department_Manage", "Department_Delete", f"{name}第{i+1}个部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Delete", f"{name}第{i+1}个部门新增")
CHECK_POINT(f"新增第{i+1}个部门提示文本", notify_text == check_add_text) CHECK_POINT(f"新增第{i+1}个部门提示文本", notify_text == check_add_text)
STEP(2, "检查勾选多个部门") STEP(2, "检查勾选多个部门")
...@@ -78,7 +78,7 @@ class Department_Add_000x: ...@@ -78,7 +78,7 @@ class Department_Add_000x:
safe_click((By.XPATH, "(//span[contains(text(),'批量删除')])[1]"),wd) safe_click((By.XPATH, "(//span[contains(text(),'批量删除')])[1]"),wd)
safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"),wd) safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"),wd)
sleep(2) sleep(2)
notify_text = get_notify_text(wd, "Department_Manage", "Department_Delete", f"{name}部门批量删除") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Delete", f"{name}部门批量删除")
INFO(f"批量部门删除提示文本:{notify_text}") INFO(f"批量部门删除提示文本:{notify_text}")
CHECK_POINT("批量部门删除提示文本", notify_text == check_del_text) CHECK_POINT("批量部门删除提示文本", notify_text == check_del_text)
...@@ -88,5 +88,5 @@ class Department_Add_000x: ...@@ -88,5 +88,5 @@ class Department_Add_000x:
safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'批量删除')]"), wd) safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'批量删除')]"), wd)
sleep(2) sleep(2)
STEP(2, "检查提示信息") STEP(2, "检查提示信息")
notify_text = get_notify_text(wd, "Department_Manage", "Department_Delete", f"{name}部门不勾选批量删除") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Delete", f"{name}部门不勾选批量删除")
CHECK_POINT("不勾选部门进行批量删除提示文本", notify_text == check_del_text) CHECK_POINT("不勾选部门进行批量删除提示文本", notify_text == check_del_text)
\ No newline at end of file
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
...@@ -12,7 +12,7 @@ from 预定系统.Base.base import * ...@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门新增.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门新增.csv')
class Department_Add_000x: class Department_Add_000x:
# 执行指令是:hytest --test 部门新增_0** # 执行指令是:hytest --test 部门新增_0**
...@@ -41,7 +41,7 @@ class Department_Add_000x: ...@@ -41,7 +41,7 @@ class Department_Add_000x:
sleep(1) sleep(1)
STEP(2, "检查父级部门新增提示文本信息") STEP(2, "检查父级部门新增提示文本信息")
# 获取新增后的通知文本 # 获取新增后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Add", f"{name}部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Add", f"{name}部门新增")
# 检查新增提示文本是否与预期相符 # 检查新增提示文本是否与预期相符
INFO(f"父级部门新增提示文本:{notify_text}") INFO(f"父级部门新增提示文本:{notify_text}")
CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text) CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text)
...@@ -52,7 +52,7 @@ class Department_Add_000x: ...@@ -52,7 +52,7 @@ class Department_Add_000x:
sleep(1) sleep(1)
STEP(2, "检查二级子部门新增提示文本信息") STEP(2, "检查二级子部门新增提示文本信息")
# 获取新增后的通知文本 # 获取新增后的通知文本
notify_text = get_notify_text(wd, "Department_Manage", "Department_Add", f"{name}部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Add", f"{name}部门新增")
# 检查新增提示文本是否与预期相符 # 检查新增提示文本是否与预期相符
INFO(f"二级子部门新增提示文本:{notify_text}") INFO(f"二级子部门新增提示文本:{notify_text}")
CHECK_POINT("二级子部门新增提示文本", notify_text == check_add_text) CHECK_POINT("二级子部门新增提示文本", notify_text == check_add_text)
\ No newline at end of file
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
...@@ -12,7 +12,7 @@ from 预定系统.Base.base import * ...@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门查询.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门查询.csv')
class Department_Query_000x: class Department_Query_000x:
""" """
...@@ -40,7 +40,7 @@ class Department_Query_000x: ...@@ -40,7 +40,7 @@ class Department_Query_000x:
safe_click((By.XPATH, "(//span[contains(text(),'添 加')])[1]"), wd) safe_click((By.XPATH, "(//span[contains(text(),'添 加')])[1]"), wd)
sleep(2) sleep(2)
# 获取新增后的通知文本并与预期比较 # 获取新增后的通知文本并与预期比较
notify_text = get_notify_text(wd, "Department_Manage", "Department_Query", f"{name}部门新增") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Query", f"{name}部门新增")
INFO(f"部门新增提示:{notify_text}") INFO(f"部门新增提示:{notify_text}")
CHECK_POINT(f"新增部门提示文本", notify_text == "添加成功") CHECK_POINT(f"新增部门提示文本", notify_text == "添加成功")
...@@ -60,7 +60,7 @@ class Department_Query_000x: ...@@ -60,7 +60,7 @@ class Department_Query_000x:
STEP(4, "检查部门编辑提示信息") STEP(4, "检查部门编辑提示信息")
sleep(2) sleep(2)
# 获取编辑后的通知文本并与预期比较 # 获取编辑后的通知文本并与预期比较
notify_text = get_notify_text(wd, "Department_Manage", "Department_Query", f"{name}部门编辑") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Query", f"{name}部门编辑")
INFO(f"部门编辑提示:{notify_text}") INFO(f"部门编辑提示:{notify_text}")
CHECK_POINT("检查部门编辑提示", notify_text == "修改成功") CHECK_POINT("检查部门编辑提示", notify_text == "修改成功")
...@@ -100,6 +100,6 @@ class Department_Query_000x: ...@@ -100,6 +100,6 @@ class Department_Query_000x:
safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"), wd) safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"), wd)
sleep(2) sleep(2)
# 获取删除后的通知文本并与预期比较 # 获取删除后的通知文本并与预期比较
notify_text = get_notify_text(wd, "Department_Manage", "Department_Query", f"{name}删除部门数据") notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Query", f"{name}删除部门数据")
CHECK_POINT("部门删除提示", notify_text == "删除成功") CHECK_POINT("部门删除提示", notify_text == "删除成功")
INFO(f"检查CPU使用率:{get_cpu_usage()}") INFO(f"检查CPU使用率:{get_cpu_usage()}")
\ No newline at end of file
...@@ -3,7 +3,7 @@ from hytest import * ...@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径 # 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径 # 构建预定系统的绝对路径
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..')) 预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径 # 添加路径
sys.path.append(预定系统_path) sys.path.append(预定系统_path)
from 预定系统.Base.base import * from 预定系统.Base.base import *
...@@ -12,7 +12,7 @@ from 预定系统.Base.base import * ...@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__)) current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径 # 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门编辑.csv') csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门编辑.csv')
class Department_Edit_000x: class Department_Edit_000x:
""" """
...@@ -94,7 +94,7 @@ class Department_Edit_000x: ...@@ -94,7 +94,7 @@ class Department_Edit_000x:
safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd) safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd)
sleep(1) sleep(1)
# 获取并检查编辑部门后的提示信息 # 获取并检查编辑部门后的提示信息
notify_text = get_notify_text(wd, "Department_Manage", "Department_Edit", name) notify_text = get_notify_text(wd, "//p[@class='el-message__content']","Department_Manage", "Department_Edit", name)
INFO(f"部门编辑提示:{notify_text}") INFO(f"部门编辑提示:{notify_text}")
CHECK_POINT("检查部门编辑提示", notify_text == check_text) CHECK_POINT("检查部门编辑提示", notify_text == check_text)
...@@ -106,4 +106,6 @@ class Department_Edit_000x: ...@@ -106,4 +106,6 @@ class Department_Edit_000x:
safe_click((By.XPATH, "(//span[contains(text(),'编 辑')])[2]"), wd) safe_click((By.XPATH, "(//span[contains(text(),'编 辑')])[2]"), wd)
notify_text = elment_get_text( notify_text = elment_get_text(
(By.XPATH, f"//div[@class='currentDep']//div[contains(text(),'{department_user}')]"), wd) (By.XPATH, f"//div[@class='currentDep']//div[contains(text(),'{department_user}')]"), wd)
CHECK_POINT("检查部门负责人查询结果", department_user in notify_text) CHECK_POINT("检查部门负责人查询结果", department_user in notify_text)
\ No newline at end of file safe_click((By.XPATH, "//div[@aria-label='编 辑']//i[@class='el-dialog__close el-icon el-icon-close']"), wd)
sleep(1)
\ No newline at end of file
...@@ -6,79 +6,120 @@ ...@@ -6,79 +6,120 @@
== cases\__st__.py == cases\__st__.py
== cases\会议室管理\功能管理\__st__.py
== cases\会议室管理\功能管理\功能新增.py
CSV文件已读取
** no cases in this file , skip it.
== cases\会议室管理\功能管理\功能编辑.py
CSV文件已读取
== cases\测试\test.py == cases\测试\test.py
** no cases in this file, skip it. ** no cases in this file, skip it.
== cases\用户管理\__st__.py == cases\登录模块\账号密码登录测试.py
CSV文件已读取
** no cases in this file , skip it.
== cases\系统管理\__st__.py
== cases\用户管理\主流程.py
== cases\系统管理\系统设置.py
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户删除.py == cases\设备管理\安卓信息.py
** no cases in this file, skip it.
== cases\设备管理\毫米波雷达.py
** no cases in this file, skip it.
== cases\账号管理\用户管理\__st__.py
== cases\账号管理\用户管理\主流程.py
** no cases in this file , skip it.
== cases\账号管理\用户管理\用户修改密码.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户新增.py == cases\账号管理\用户管理\用户删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户查询.py == cases\账号管理\用户管理\用户新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\登录模块\账号密码登录测试.py == cases\账号管理\用户管理\用户查询.py
CSV文件已读取 CSV文件已读取
== cases\设备管理\安卓信息上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户状态设置.py
** no cases in this file, skip it. CSV文件已读取
== cases\设备管理\毫米波雷达上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户编辑.py
** no cases in this file, skip it. CSV文件已读取
** no cases in this file , skip it.
== cases\部门管理\__st__.py == cases\账号管理\部门管理\__st__.py
== cases\部门管理\主流程.py == cases\账号管理\部门管理\主流程.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门删除.py == cases\账号管理\部门管理\部门删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门新增.py == cases\账号管理\部门管理\部门新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门查询.py == cases\账号管理\部门管理\部门查询.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门编辑.py == cases\账号管理\部门管理\部门编辑.py
CSV文件已读取 CSV文件已读取
...@@ -87,11 +128,11 @@ CSV文件已读取 ...@@ -87,11 +128,11 @@ CSV文件已读取
=== [ 执行测试用例 ] === === [ 执行测试用例 ] ===
预备执行用例数量 : 10 预备执行用例数量 : 22
========= 测试开始 : 20241111_170015 ========= ========= 测试开始 : 20241113_174915 =========
...@@ -109,235 +150,836 @@ CSV文件已读取 ...@@ -109,235 +150,836 @@ CSV文件已读取
'----------' SSL证书警告处理完成 '----------' '----------' SSL证书警告处理完成 '----------'
>>> cases\登录模块\账号密码登录测试.py >>> cases\会议室管理\功能管理\
[ suite setup ] cases\会议室管理\功能管理\
输入用户名:admin@ZDH
输入密码:Ubains@4321
输入验证码:csba
点击登录按钮
进入后台
打开会议室管理下拉菜单
进入功能管理模块
>>> cases\会议室管理\功能管理\功能编辑.py
* 功能编辑_001 - 2024-11-13 17:49:20
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
搜索结果为:功能编辑专用
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_001检查提示信息20241113174924917724.png
修改结果为:请输入功能名称
** 检查点 ** 修改结果检查 ----> 通过
check_text不等于修改成功
PASS
* 功能编辑_002 - 2024-11-13 17:49:25
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
搜索结果为:功能编辑专用
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用功能编辑专用功能编辑专用,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_002检查提示信息20241113174929700197.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_003 - 2024-11-13 17:49:29
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用功能编辑专用功能编辑专用,进行搜索
搜索结果为:功能编辑专用功能编辑专用功能编辑专用
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用AB,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_003检查提示信息20241113174934909465.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_004 - 2024-11-13 17:49:35
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用AB,进行搜索
搜索结果为:功能编辑专用AB
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用12,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_004检查提示信息20241113174940073128.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_005 - 2024-11-13 17:49:40
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用12,进行搜索
搜索结果为:功能编辑专用12
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用@@,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_005检查提示信息20241113174945302163.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_006 - 2024-11-13 17:49:45
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用@@,进行搜索
搜索结果为:功能编辑专用@@
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:123,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_006检查提示信息20241113174950565835.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_007 - 2024-11-13 17:49:50
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:123,进行搜索
搜索结果为:123
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
* 登录_001 - 2024-11-11 17:00:19 输入功能名称:###,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_007检查提示信息20241113174955691829.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_008 - 2024-11-13 17:49:55
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:###,进行搜索
搜索结果为:###
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_008检查提示信息20241113175000852665.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_009 - 2024-11-13 17:50:00
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_009检查提示信息20241113175005999317.png
修改结果为:请输入功能描述
** 检查点 ** 修改结果检查 ----> 通过
check_text不等于修改成功
PASS
* 功能编辑_010 - 2024-11-13 17:50:06
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_010检查提示信息20241113175011223016.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_011 - 2024-11-13 17:50:11
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用CD
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_011检查提示信息20241113175016443367.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_012 - 2024-11-13 17:50:16
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: , 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用@@
picture imgs/Login/Login_Pwd/登录_001_登录操作20241111170021344837.png -- 第 4 步 -- 选择功能类型
picture imgs/Login/Login_Pwd/登录_001_检查登录失败提示信息20241111170021949157.png
Alert text: 请输入账号!
-- 第 3 步 -- 校验提示信息: 请输入账号! 选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
** 检查点 ** 弹出提示 ----> 通过
-- 第 5 步 -- 检查修改结果
-- 第 4 步 -- 刷新页面 picture imgs/Function_Manage/Function_Add/功能编辑_012检查提示信息20241113175021617348.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_002 - 2024-11-11 17:00:22 * 功能编辑_013 - 2024-11-13 17:50:21
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: , 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮
picture imgs/Login/Login_Pwd/登录_002_登录操作20241111170024907944.png -- 第 3 步 -- 输入新的功能名称、功能描述
picture imgs/Login/Login_Pwd/登录_002_检查登录失败提示信息20241111170025469068.png
Alert text: 请输入密码!
-- 第 3 步 -- 校验提示信息: 请输入密码! 输入功能名称:功能编辑专用1,输入功能描述:123
-- 第 4 步 -- 选择功能类型
** 检查点 ** 弹出提示 ----> 通过 选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 4 步 -- 刷新页面
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_013检查提示信息20241113175026877735.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_003 - 2024-11-11 17:00:26 * 功能编辑_014 - 2024-11-13 17:50:27
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
-- 第 2 步 -- 点击登录按钮 当前弹窗标题为:修改功能
picture imgs/Login/Login_Pwd/登录_003_登录操作20241111170028324330.png ** 检查点 ** 弹窗标题与预期相符 ----> 通过
picture imgs/Login/Login_Pwd/登录_003_检查登录失败提示信息20241111170028876516.png
Alert text: 请输入验证码!
-- 第 3 步 -- 校验提示信息: 请输入验证码!
-- 第 3 步 -- 输入新的功能名称、功能描述
** 检查点 ** 弹出提示 ----> 通过 输入功能名称:功能编辑专用1,输入功能描述:###
-- 第 4 步 -- 选择功能类型
-- 第 4 步 -- 刷新页面 选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_014检查提示信息20241113175032070329.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_004 - 2024-11-11 17:00:29 * 功能编辑_015 - 2024-11-13 17:50:32
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj112, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用
picture imgs/Login/Login_Pwd/登录_004_登录操作20241111170031759724.png -- 第 4 步 -- 选择功能类型
picture imgs/Login/Login_Pwd/登录_004_检查登录失败提示信息20241111170032287914.png
Alert text: 账号或密码错误
-- 第 3 步 -- 校验提示信息: 账号或密码错误 选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
** 检查点 ** 弹出提示 ----> 通过
-- 第 5 步 -- 检查修改结果
-- 第 4 步 -- 刷新页面 picture imgs/Function_Manage/Function_Add/功能编辑_015检查提示信息20241113175037255180.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_005 - 2024-11-11 17:00:32 * 功能编辑_016 - 2024-11-13 17:50:37
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: adM 12in@czj, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用2,进行搜索
搜索结果为:None
** 检查点 ** 搜索结果与预期相符 ----> !! 不通过!!
FAIL
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 46, in teststeps
CHECK_POINT("搜索结果与预期相符", notify_text == function_name)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
raise AssertionError()
AssertionError
* 功能编辑_017 - 2024-11-13 17:51:00
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮 -- 第 2 步 -- 点击【编辑】按钮
picture imgs/Login/Login_Pwd/登录_005_登录操作20241111170035158291.png 当前弹窗标题为:修改功能
picture imgs/Login/Login_Pwd/登录_005_检查登录失败提示信息20241111170035602430.png
Alert text: 账号或密码错误
-- 第 3 步 -- 校验提示信息: 账号或密码错误 ** 检查点 ** 弹窗标题与预期相符 ----> 通过
** 检查点 ** 弹出提示 ----> 通过 -- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
-- 第 4 步 -- 刷新页面 -- 第 4 步 -- 选择功能类型
选择功能类型:WeLink
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_017检查提示信息20241113175105211134.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_006 - 2024-11-11 17:00:36 * 功能编辑_018 - 2024-11-13 17:51:05
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: 12345, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮 -- 第 3 步 -- 输入新的功能名称、功能描述
picture imgs/Login/Login_Pwd/登录_006_登录操作20241111170038386936.png 输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
picture imgs/Login/Login_Pwd/登录_006_检查登录失败提示信息20241111170038896627.png
Alert text: 账号或密码错误
-- 第 3 步 -- 校验提示信息: 账号或密码错误 -- 第 4 步 -- 选择功能类型
选择功能类型:SMC
** 检查点 ** 弹出提示 ----> 通过 -- 第 4 步 -- 点击【确定】按钮
-- 第 4 步 -- 刷新页面 -- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_018检查提示信息20241113175110451842.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_007 - 2024-11-11 17:00:39 * 功能编辑_019 - 2024-11-13 17:51:10
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: U bains1s@432, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 弹窗标题与预期相符 ----> 通过
picture imgs/Login/Login_Pwd/登录_007_登录操作20241111170041714157.png
picture imgs/Login/Login_Pwd/登录_007_检查登录失败提示信息20241111170042217997.png
Alert text: 账号或密码错误
-- 第 3 步 -- 校验提示信息: 账号或密码错误 -- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
** 检查点 ** 弹出提示 ----> 通过 -- 第 4 步 -- 选择功能类型
选择功能类型:语音转录
-- 第 4 步 -- 刷新页面 -- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_019检查提示信息20241113175115688516.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_008 - 2024-11-11 17:00:42 * 功能编辑_020 - 2024-11-13 17:51:15
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: 123 -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮
picture imgs/Login/Login_Pwd/登录_008_登录操作20241111170045067247.png -- 第 2 步 -- 点击【编辑】按钮
picture imgs/Login/Login_Pwd/登录_008_检查登录失败提示信息20241111170045515894.png
Alert text: 验证码错误
-- 第 3 步 -- 校验提示信息: 验证码错误 当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
** 检查点 ** 弹出提示 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 4 步 -- 刷新页面 输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
-- 第 4 步 -- 选择功能类型
选择功能类型:腾讯会议
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_020检查提示信息20241113175120369794.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_009 - 2024-11-11 17:00:45 * 功能编辑_021 - 2024-11-13 17:51:20
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: cs 12 -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮
picture imgs/Login/Login_Pwd/登录_009_登录操作20241111170048328133.png -- 第 3 步 -- 输入新的功能名称、功能描述
picture imgs/Login/Login_Pwd/登录_009_检查登录失败提示信息20241111170048786438.png
Alert text: 验证码错误
-- 第 3 步 -- 校验提示信息: 验证码错误 输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
-- 第 4 步 -- 选择功能类型
** 检查点 ** 弹出提示 ----> 通过 选择功能类型:华为云会议
-- 第 4 步 -- 点击【确定】按钮
-- 第 4 步 -- 刷新页面
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_021检查提示信息20241113175125580872.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
* 登录_010 - 2024-11-11 17:00:49 * 功能编辑_022 - 2024-11-13 17:51:25
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用1,进行搜索
搜索结果为:功能编辑专用1
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用1,输入功能描述:功能编辑专用1
-- 第 2 步 -- 点击登录按钮 -- 第 4 步 -- 选择功能类型
picture imgs/Login/Login_Pwd/登录_010_登录操作20241111170051562415.png 选择功能类型:SMC3.0
picture imgs/Login/Login_Pwd/登录_010_检查登录成功提示信息20241111170051681341.png
Alert text: 欢迎 预定标准版测试
-- 第 3 步 -- 校验提示信息: 欢迎 预定标准版测试 -- 第 4 步 -- 点击【确定】按钮
** 检查点 ** 弹出提示 ----> 通过 -- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_022检查提示信息20241113175130742579.png
修改结果为:修改成功
-- 第 4 步 -- 刷新页面 ** 检查点 ** 修改结果检查 ----> 通过
PASS PASS
...@@ -345,19 +987,19 @@ Alert text: 欢迎 预定标准版测试 ...@@ -345,19 +987,19 @@ Alert text: 欢迎 预定标准版测试
清除浏览器 清除浏览器
========= 测试结束 : 20241111_170053 ========= ========= 测试结束 : 20241113_175132 =========
耗时 : 38.323 耗时 : 137.882
预备执行用例数量 : 10 预备执行用例数量 : 22
实际执行用例数量 : 10 实际执行用例数量 : 22
通过 : 10 通过 : 21
失败 : 0 失败 : 1
异常 : 0 异常 : 0
......
...@@ -6,79 +6,120 @@ ...@@ -6,79 +6,120 @@
== cases\__st__.py == cases\__st__.py
== cases\会议室管理\功能管理\__st__.py
== cases\会议室管理\功能管理\功能新增.py
CSV文件已读取
** no cases in this file , skip it.
== cases\会议室管理\功能管理\功能编辑.py
CSV文件已读取
== cases\测试\test.py == cases\测试\test.py
** no cases in this file, skip it. ** no cases in this file, skip it.
== cases\用户管理\__st__.py == cases\登录模块\账号密码登录测试.py
CSV文件已读取
** no cases in this file , skip it.
== cases\用户管理\主流程.py == cases\系统管理\__st__.py
== cases\系统管理\系统设置.py
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户删除.py == cases\设备管理\安卓信息.py
** no cases in this file, skip it.
== cases\设备管理\毫米波雷达.py
** no cases in this file, skip it.
== cases\账号管理\用户管理\__st__.py
== cases\账号管理\用户管理\主流程.py
** no cases in this file , skip it.
== cases\账号管理\用户管理\用户修改密码.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户新增.py == cases\账号管理\用户管理\用户删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户查询.py == cases\账号管理\用户管理\用户新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\登录模块\账号密码登录测试.py == cases\账号管理\用户管理\用户查询.py
CSV文件已读取 CSV文件已读取
== cases\设备管理\安卓信息上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户状态设置.py
** no cases in this file, skip it. CSV文件已读取
== cases\设备管理\毫米波雷达上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户编辑.py
** no cases in this file, skip it. CSV文件已读取
== cases\部门管理\__st__.py ** no cases in this file , skip it.
== cases\账号管理\部门管理\__st__.py
== cases\部门管理\主流程.py
== cases\账号管理\部门管理\主流程.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门删除.py == cases\账号管理\部门管理\部门删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门新增.py == cases\账号管理\部门管理\部门新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门查询.py == cases\账号管理\部门管理\部门查询.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门编辑.py == cases\账号管理\部门管理\部门编辑.py
CSV文件已读取 CSV文件已读取
...@@ -87,11 +128,11 @@ CSV文件已读取 ...@@ -87,11 +128,11 @@ CSV文件已读取
=== [ 执行测试用例 ] === === [ 执行测试用例 ] ===
预备执行用例数量 : 10 预备执行用例数量 : 22
========= 测试开始 : 20241111_165904 ========= ========= 测试开始 : 20241113_174820 =========
...@@ -109,212 +150,214 @@ CSV文件已读取 ...@@ -109,212 +150,214 @@ CSV文件已读取
'----------' SSL证书警告处理完成 '----------' '----------' SSL证书警告处理完成 '----------'
>>> cases\登录模块\账号密码登录测试.py >>> cases\会议室管理\功能管理\
* 登录_001 - 2024-11-11 16:59:07 [ suite setup ] cases\会议室管理\功能管理\
输入用户名:admin@ZDH
输入密码:Ubains@4321
输入验证码:csba
点击登录按钮
进入后台
打开会议室管理下拉菜单
进入功能管理模块
[ case execution steps ]
-- 第 1 步 -- 输入账号: , 密码: Ubains@4321, 验证码: csba >>> cases\会议室管理\功能管理\功能编辑.py
* 功能编辑_001 - 2024-11-13 17:48:25
-- 第 2 步 -- 点击登录按钮 [ case execution steps ]
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
搜索结果为:功能编辑专用
* 登录_002 - 2024-11-11 16:59:10 ** 检查点 ** 搜索结果与预期相符 ----> 通过
[ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: , 验证码: csba -- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 弹窗标题与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 3 步 -- 输入新的功能名称、功能描述
* 登录_003 - 2024-11-11 16:59:12 输入功能名称:,输入功能描述:功能编辑专用
[ case execution steps ] -- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: -- 第 4 步 -- 点击【确定】按钮
-- 第 2 步 -- 点击登录按钮 -- 第 5 步 -- 检查修改结果
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' picture imgs/Function_Manage/Function_Add/功能编辑_001检查提示信息20241113174830562391.png
Traceback: 修改结果为:请输入功能名称
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
** 检查点 ** 修改结果检查 ----> 通过
* 登录_004 - 2024-11-11 16:59:14 check_text不等于修改成功
PASS
* 功能编辑_002 - 2024-11-13 17:48:30
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj112, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
搜索结果为:功能编辑专用
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_005 - 2024-11-11 16:59:16 当前弹窗标题为:修改功能
[ case execution steps ] ** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用功能编辑专用功能编辑专用,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 1 步 -- 输入账号: adM 12in@czj, 密码: Ubains@4321, 验证码: csba
-- 第 5 步 -- 检查修改结果
-- 第 2 步 -- 点击登录按钮 picture imgs/Function_Manage/Function_Add/功能编辑_002检查提示信息20241113174835845676.png
修改结果为:修改成功
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' ** 检查点 ** 修改结果检查 ----> 通过
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
PASS
* 登录_006 - 2024-11-11 16:59:19 * 功能编辑_003 - 2024-11-13 17:48:35
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: 12345, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用功能编辑专用功能编辑专用,进行搜索
搜索结果为:功能编辑专用功能编辑专用功能编辑专用
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_007 - 2024-11-11 16:59:21 当前弹窗标题为:修改功能
[ case execution steps ] ** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用AB,输入功能描述:功能编辑专用
-- 第 4 步 -- 选择功能类型
-- 第 1 步 -- 输入账号: admin@czj, 密码: U bains1s@432, 验证码: csba 选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 2 步 -- 点击登录按钮
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 5 步 -- 检查修改结果
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
picture imgs/Function_Manage/Function_Add/功能编辑_003检查提示信息20241113174841093348.png
修改结果为:修改成功
* 登录_008 - 2024-11-11 16:59:23 ** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_004 - 2024-11-13 17:48:41
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: 123 -- 第 1 步 -- 输入功能名称:功能编辑专用AB,进行搜索
搜索结果为:功能编辑专用AB
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_009 - 2024-11-11 16:59:25 当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
[ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: cs 12 -- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用12,输入功能描述:功能编辑专用
-- 第 2 步 -- 点击登录按钮 -- 第 4 步 -- 选择功能类型
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' 选择功能类型:普通
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 4 步 -- 点击【确定】按钮
* 登录_010 - 2024-11-11 16:59:28
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_004检查提示信息20241113174846325058.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> 通过
PASS
* 功能编辑_005 - 2024-11-13 17:48:46
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用12,进行搜索
搜索结果为:功能编辑专用12
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击登录按钮
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 2 步 -- 点击【编辑】按钮
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 67, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
当前弹窗标题为:修改功能
[ suite teardown ] cases\ ** 检查点 ** 弹窗标题与预期相符 ----> 通过
清除浏览器
========= 测试结束 : 20241111_165932 ========= -- 第 3 步 -- 输入新的功能名称、功能描述
输入功能名称:功能编辑专用@@,输入功能描述:功能编辑专用
耗时 : 27.999 秒 -- 第 4 步 -- 选择功能类型
选择功能类型:普通
预备执行用例数量 : 10 -- 第 4 步 -- 点击【确定】按钮
实际执行用例数量 : 10
通过 : 0 -- 第 5 步 -- 检查修改结果
失败 : 0 picture imgs/Function_Manage/Function_Add/功能编辑_005检查提示信息20241113174851513346.png
修改结果为:修改成功
异常 : 10 ** 检查点 ** 修改结果检查 ----> 通过
套件初始化失败 : 0 PASS
套件清除 失败 : 0 * 功能编辑_006 - 2024-11-13 17:48:51
[ case execution steps ]
用例初始化失败 : 0 -- 第 1 步 -- 输入功能名称:测试功能@@,进行搜索
用例清除 失败 : 0
...@@ -6,79 +6,120 @@ ...@@ -6,79 +6,120 @@
== cases\__st__.py == cases\__st__.py
== cases\会议室管理\功能管理\__st__.py
== cases\会议室管理\功能管理\功能新增.py
CSV文件已读取
** no cases in this file , skip it.
== cases\会议室管理\功能管理\功能编辑.py
CSV文件已读取
== cases\测试\test.py == cases\测试\test.py
** no cases in this file, skip it. ** no cases in this file, skip it.
== cases\用户管理\__st__.py == cases\登录模块\账号密码登录测试.py
CSV文件已读取
** no cases in this file , skip it.
== cases\系统管理\__st__.py
== cases\系统管理\系统设置.py
** no cases in this file , skip it.
== cases\设备管理\安卓信息.py
** no cases in this file, skip it.
== cases\设备管理\毫米波雷达.py
** no cases in this file, skip it.
== cases\用户管理\主流程.py == cases\账号管理\用户管理\__st__.py
== cases\账号管理\用户管理\主流程.py
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户删除.py == cases\账号管理\用户管理\用户修改密码.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户新增.py == cases\账号管理\用户管理\用户删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\用户管理\用户查询.py == cases\账号管理\用户管理\用户新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\登录模块\账号密码登录测试.py == cases\账号管理\用户管理\用户查询.py
CSV文件已读取 CSV文件已读取
== cases\设备管理\安卓信息上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户状态设置.py
** no cases in this file, skip it. CSV文件已读取
== cases\设备管理\毫米波雷达上报.py ** no cases in this file , skip it.
== cases\账号管理\用户管理\用户编辑.py
** no cases in this file, skip it. CSV文件已读取
** no cases in this file , skip it.
== cases\部门管理\__st__.py == cases\账号管理\部门管理\__st__.py
== cases\部门管理\主流程.py == cases\账号管理\部门管理\主流程.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门删除.py == cases\账号管理\部门管理\部门删除.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门新增.py == cases\账号管理\部门管理\部门新增.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门查询.py == cases\账号管理\部门管理\部门查询.py
CSV文件已读取 CSV文件已读取
** no cases in this file , skip it. ** no cases in this file , skip it.
== cases\部门管理\部门编辑.py == cases\账号管理\部门管理\部门编辑.py
CSV文件已读取 CSV文件已读取
...@@ -87,11 +128,11 @@ CSV文件已读取 ...@@ -87,11 +128,11 @@ CSV文件已读取
=== [ 执行测试用例 ] === === [ 执行测试用例 ] ===
预备执行用例数量 : 10 预备执行用例数量 : 22
========= 测试开始 : 20241111_165529 ========= ========= 测试开始 : 20241113_174606 =========
...@@ -109,212 +150,261 @@ CSV文件已读取 ...@@ -109,212 +150,261 @@ CSV文件已读取
'----------' SSL证书警告处理完成 '----------' '----------' SSL证书警告处理完成 '----------'
>>> cases\登录模块\账号密码登录测试.py >>> cases\会议室管理\功能管理\
* 登录_001 - 2024-11-11 16:55:32 [ suite setup ] cases\会议室管理\功能管理\
输入用户名:admin@ZDH
输入密码:Ubains@4321
输入验证码:csba
点击登录按钮
进入后台
打开会议室管理下拉菜单
进入功能管理模块
>>> cases\会议室管理\功能管理\功能编辑.py
* 功能编辑_001 - 2024-11-13 17:46:11
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: , 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
搜索结果为:功能编辑专用
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_002 - 2024-11-11 16:55:35 当前弹窗标题为:修改功能
[ case execution steps ] ** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 1 步 -- 输入账号: admin@czj, 密码: , 验证码: csba
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:,输入功能描述:功能编辑专用
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 4 步 -- 选择功能类型
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps 选择功能类型:普通
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN -- 第 4 步 -- 点击【确定】按钮
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_001检查提示信息20241113174615875636.png
修改结果为:请输入功能名称
** 检查点 ** 修改结果检查 ----> 通过
* 登录_003 - 2024-11-11 16:55:37 check_text不等于修改成功
PASS
* 功能编辑_002 - 2024-11-13 17:46:16
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: -- 第 1 步 -- 输入功能名称:功能编辑专用,进行搜索
搜索结果为:功能编辑专用
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_004 - 2024-11-11 16:55:39 当前弹窗标题为:修改功能
[ case execution steps ] ** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 1 步 -- 输入账号: admin@czj112, 密码: Ubains@4321, 验证码: csba
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:功能编辑专用功能编辑专用功能编辑专用,输入功能描述:功能编辑专用
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 4 步 -- 选择功能类型
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
选择功能类型:普通
* 登录_005 - 2024-11-11 16:55:41 -- 第 4 步 -- 点击【确定】按钮
[ case execution steps ]
-- 第 1 步 -- 输入账号: adM 12in@czj, 密码: Ubains@4321, 验证码: csba -- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_002检查提示信息20241113174621126842.png
修改结果为:修改成功
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 修改结果检查 ----> !! 不通过!!
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' FAIL
Traceback: Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 78, in teststeps
SELENIUM_LOG_SCREEN(wd) CHECK_POINT("修改结果检查", notify_text == check_text)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
filename = str(stepname+current_time) raise AssertionError()
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' AssertionError
* 登录_006 - 2024-11-11 16:55:44 * 功能编辑_003 - 2024-11-13 17:46:21
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: 12345, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用功能编辑专用功能编辑专用,进行搜索
搜索结果为:功能编辑专用功能编辑专用功能编辑专用
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
-- 第 2 步 -- 点击【编辑】按钮
* 登录_007 - 2024-11-11 16:55:46 当前弹窗标题为:修改功能
[ case execution steps ] ** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 1 步 -- 输入账号: admin@czj, 密码: U bains1s@432, 验证码: csba
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:功能编辑专用AB,输入功能描述:功能编辑专用
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 4 步 -- 选择功能类型
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time)
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
选择功能类型:普通
* 登录_008 - 2024-11-11 16:55:48 -- 第 4 步 -- 点击【确定】按钮
[ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: 123 -- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_003检查提示信息20241113174626369289.png
修改结果为:修改成功
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 修改结果检查 ----> !! 不通过!!
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' FAIL
Traceback: Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 78, in teststeps
SELENIUM_LOG_SCREEN(wd) CHECK_POINT("修改结果检查", notify_text == check_text)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
filename = str(stepname+current_time) raise AssertionError()
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' AssertionError
* 登录_009 - 2024-11-11 16:55:50 * 功能编辑_004 - 2024-11-13 17:46:26
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: cs 12 -- 第 1 步 -- 输入功能名称:功能编辑专用AB,进行搜索
搜索结果为:功能编辑专用AB
** 检查点 ** 搜索结果与预期相符 ----> 通过
-- 第 2 步 -- 点击【编辑】按钮
当前弹窗标题为:修改功能
** 检查点 ** 弹窗标题与预期相符 ----> 通过
-- 第 3 步 -- 输入新的功能名称、功能描述
-- 第 2 步 -- 点击登录按钮 输入功能名称:功能编辑专用12,输入功能描述:功能编辑专用
ABORT unsupported operand type(s) for +: 'NoneType' and 'str' -- 第 4 步 -- 选择功能类型
选择功能类型:普通
-- 第 4 步 -- 点击【确定】按钮
-- 第 5 步 -- 检查修改结果
picture imgs/Function_Manage/Function_Add/功能编辑_004检查提示信息20241113174631555767.png
修改结果为:修改成功
** 检查点 ** 修改结果检查 ----> !! 不通过!!
FAIL
Traceback: Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 78, in teststeps
SELENIUM_LOG_SCREEN(wd) CHECK_POINT("修改结果检查", notify_text == check_text)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
filename = str(stepname+current_time) raise AssertionError()
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' AssertionError
* 登录_010 - 2024-11-11 16:55:53 * 功能编辑_005 - 2024-11-13 17:46:31
[ case execution steps ] [ case execution steps ]
-- 第 1 步 -- 输入账号: admin@czj, 密码: Ubains@4321, 验证码: csba -- 第 1 步 -- 输入功能名称:功能编辑专用12,进行搜索
搜索结果为:功能编辑专用12
-- 第 2 步 -- 点击登录按钮 ** 检查点 ** 搜索结果与预期相符 ----> 通过
ABORT unsupported operand type(s) for +: 'NoneType' and 'str'
Traceback: -- 第 2 步 -- 点击【编辑】按钮
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\登录模块\账号密码登录测试.py", line 86, in teststeps
SELENIUM_LOG_SCREEN(wd) 当前弹窗标题为:修改功能
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 105, in SELENIUM_LOG_SCREEN
filename = str(stepname+current_time) ** 检查点 ** 弹窗标题与预期相符 ----> 通过
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
[ suite teardown ] cases\ -- 第 3 步 -- 输入新的功能名称、功能描述
清除浏览器
输入功能名称:功能编辑专用@@,输入功能描述:功能编辑专用
========= 测试结束 : 20241111_165557 ========= -- 第 4 步 -- 选择功能类型
选择功能类型:普通
耗时 : 28.139 秒 -- 第 4 步 -- 点击【确定】按钮
预备执行用例数量 : 10 -- 第 5 步 -- 检查修改结果
实际执行用例数量 : 10 picture imgs/Function_Manage/Function_Add/功能编辑_005检查提示信息20241113174636769883.png
修改结果为:修改成功
通过 : 0 ** 检查点 ** 修改结果检查 ----> !! 不通过!!
失败 : 0 FAIL
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 78, in teststeps
CHECK_POINT("修改结果检查", notify_text == check_text)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
raise AssertionError()
AssertionError
* 功能编辑_006 - 2024-11-13 17:46:36
[ case execution steps ]
-- 第 1 步 -- 输入功能名称:测试功能@@,进行搜索
异常 : 10 搜索结果为:功能编辑专用@@
套件初始化失败 : 0 ** 检查点 ** 搜索结果与预期相符 ----> !! 不通过!!
套件清除 失败 : 0 FAIL
Traceback:
File "D:\GithubData\自动化脚本-4\ubains-module-test\预定系统\cases\会议室管理\功能管理\功能编辑.py", line 46, in teststeps
CHECK_POINT("搜索结果与预期相符", notify_text == function_name)
File "C:\Users\29194\AppData\Local\Programs\Python\Python310\lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
raise AssertionError()
AssertionError
* 功能编辑_007 - 2024-11-13 17:46:50
[ case execution steps ]
用例初始化失败 : 0 -- 第 1 步 -- 输入功能名称:123,进行搜索
用例清除 失败 : 0
name,function_name,function_detail,function_type,check_text
功能新增_001,,功能测试,普通,请输入功能名称
功能新增_002,测试功能,功能测试,普通,添加成功
功能新增_003,测试功能测试功能测试功能测试功能测试功能,功能测试,普通,添加成功
功能新增_004,测试功能AB,功能测试AB,普通,添加成功
功能新增_005,测试功能12,功能测试12,普通,添加成功
功能新增_006,测试功能@@,功能测试@@,普通,添加成功
功能新增_007,123,123,普通,添加成功
功能新增_008,###,###,普通,添加成功
功能新增_009,功能测试1,,普通,请输入功能描述
功能新增_010,功能测试1,功能测试1,普通,添加成功
功能新增_011,功能测试2,功能测试功能测试功能测试功能测试功能测试功能测试功能测试,普通,添加成功
功能新增_012,功能测试3,功能测试CD,普通,添加成功
功能新增_013,功能测试4,功能测试@@,普通,添加成功
功能新增_014,功能测试5,123,普通,添加成功
功能新增_015,功能测试6,###,普通,添加成功
功能新增_016,测试功能,功能测试,普通,该功能已存在
功能新增_017,功能测试7,功能测试7,WeLink,添加成功
功能新增_018,功能测试8,功能测试8,SMC,添加成功
功能新增_019,功能测试9,功能测试9,语音转录,添加成功
功能新增_020,功能测试10,功能测试10,腾讯会议,添加成功
功能新增_021,功能测试11,功能测试11,华为云会议,添加成功
功能新增_022,功能测试12,功能测试12,SMC3.0,添加成功
\ No newline at end of file
name,function_name,new_function_name,new_function_detail,function_type,check_text
功能编辑_001,功能编辑专用,,功能编辑专用,普通,请输入功能名称
功能编辑_002,功能编辑专用,功能编辑专用功能编辑专用功能编辑专用,功能编辑专用,普通,修改成功
功能编辑_003,功能编辑专用功能编辑专用功能编辑专用,功能编辑专用AB,功能编辑专用,普通,修改成功
功能编辑_004,功能编辑专用AB,功能编辑专用12,功能编辑专用,普通,修改成功
功能编辑_005,功能编辑专用12,功能编辑专用@@,功能编辑专用,普通,修改成功
功能编辑_006,功能编辑专用@@,123,功能编辑专用,普通,修改成功
功能编辑_007,123,###,功能编辑专用,普通,修改成功
功能编辑_008,###,功能编辑专用1,功能编辑专用,普通,修改成功
功能编辑_009,功能编辑专用1,功能编辑专用1,,普通,请输入功能描述
功能编辑_010,功能编辑专用1,功能编辑专用1,功能编辑专用功能编辑专用,普通,修改成功
功能编辑_011,功能编辑专用1,功能编辑专用1,功能编辑专用CD,普通,修改成功
功能编辑_012,功能编辑专用1,功能编辑专用1,功能编辑专用@@,普通,修改成功
功能编辑_013,功能编辑专用1,功能编辑专用1,123,普通,修改成功
功能编辑_014,功能编辑专用1,功能编辑专用1,###,普通,修改成功
功能编辑_015,功能编辑专用1,功能编辑专用1,功能编辑专用,普通,修改成功
功能编辑_016,功能编辑专用2,功能编辑专用2,功能编辑专用2,普通,该功能已存在
功能编辑_017,功能编辑专用1,功能编辑专用1,功能编辑专用1,WeLink,修改成功
功能编辑_018,功能编辑专用1,功能编辑专用1,功能编辑专用1,SMC,修改成功
功能编辑_019,功能编辑专用1,功能编辑专用1,功能编辑专用1,语音转录,修改成功
功能编辑_020,功能编辑专用1,功能编辑专用1,功能编辑专用1,腾讯会议,修改成功
功能编辑_021,功能编辑专用1,功能编辑专用1,功能编辑专用1,华为云会议,修改成功
功能编辑_022,功能编辑专用1,功能编辑专用1,功能编辑专用1,SMC3.0,修改成功
\ No newline at end of file
name,username,new_password,check_password,check_text,back_check_text
用户修改密码_001,admin@Edit,,Ubains@13579,请输入密码,请输入密码
用户修改密码_002,admin@Edit,123,Ubains@13579,密码长度不足11位,请输入密码
用户修改密码_003,admin@Edit,qazwsxedcrf,Ubains@13579,密码没有包含大小写字母和数字,密码长度不足11位
用户修改密码_004,admin@Edit,qazwsxedcr1,Ubains@13579,密码没有包含大小写字母和数字,密码没有包含大小写字母和数字
用户修改密码_005,admin@Edit,12345678901,Ubains@13579,密码没有包含大小写字母和数字,密码没有包含大小写字母和数字
用户修改密码_006,admin@Edit,1qazwsxedcr,Ubains@13579,密码没有包含大小写字母和数字,密码没有包含大小写字母和数字
用户修改密码_007,admin@Edit,Ubains9576,Ubains@13579,密码长度不足11位,密码没有包含大小写字母和数字
用户修改密码_008,admin@Edit,Ubains12345,Ubains@13579,有连续3位及以上的连续数字,密码长度不足11位
用户修改密码_009,admin@Edit,Ubains@13579,Ubains@13579,修改成功,有连续3位及以上的连续数字
用户修改密码_010,admin@Edit,Ubains@13579,Ubains@135790,两次密码不一致,修改成功
用户修改密码_011,admin@Edit,Ubains@13579,,请再次输入密码,两次密码两次密码不一致
用户修改密码_012,admin@Edit,Ubains@13579,123,两次密码不一致,请再次输入密码
用户修改密码_013,admin@Edit,Ubains@13579,qazwsxedcrf,两次密码不一致,两次密码不一致
用户修改密码_014,admin@Edit,Ubains@13579,12345678901,两次密码不一致,两次密码不一致
用户修改密码_015,admin@Edit,Ubains@13579,qazwsxedcr1,两次密码不一致,两次密码不一致
用户修改密码_016,admin@Edit,Ubains@13579,12345678901,两次密码不一致,两次密码不一致
用户修改密码_017,admin@Edit,Ubains@13579,1qazwsxedcr,两次密码不一致,两次密码不一致
用户修改密码_018,admin@Edit,Ubains@13579,Ubains9876,两次密码不一致,两次密码不一致
用户修改密码_019,admin@Edit,Ubains@13579,Ubains12345,两次密码不一致,两次密码不一致
用户修改密码_020,admin@Edit,Ubains@13579,Ubains@13579,修改成功,两次密码不一致
用户修改密码_021,admin@Edit,Ubains@135790,Ubains@13579,两次密码不一致,修改成功
用户修改密码_022,admin@Edit,Ubains@13579,Ubains@13579,修改成功,两次密码不一致
\ No newline at end of file
name,username,status_type,check_text
用户状态设置_001,admin@ZDH,停用,用户停用失败,不可停用自己、系统管理员或企业管理员
用户状态设置_002,admin@CZJ,停用,用户无此操作权限
用户状态设置_003,admin@user,停用,设置成功
用户状态设置_004,admin@user,启用,设置成功
\ No newline at end of file
name,username,new_username,department,gender,phone,email,check_text,back_check_text
用户编辑_001,admin@Edit,,测试,男,13824387311,2064963501@qq.com,用户名为空,用户名为空
用户编辑_002,admin@Edit,admin@Edit,测试,男,13824387311,2064963501@qq.com,修改成功,用户名为空
用户编辑_003,admin@Edit,admin@Edit2,测试,男,13824387312,2064963502@qq.com,修改成功,修改成功
用户编辑_004,admin@Edit2,admin@Edit2,测试,男,13824387313,2064963503@qq.com,修改成功,修改成功
用户编辑_005,admin@Edit2,admin@Edit2,测试,女,13824387314,2064963504@qq.com,修改成功,修改成功
用户编辑_006,admin@Edit2,admin@Edit2,测试,保密,13824387315,2064963505@qq.com,修改成功,修改成功
用户编辑_007,admin@Edit2,admin@Edit2,测试,男,,2064963506@qq.com,修改成功,修改成功
用户编辑_008,admin@Edit2,admin@Edit2,测试,男,23824387316,2064963507@qq.com,手机号码格式错误,修改成功
用户编辑_009,admin@Edit2,admin@Edit2,测试,男,1372438731,2064963508@qq.com,手机号码格式错误,手机号号码格式错误
用户编辑_010,admin@Edit2,admin@Edit2,测试,男,137243acks,2064963509@qq.com,手机号码格式错误,手机号号码格式错误
用户编辑_011,admin@Edit2,admin@Edit2,测试,男,13724@@@,2064963510@qq.com,手机号码格式错误,手机号号码格式错误
用户编辑_012,admin@Edit2,admin@Edit2,测试,男,137 24,2064963511@qq.com,手机号码格式错误,手机号号码格式错误
用户编辑_013,admin@Edit2,admin@Edit2,测试,男,13824387315,2064963512@qq.com,修改成功,手机号号码格式错误
用户编辑_014,admin@Edit2,admin@Edit2,测试,男,13824387317,,修改成功,修改成功
用户编辑_015,admin@Edit2,admin@Edit2,测试,男,13824387318,###,邮箱格式错误,修改成功
用户编辑_016,admin@Edit2,admin@Edit2,测试,男,13824387319,123,邮箱格式错误,邮箱格式错误
用户编辑_017,admin@Edit2,admin@Edit2,测试,男,13824387320,2064963513@qq.com,修改成功,邮箱格式错误
用户编辑_018,admin@Edit2,admin@Edit,测试,男,13824387321,2064963514@qq.com,修改成功,修改成功
\ No newline at end of file
...@@ -7,4 +7,4 @@ name,depart_name,new_department_name,depart_user,check_text ...@@ -7,4 +7,4 @@ name,depart_name,new_department_name,depart_user,check_text
部门编辑_006,12345678,abcdefg,admin@ZDH,修改成功 部门编辑_006,12345678,abcdefg,admin@ZDH,修改成功
部门编辑_007,abcdefg,!@#$%^&*,admin@ZDH,修改成功 部门编辑_007,abcdefg,!@#$%^&*,admin@ZDH,修改成功
部门编辑_008,!@#$%^&*,编辑部门测试,admin@ZDH,修改成功 部门编辑_008,!@#$%^&*,编辑部门测试,admin@ZDH,修改成功
部门编辑_009,!@#$%^&*,,admin@ZDH,部门名称不能为空 部门编辑_009,编辑部门测试,,admin@ZDH,部门名称不能为空
\ No newline at end of file \ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论