前言
自己之前用selenium, cypress工具做过自动化测试,目前公司要做自动化测试,主要产品是web网页(PC和手机端),微信小程序和 app, 需要结合公司的产品和各工具的特点来选择符合的测试工具
对比分析
以下是根据个人经验和查询资料做了一个各个工具的对比分析(由于app不是重点,所以app端没有过多分析)
工具 | 支持web UI自动化 | 支持手机 UI自动化 | 支持小程序UI自动化 | 支持接口测试 | 支持浏览器 | 语言 | 测试报告 | 其他 |
---|---|---|---|---|---|---|---|---|
selenium4 | 支持 | 手机web自动化 | 需要对应的webdriver,支持广泛(chrome/firefox/edge/safari等) | python/java等 | 集成allure | 1、需要设置隐试等待或者显示等待 2、适配不同的浏览器需要下载对应的驱动 3、支持分布式运行 4、社区丰富 | ||
cypress | 支持 | 手机web自动化 | 支持 | chrome/edge/electron/firefox | js | cypress的dashboard | 1. 调试时可以看到历史跑的记录,便于问题定位 2. cypress.route()进行mock数据 | |
playwright | 支持 | 手机web自动化 | 支持 | 支持主流浏览器chrome/Firefox/edge/safari等 | python/java/js等 | 集成allure | 1、安装配置简单,会自动安装对应浏览器和驱动 2、进行操作前,对元素进行可操作性检查,编写简单,并且运行更稳定 3、调试方便,可以连接Selenium Grid 4实现分布式运行 4、运行速度快( 用 selenium4 和 playwright 编写同样步骤的脚本,playwright运行约37s,selenium4 运行约45s,运行多次结果) 5. 可通过Route 对象进行mock数据 6. 提供 API操作对象 | |
airtest | 支持(本质是封装的selenium) | 支持 | 同selenium | python | 集成allure | 1、上手简单,适合游戏测试 2、iso测试需要xcode/iOS-Tagent,需要模拟器 3、对于web的实现实际是对selenium的封装 | ||
minium | 支持 | python | 会自动生成 | 1、需要微信开发者工具 2、提供云测服务,不过有时长限制 3、对于录制的脚本只适用于固定不变的数据 4. 提供虚拟账号测试 |
- 对于web UI自动化,selenium4, cypress,playwright这三个工具都能满足需求,由于cypress支持的浏览器不包含safari,并且支持的语言只有javascript,而自己对python比对javascript 熟悉,所以cypress就不考虑了
- selenium4试用了一下,运行速度和selenium3比起来要快很多,就像上面提到的,selenium的运行需要下载对应的webdriver; playwright以前未接触,试用下来安装简单,也很容易上手,在功能方面selenium有的它基本上都能包含,而且提供了APIRequest对象,操作接口也很便捷,所以选择playwright(还有一点playwright由微软团队维护,有保障)