WebUI
YouQu 基于 Playwright
驱动浏览器实现 WebUI 自动化测试。
市面上耳熟能详的可用于 Web UI
自动化测试工具:Selenium
、Cypress
、Puppeteer
、Playwright
;
咱们先初步排除掉一些明显不用的:
Cypress
,只支持JavaScript
,而我们自动化人员大多使用Python
对JavaScript
不熟悉,排除。Puppeteer
,只支持谷歌浏览器,格局没打开,官方不支持Python
,排除。
剩下 Selenium
、Playwright
,我们从一些方面做对比:
对比指标 | Selenium | Playwright |
---|---|---|
环境安装难度 | ✗ | ✔ |
运行速度 | ✗ | ✔ |
元素等待 | ✗ | ✔ |
智能定位 | ✗ | ✔ |
稳定性 | ✔ | ✔ |
文档 | ✔ | ✗ |
接口测试 | ✗ | ✔ |
总结:
Playwright
作为一个比较新的工具,在文档方便确实没有老牌的 Selenium
完善,特别是一些示例、方法的使用说明,都还不够好,甚至有些就没有说明,但基本的使用该有的都有。
除了文档方面,Playwright
几乎在各方面碾压 Selenium
,很明显 Playwright
以绝对优势获胜。
实践方法
参考章节 【Web UI 自动化测试】
断言方法
YouQu
框架统一提供断言语句,以保持统一的断言语句风格。
python
# src/webui.py
class WebAssert:
@staticmethod
def assert_locator(
locator: Union[Page, Locator, APIResponse],
) -> Union[PageAssertions, LocatorAssertions, APIResponseAssertions]:
return _expect(locator)