airtest使用案例一则

发布时间 2023-05-20 11:35:48作者: opama

文档

https://airtest.doc.io.netease.com/

基本能力

适用范围:

支持的手机: android、iphone (含模拟器)
服务端部署:linux、windows、mac

功能

Airtest框架:是一个跨平台的、 基于图像识别 的UI自动化测试框架 《—— 一般用这个

  • 优点:跨平台
  • 缺点:不精确,能力受限
    —— 之前的使用场景:做导购小程序工作台、企助工作台的巡检,因为图标基本一样,所以脚本复用性好

Poco框架:基于UI控件识别 的自动化测试框架

  • 优点:可以识别元素以及获取内容,准确
  • 缺点:应用需要接入SDK

需求

有一批品牌名和公司名, 需要在微信里搜索这个品牌/公司, 找到这个品牌的小程序,查看这个品牌小程序的服务商是谁,记录下来

基本使用

编写或者使用IDE抓取页面:

  • 图片模式
  • 编码模式

推荐使用IDE,可以通过截屏的方式编写

基本API见:如何使用Airtest API文档 - Airtest Project Doc

基本步骤

获取名称列表

获取名称列表,通过gpt帮忙转成python list的格式

开始编写

使用Airtest框架,每个页面找到对应执行的图标,识别和点击,如 搜索按钮

通过识别按钮点击然后完成录制流程

这样就完了么?

  1. 点击小程序或者页面需要加载,页面切换也需要时间
    需要一些wait和sleep

  2. 稳定性:手机性能太差容易卡死

  • 使用android模拟器,需要多试几款看下兼容性:mumu、雷电、蓝叠、AVD等,大部分模拟器不支持mac M1/M2;在公司笔记本上性能一般,因为模拟器会有性能损耗,同时开airtest和模拟器,CPU经常100%,总体比手机快的不多;更推荐台式机上运行
  • iOS可能会流畅一点,但iOS需要手机安装WDA,需要开发者账号,https://www.bilibili.com/read/cv11430863/
  • 使用较好的真机
  • 调小屏幕分辨率,屏幕越大、分辨率越高,按钮识别的越慢
  1. 失败的处理&重复运行的能力
    批量处理过程中,需要具备:
  • 某些case失败需要恢复,否则会一直失败,常见的失败场景:点击未生效、跳到了一个新页面或者新交互(如进入小程序页面报错或者要求授权)、页面卡死黑屏或白屏、页面加载时间过长
  • case运行成功需要恢复初始状态

基本逻辑:判断当前页面是哪个环节,选择前进还是后退;如果不是认知范围的页面,使用后退退回