项目成果-Playwright
1. 背景
目前,市面上使用Selenium来实现Web UI自动化的比例较高,而微软在 2020 年初开源的新一代自动化测试工具:Playwright,它的功能类似于 Selenium、Pyppeteer 等,也可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大,而且运行效率非常高,因此我们将采用【Playwright】来实现【CRM】系统的UI自动化。
2. 框架架构

3. 框架详解
框架采用Python+pytest+Playwright+Html,可通过“操作录制+提供断言方法”的方式进行自动化测试用例的维护,既能保证了入手难度低,又能保证了自动化测试脚本的相对灵活性。


4. 环境安装
- 安装python3(建议3.8以上版本)
-
playwright install
-
pip install pytest-playwright
-
安装依赖:playwright==1.22.0.py==1.11.0pytest==7.1.2PyYAML==6.0requests==2.27.1pytest-html==3.2.0pytest-playwright=0.3.3
- 安装Playwright内置浏览器,打开CMD,执行python -m playwright install
5. 用例编写
5.1 命名原则
- 测试用例命名需要基于测试模块名称命名,并以test_及数字为前缀,例如:【市场管理】模块下的【活码管理】可命名为 test_01_Market-Manage.py。
- 用例执行顺序依赖命名排序,命名数字要从01开始有序命名。
5.2 用例编写常用方法
page.goto():打开一个url页面
page.goto("https://crmbeta.hongsong.info/user/login")
page.locator():查询元素
page.locator().click() 查询元素,并进行点击
page.locator("[placeholder=\"账号\"]").click()
page.type():模拟键盘输入
page.type("xpath=//input[@id='username']", "zhongpingyan02")
page.locator().fill():查询元素,并进行文本输入
page.locator("[placeholder=\"密码\"]").fill("11111111")
page.wait_for_timeout():等待,单位:毫秒
page.wait_for_timeout(1000)
5.3 用例录制
打开CMD,执行命令:python -m playwright codegen --browser chromium --target python -o 'test.py' https://crmbeta.hongsong.info/user/login

6. 用例执行
6.1 用例执行命令
- 方式一:PyCharm中点击终端,运行命令:python run.py + 用例路径,
- 方式二:打开CMD页面,进入项目根目录,运行命令:python run.py + 执行用例路径
-
示例:python run.py CRM,默认会执行testCases/CRM文件夹中所有test_前缀的测试用例
python run.py CRM/test_01_Market-Manage.py,会执行CRM文件夹中名为test_01_login.py的测试用例
6.2 Pytest运行配置
- main()函数常用参数介绍
"--headed":headed代表以有头的模式进行运行 "--browser":指定启动浏览器 "--capture=sys":实时滚动打印日志 "--html" :生成html报告 "--self-contained-html":html报告自带样式 "--base-url":base_url设置 "--maxfail":允许最大失败次数 "--reruns":重跑次数
- 本项目运行配置信息以config.py保存

7. 报告示例

8. 提效情况
以【市场管理】模块下的【活码管理】为例,使用Playwright进行常规用例测试,可比人工验证提效90%,同时会比Selenium等其他自动化工具提效60%。
9. 参考链接
https://playwright.bootcss.com/python/
https://zhuanlan.zhihu.com/p/604028393
https://developer.aliyun.com/article/1047837
https://blog.csdn.net/qq_41332844/article/details/126831188

浙公网安备 33010602011771号