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

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

已将部门管理、用户管理模块完全输出完成,部门编辑存在定位失败问题,暂时没排查出来。输出会议室管理相关模块的脚本,当前已输出功能管理模块的新增与编辑功能代码。封装正则表达式函数用来判断密码的字符格式。优化代码的可维护性。
上级 c0532826
import csv
import re
import psutil
import logging
from hytest import *
......@@ -234,7 +236,7 @@ def send_keyboard(element_locator, wd):
# 如果元素不可交互,打印不可交互错误消息。
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):
try:
# 获取提示信息
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
# 屏幕截图
SELENIUM_LOG_SCREEN(wd,"50%",module_name,function_name,name)
......@@ -360,6 +362,35 @@ def delete_images_in_directory(directory):
except Exception as 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():
"""
退出浏览器并释放资源。
......
......@@ -42,4 +42,8 @@
12. 2024-11-11
- 补充部门管理模块脚本,目前输出了部门新增、部门删除、部门编辑、部门查询。部门编辑还存在问题,待解决。
- 测试调用钉钉机器人发送消息接口,调用失败,根据接口文档排查是由于webhook地址缺少拼接的密钥和时间戳导致,后续进一步验证。
- 优化登录模块的脚本,使用hytest框架形式。
\ No newline at end of file
- 优化登录模块的脚本,使用hytest框架形式。
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:
INFO(f"Alert text: {notify_text}")
else:
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}")
except Exception as 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
# 获取当前脚本的绝对路径
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)
# 导入模块
......
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
# 导入模块
......@@ -58,7 +58,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd)
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 == "添加成功")
......@@ -75,7 +75,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//input[@value='登 录']"),wd)
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}")
CHECK_POINT('弹出提示', notify_text == "首次登录,请修改密码")
......@@ -89,7 +89,7 @@ class Main_User_Manage_0001:
safe_click((By.XPATH, "//span[contains(text(),'确定')]"),wd)
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}")
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 *
# 获取当前脚本的绝对路径
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)
# 导入模块
......@@ -14,7 +14,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户删除.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户删除.csv')
class Delete_User_000x:
# 执行指令是:hytest --test 用户删除_0**
......
import csv
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, '..','..','..'))
预定系统_path = os.path.abspath(os.path.join(current_dir, '..','..','..','..'))
# 添加路径
sys.path.append(预定系统_path)
# 导入模块
......@@ -19,7 +18,7 @@ except ModuleNotFoundError as e:
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户新增.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户新增.csv')
class Add_User_00x:
# 执行指令是:hytest --test 用户新增_0**
......@@ -80,7 +79,7 @@ class Add_User_00x:
safe_click((By.XPATH, "//div[@aria-label='添加用户']//span[contains(text(),'确定')]"), wd)
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}")
......
......@@ -5,7 +5,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
# 导入模块
......@@ -15,7 +15,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/用户管理模块/用户查询.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/用户管理模块/用户查询.csv')
class Query_User_000x:
# 执行指令是: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
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门主流程.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门主流程.csv')
class Main_Department_Manage_000x:
# 执行指令是:hytest --test 部门主流程_0**
......@@ -37,7 +37,7 @@ class Main_Department_Manage_000x:
safe_click((By.XPATH, "//button[@class='el-button el-button--primary el-button--medium']"), wd)
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}")
CHECK_POINT("部门新增提示文本", notify_text == check_add_text)
......@@ -64,7 +64,7 @@ class Main_Department_Manage_000x:
safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd)
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}")
# 检查编辑提示文本是否与预期相符
CHECK_POINT("部门编辑提示文本", notify_text == check_edit_text)
......@@ -95,7 +95,7 @@ class Main_Department_Manage_000x:
wd)
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}")
# 检查删除提示文本是否与预期相符
CHECK_POINT("部门删除提示文本", notify_text == check_del_text)
\ No newline at end of file
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门删除.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门删除.csv')
class Department_Add_000x:
# 执行指令是:hytest --test 部门新增_0**
......@@ -40,7 +40,7 @@ class Department_Add_000x:
sleep(1)
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}")
CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text)
......@@ -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)
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}")
CHECK_POINT("单个部门删除提示文本", notify_text == check_del_text)
sleep(2)
......@@ -66,7 +66,7 @@ class Department_Add_000x:
(By.XPATH, "(//span[contains(text(),'添 加')])[1]"),
wd)
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)
STEP(2, "检查勾选多个部门")
......@@ -78,7 +78,7 @@ class Department_Add_000x:
safe_click((By.XPATH, "(//span[contains(text(),'批量删除')])[1]"),wd)
safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"),wd)
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}")
CHECK_POINT("批量部门删除提示文本", notify_text == check_del_text)
......@@ -88,5 +88,5 @@ class Department_Add_000x:
safe_click((By.XPATH, "//button[@type='button']//span[contains(text(),'批量删除')]"), wd)
sleep(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)
\ No newline at end of file
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门新增.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门新增.csv')
class Department_Add_000x:
# 执行指令是:hytest --test 部门新增_0**
......@@ -41,7 +41,7 @@ class Department_Add_000x:
sleep(1)
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}")
CHECK_POINT("父级部门新增提示文本", notify_text == check_add_text)
......@@ -52,7 +52,7 @@ class Department_Add_000x:
sleep(1)
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}")
CHECK_POINT("二级子部门新增提示文本", notify_text == check_add_text)
\ No newline at end of file
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门查询.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门查询.csv')
class Department_Query_000x:
"""
......@@ -40,7 +40,7 @@ class Department_Query_000x:
safe_click((By.XPATH, "(//span[contains(text(),'添 加')])[1]"), wd)
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}")
CHECK_POINT(f"新增部门提示文本", notify_text == "添加成功")
......@@ -60,7 +60,7 @@ class Department_Query_000x:
STEP(4, "检查部门编辑提示信息")
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}")
CHECK_POINT("检查部门编辑提示", notify_text == "修改成功")
......@@ -100,6 +100,6 @@ class Department_Query_000x:
safe_click((By.XPATH, "(//span[contains(text(),'确定')])[4]"), wd)
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 == "删除成功")
INFO(f"检查CPU使用率:{get_cpu_usage()}")
\ No newline at end of file
......@@ -3,7 +3,7 @@ from hytest import *
# 获取当前脚本的绝对路径
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)
from 预定系统.Base.base import *
......@@ -12,7 +12,7 @@ from 预定系统.Base.base import *
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../../测试数据/部门管理模块/部门编辑.csv')
csv_file_path = os.path.join(current_dir, '../../../测试数据/账号管理/部门管理模块/部门编辑.csv')
class Department_Edit_000x:
"""
......@@ -94,7 +94,7 @@ class Department_Edit_000x:
safe_click((By.XPATH, "//div[@aria-label='编 辑']//span[contains(text(),'确定')]"), wd)
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}")
CHECK_POINT("检查部门编辑提示", notify_text == check_text)
......@@ -106,4 +106,6 @@ class Department_Edit_000x:
safe_click((By.XPATH, "(//span[contains(text(),'编 辑')])[2]"), wd)
notify_text = elment_get_text(
(By.XPATH, f"//div[@class='currentDep']//div[contains(text(),'{department_user}')]"), wd)
CHECK_POINT("检查部门负责人查询结果", department_user in notify_text)
\ No newline at end of file
CHECK_POINT("检查部门负责人查询结果", department_user in notify_text)
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
此差异已折叠。
此差异已折叠。
此差异已折叠。
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
部门编辑_006,12345678,abcdefg,admin@ZDH,修改成功
部门编辑_007,abcdefg,!@#$%^&*,admin@ZDH,修改成功
部门编辑_008,!@#$%^&*,编辑部门测试,admin@ZDH,修改成功
部门编辑_009,!@#$%^&*,,admin@ZDH,部门名称不能为空
\ No newline at end of file
部门编辑_009,编辑部门测试,,admin@ZDH,部门名称不能为空
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论