项目结构
.\data # 测试数据 .\logs # 日志 .\reports # 报告 .\static # 存放静态文件(测试上传功能所需的文件) .\testcases # 用例 .\utils # 工具 config.ini # 配置文件 run.py # 运行入口
本地调试
| 工具 | 版本 |
|---|---|
| Python | 3.9及以上 |
| chrome驱动 | 111.2(安装最新即可) |
| firefox驱动 | 144.7 (安装最新即可) |
| Pycharm | 建议专业版 2024.1.1 |
搭建步骤:
打开pycharm,创建虚拟环境,指定python执行器为3.10版本
源码拷贝到该项目根目录下(.idea文件同级)
本地安装allure,解压allure.zip文件,并且指定下环境变量(\bin目录)
在项目根目录下打开命令行,执行:
pip install -r .\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 安装依赖 playwright install # 安装浏览器驱动
修改配置文件,config.ini
# 重点是这条,指定浏览器驱动,本地运行要写上驱动的绝对路径: chrome_driver = C:\Users\800709\AppData\Local\ms-playwright\chromium-1112\chrome-win\chrome.exe firefox_driver = C:\Users\800709\AppData\Local\ms-playwright\firefox-1447\firefox\firefox.exe
流程
命令行执行(强烈推荐这种)
python {指定用例路径,rundir --run_env={执行环境,Eg: cms} --run_driver={浏览器类型,Eg: chrome} --run_side={执行端, Eg: yunying}
username: 张三 sex: 男 ssn_card: ${SYS_IDNumber()} # 这里使用自动生成测试数据方式
SYS_RamdonInt(min_num=0, max_num=9999) # 指定范围,生成整数 SYS_PhoneNumber() # 随机电话 SYS_IDNumber() # 随机身份证号码 SYS_NAME() # 随机姓名 SYS_Email() # 随机邮箱 SYS_current_date() # 获取当天的日期 SYS_current_time() # 获取此刻时间 SYS_current_datetime() # 获取此刻日期+时间
# 创建test_demo.py文件 def test_01(data): ssn_card = data['test']['ssn_card'] # 这里就引用到了之前我们造的测试数据
# 假设录制的脚本如下,为登录机构侧,进行入库管理的查询操作: page.goto("https://itest.clife.net/senior-services/login") page.get_by_placeholder("请输入用户名").click() page.get_by_placeholder("请输入用户名").fill("nanshanslh") page.get_by_placeholder("请输入密码").click() page.get_by_placeholder("请输入密码").fill("123456") page.get_by_role("button", name="登 录").click() page.get_by_text("库存管理").click() page.get_by_text("入库管理").click() page.get_by_label("入库编号").click() page.get_by_label("入库编号").fill("1234") page.get_by_role("button", name="查 询").click() # 处理后,测试用例如下 def test_01(data, page, tool): page.get_by_text("库存管理").click() page.get_by_text("入库管理").click() page.get_by_label("入库编号").click() page.get_by_label("入库编号").fill("1234") page.get_by_role("button", name="查 询").click()
page # 已经登录后的页面对象 tool # 工具类对象 data # 测试数据对象