项目成果-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.0
      pytest==7.1.2
      PyYAML==6.0
      requests==2.27.1
      pytest-html==3.2.0
      pytest-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
 
 
 
posted @ 2023-06-07 17:05  贰号猿  阅读(130)  评论(0)    收藏  举报