minmax生成的版本
AIGC: ContentProducer: Minimax Agent AI ContentPropagator: Minimax Agent AI Label: AIGC ProduceID: “00000000000000000000000000000000” PropagateID: “00000000000000000000000000000000” ReservedCode1: 30450221009294622b8738d8d080ceac862c761b8c6429f18778624e5ed16ff070720a0a9e02200a8e906b06da04865ae0b96477996b52ea6caf27aa46942532c055d25f0429d2 ReservedCode2: 304402206acebc25ebe5439f09841901b0955d45e2c16a082d18189586da1680ce414599022070c765798ad1aa1739cd5681cdd1256eba9c5c6b48c8faa3d444d37c230b5fb9
基于 Python + pytest + Playwright + Allure + Loguru 实现的Web UI自动化测试框架。
本框架专为GitLink登录功能测试设计,支持以下核心功能:
git clone <your-repo-url> cd auto_test_project
# 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # macOS / Linux: source venv/bin/activate
pip install -r requirements.txt
# 安装所有浏览器 playwright install # 或仅安装特定浏览器 playwright install chromium playwright install firefox playwright install webkit
编辑 config/config.yaml 文件,配置以下内容:
config/config.yaml
dingtalk: is_enable: true # 开启钉钉通知 token: "your_dingtalk_token_here" # 替换为你的钉钉Webhook Token secret: "" # 钉钉加签密钥(可选) at_mobiles: [] # @人的手机号(可选)
如何获取钉钉Webhook Token: 打开钉钉群设置 → 智能群助手 → 添加机器人 选择”自定义”机器人 设置机器人名称和安全设置(可选) 复制Webhook地址中的access_token参数
如何获取钉钉Webhook Token:
user: valid_user: "autotest" # 有效的测试账号 valid_password: "12345678" # 有效账号密码 test_user: "floratest1" # 用于测试密码错误的账号 test_password: "12345679" # 错误密码
browser: name: "chromium" # 支持 chromium, firefox, webkit headless: false # 是否无头模式运行
# 使用默认配置运行(Chromium浏览器,有界面) pytest # 无头模式运行 pytest --headless # 指定浏览器 pytest --browser=chromium pytest --browser=firefox pytest --browser=webkit
# 运行特定测试用例 pytest -k "test_popup_login_success" # 运行特定标记的测试 pytest -m smoke # 显示详细输出 pytest -v -s # 失败时重新运行 pytest --reruns 3 # 生成HTML报告 pytest --html=report.html --self-contained-html
# 查看帮助 python run.py --help # 使用默认配置运行 python run.py # 指定无头模式 python run.py --headless # 运行特定用例 python run.py --keyword "popup_login" # 安装依赖 python run.py --install
浏览器的配置在 config/config.yaml 文件中:
browser: # 支持 chromium, firefox, webkit name: "chromium"
修改 browser.name 的值来切换浏览器。
browser.name
# 生成HTML报告 allure generate ./report/xml -o ./report/html --clean # 打开报告(自动打开浏览器) allure serve ./report/html # 打开本地HTML报告 allure open ./report/html
# 运行测试时自动生成 pytest --html=report.html --self-contained-html # 然后在浏览器中打开 report.html
测试运行过程中,会自动生成以下文件:
logs/ ├── test_20240315_143022.log # 测试日志(按时间戳命名) ├── test_20240315_143045.log └── screenshots/ ├── failed_test_popup_login_success_1699999999.png # 失败截图 └── ...
日志记录了每个操作的详细信息,包括:
auto_test_project/ ├── config/ # 配置模块 │ ├── config.yaml # 全局配置文件 │ └── setting.py # 配置读取器 ├── common/ # 公共工具 │ ├── logger.py # 日志封装 │ ├── dingtalk.py # 钉钉通知 │ └── utils.py # 工具函数 ├── pages/ # 页面对象 │ ├── base_page.py # 基础页面类 │ ├── login_page.py # 登录页面 │ └── home_page.py # 首页 ├── test_cases/ # 测试用例 │ ├── conftest.py # Pytest配置 │ └── test_login.py # 登录测试 ├── report/ # 测试报告 │ ├── xml/ # Allure XML │ └── html/ # Allure HTML ├── logs/ # 日志文件 ├── pytest.ini # Pytest配置 ├── requirements.txt # 依赖 └── run.py # 运行脚本
# 确保已安装playwright pip install playwright playwright install
config.yaml
dingtalk.is_enable
true
dingtalk.token
如果测试运行过程中出现元素定位失败,可能是因为:
可以在 pages/login_page.py 中调整选择器,或在 base_page.py 中增加等待时间。
pages/login_page.py
base_page.py
# 设置环境变量 export LANG=zh_CN.UTF-8 # 重新生成报告 allure generate ./report/xml -o ./report/html --clean
test_cases/
@allure.feature
@allure.story
pages/
参考 pages/login_page.py 的结构:
from pages.base_page import BasePage class NewPage(BasePage): # 定义元素选择器 ELEMENT_NAME = "selector" # 定义操作方法 def do_something(self): self.click(self.ELEMENT_NAME, "描述")
在 config/config.yaml 中调整:
env: timeout: 30000 # 页面操作超时(毫秒) wait_element_timeout: 10 # 元素等待超时(秒)
MIT License
如有问题,请联系测试团队。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
AIGC: ContentProducer: Minimax Agent AI ContentPropagator: Minimax Agent AI Label: AIGC ProduceID: “00000000000000000000000000000000” PropagateID: “00000000000000000000000000000000” ReservedCode1: 30450221009294622b8738d8d080ceac862c761b8c6429f18778624e5ed16ff070720a0a9e02200a8e906b06da04865ae0b96477996b52ea6caf27aa46942532c055d25f0429d2 ReservedCode2: 304402206acebc25ebe5439f09841901b0955d45e2c16a082d18189586da1680ce414599022070c765798ad1aa1739cd5681cdd1256eba9c5c6b48c8faa3d444d37c230b5fb9
UI自动化测试框架
基于 Python + pytest + Playwright + Allure + Loguru 实现的Web UI自动化测试框架。
项目简介
本框架专为GitLink登录功能测试设计,支持以下核心功能:
环境要求
快速开始
步骤1:克隆项目
步骤2:创建虚拟环境(推荐)
步骤3:安装依赖
步骤4:安装Playwright浏览器
步骤5:配置修改
编辑
config/config.yaml文件,配置以下内容:钉钉通知配置(可选)
测试账号配置
浏览器配置
运行测试
基本用法
常用命令
使用run.py脚本
浏览器配置
浏览器的配置在
config/config.yaml文件中:修改
browser.name的值来切换浏览器。查看测试报告
Allure报告
Pytest HTML报告
日志和截图
测试运行过程中,会自动生成以下文件:
日志记录了每个操作的详细信息,包括:
测试用例说明
项目结构
常见问题
Q1: 运行时报错 “playwright not found”
Q2: 钉钉通知没有发送
config.yaml中的dingtalk.is_enable是否为truedingtalk.token是否正确配置Q3: 元素定位失败
如果测试运行过程中出现元素定位失败,可能是因为:
可以在
pages/login_page.py中调整选择器,或在base_page.py中增加等待时间。Q4: Allure报告中文显示乱码
进阶用法
添加新的测试用例
test_cases/目录下创建新的测试文件@allure.feature和@allure.story装饰器pages/目录下创建对应的页面对象类添加新的页面对象
参考
pages/login_page.py的结构:修改超时设置
在
config/config.yaml中调整:许可证
MIT License
联系方式
如有问题,请联系测试团队。