Airtest 快速上手

官方教程文档:https://airtest.doc.io.netease.com/
Airtest API文档:https://airtest.readthedocs.io/zh_CN/latest/
poco API文档:https://poco.readthedocs.io/zh_CN/latest/index.html

1、AirtestProject 简介

AirtestProject 是由网易游戏推出的UI自动化测试解决方案,项目构成如下:

Airtest 框架

Poco 框架

AirtestIDE

DeviceFarm

  • 手机集群解决方案-DeviceFarm。网易推出的自动化测试集群解决方案,它是软硬件一体化方案,包含设备集群建设、集群设备批量维护管理、监控报警和云端真机等功能,可以为您在企业内部搭建稳定高效的设备管理平台, 提升设备利用率,赋能自动化测试流程搭建:https://airtest.doc.io.netease.com/commercial/commercial/#1_2

Airlab云测试平台

相关教程

2、快速上手

第一次使用时,推荐教程中的 "5分钟上手自动化测试",对整个项目有一个直观了解。


 

3、AirtestIDE 使用文档

使用 Pycharm 进行开发

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple airtest
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pocoui

刚开始做自动化测试的新手来说,建议通过IDE提供的设备窗口去连接测试设备,这样不仅可以非常直观地看到设备的画面;还可以在运行脚本时,自动帮大家生成带连接设备参数的运行命令,减少很多不必要的错误:

Windows 窗口连接

点击 "选择游戏画面",在出现绿色/红色方框进行窗口选择的状态下,点击键盘的 esc 按键、鼠标右键均可退出状态。也可以点击 选择游戏画面 隔壁的 搜索窗口 按钮 进行连接。在嵌入窗口前,请先最小化其他无关窗口,保持桌面上只有AirtestIDE和待测窗口是激活状态。很多桌面软件由于实现方式各有不同,如果 Windows窗口一键嵌入 出现异常,比如窗口嵌入后点击失效,或者嵌入时软件报错,此时可换用 Windows窗口无嵌入连接 方案进行重试

  • 下拉菜单 "设置"-"选项"-"Device" ,勾选上 Connect windows without embedding,

 Windows桌面模式。测试的窗口不止一个(拥有多个不同的窗口句柄),那么单独嵌入一个窗口可能就无法满足测试需求,所以我们也提供了另外一种连接Windows的方案:桌面模式。

auto_setup(__file__,devices=["Windows:///"])

"桌面模式" 模式下,录制脚本与运行脚本都与正常情况下没有区别,只不过执行时将会 对整个桌面进行截图识别 ,甚至可以识别到AirtestIDE代码窗口里的截图语句(因此在执行脚本时,请尽量缩小AirtestIDE的窗口,避免脚本界面里的截图干扰执行结果,或者将IDE脚本窗口里面的截图转换成代码模式)。注意:如果 Windows窗口被关闭后重新打开,句柄也将会发生变化

使用 AirtestIDE 进行开发

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

设备的 URI字符串

关于远程连接的 Android 字符串代码:如果在代码中/脚本运行时,需要填写Android:/// 字符串,又不清楚远程连接的手机应该如何填写的话,可以直接用AirtestIDE运行一次脚本,然后将IDE生成的 Android:/// 字符串复制使用。通常情况下,字符串需要填写的内容为 Android://adbhost:adbport/serialno ,其中,adbhost和adbport一般来说默认都是本机adb,即 127.0.0.1:5037 ,在远程连接手机时,与本地手机不同的是设备号serialno:

  • 连接 Android 手机:
    # 什么都不填写,默认取当前连接中的第一台手机
    Android:///
    # 连接本机默认端口连的一台设备号为79d03fa的手机
    Android://127.0.0.1:5037/79d03fa
    # 用本机的adb连接一台adb connect过的远程设备,注意10.254.60.1:5555其实是serialno
    Android://127.0.0.1:5037/10.254.60.1:5555
  • 连接 iOS 手机:iOS:///127.0.0.1:8100
  • 连接 Windows 窗口:
    # 连接一个窗口句柄为123456的Windows窗口
    Windows:///123456
    # 连接一个Windows窗口,窗口名称匹配某个正则表达式
    Windows:///?title_re=Unity.*
    # 连接 windows 桌面,不指定任何窗口
    Windows:///
  • 使用了备选连接参数的设备。
    # 夜神模拟器(127.0.0.1:62001为夜神模拟器的端口号)
    Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP&&ori_method=ADBORI
    # 设备号为79d03fa的 MIUI11 设备
    Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI

代码 连接 设备

Airtest 连接设备https://airtest-refactor.doc.io.netease.com/airtest-project-docs/IDEdocs/airtest_framework/2_connect_device/

  • 1. 使用 auto_setup 接口。auto_setup 是一个用来 初始化环境 的接口,它接受5个参数。可以设置当前脚本所在的路径、 指定运行脚本的设备 、设置默认的 log 路径、设置脚本父路径和指定截图精度。其中第二个参数就是指定运行脚本的设备,这里传入待连接设备的URI字符串 ,例如:# 连接本机默认端口连的一台设备号为SJE5T17B17的手机
    auto_setup(__file__,devices=["Android://127.0.0.1:5037/SJE5T17B17"])
    注意:devices 传入的是一个字符串列表,所以如果需要 连接多台设备 ,直接用 , 隔开多个URI字符串即可
    # 连接本机默认端口连的设备号为123和456的两台手机
    auto_setup(__file__,devices=["Android://127.0.0.1:5037/123","Android://127.0.0.1:5037/456"])
  • 2. 使用 connect_device 接口。在 connect_device 接口中传入设备的URI字符串即可连接1台设备:dev = connect_device("Android://127.0.0.1:5037/SJE5T17B17")  如果需要连接多台设备,可以编写多条的 connect_device 脚本,并且用 set_current 来切换到当前使用设备:
    # 连上第一台手机
    dev1 = connect_device("Android://127.0.0.1:5037/serialno1")
    # 连上第二台手机
    dev2 = connect_device("Android://127.0.0.1:5037/serialno2")
    # 切换当前操作的手机到序列号为serialno1的手机
    set_current("serialno1")
  • 3. 使用 init_device 接口。init_device 接口只需要传入 设备平台和设备的uuid 即可。在本地命令行运行脚本时,如果 脚本里面没有任何连接设备 的语句,就需要通过在运行命令中添加 --device URI字符串 来连接设备:airtest run D:/test/test_connect.air --device Android:///    否则命令行会提示你没有连接设备。另外,如果你的设备需要添加备选的连接参数才可以正常连接,比如模拟器或者MIUI11等的设备,则在命令行连接设备时也需要把这些参数加上:airtest run D:/test/test_connect.air --device Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP^&^&ori_method=ADBORI

注意:Airtest 辅助窗的API快捷键,只有在IDE的设备窗口连接上设备之后,才是可以使用状态,否是都是置灰的不可用状态

  • 点击:touch
  • 滑动:swipe
  • 等待截图出现:wait
  • 存在某个截图:exists
  • 文本输入:text
  • 关键词操作:keyevent
  • 截图:snapshot
  • 等待:sleep
  • 断言:assert_existsassert_not_existsassert_equalassert_not_equal

常见问题与脚本示例

4、Airtest 脚本入门

5、Poco 脚本入门

6、教程汇总

常见 api 介绍

  • 1)touch点击: https://mp.weixin.qq.com/s/rrAgQCjGKZs2pzgzG496HA
  • 2)swipe滑动:https://mp.weixin.qq.com/s/EjVDlRtM99EW_Uw7M0dQ-Q
  • 3)text输入: https://mp.weixin.qq.com/s/WyqNa9-riLIpzEBEemT2GQ
  • 4)keyevent大全:https://mp.weixin.qq.com/s/HXZVd1uwaOd9gt7IVBGNDQ
  • 5)Assert断言: https://mp.weixin.qq.com/s/DEe-Emyi0hN0JZA83i1Wmg

测试框架 教程

AIRTEST

POCO

除了Android和iOS原生应用无需接入pocosdk,在辅助窗内选择对应的模式即可查看应用的UI树;其他引擎渲染的游戏应用,都需要 事先在游戏应用的项目源码中接入pocosdk ,之后再打包出来安装到待测设备上,这样才能使用poco辅助窗的对应模式来查看该应用的UI树。

目前支持平台如下:Poco介绍 - Airtest Project Docs (netease.com)

小程序测试:小程序测试全攻略,还学不会你来找我(含实操代码) (qq.com)

AIRTEST-SELENIUM

基础知识 教程

坐标 相关

1)Airtest和poco的坐标系介绍(绝对坐标与相对坐标):https://mp.weixin.qq.com/s/6yu0gjCEZQ_x6NwEY_rBjQ

截图 相关

1)截图识别失败、提高截图脚本兼容性01:https://mp.weixin.qq.com/s/M5RXb9Gts_nMGHODovjQew

2)截图识别失败、提高截图脚本兼容性02:https://mp.weixin.qq.com/s/lOK5lrBlmd6CGAleCZ1KwA

3)Airtest的截图识别算法介绍:https://mp.weixin.qq.com/s/cGFvU9C7mBpsmnWgDLPW5A

4)图像识别新算法mstpl的介绍:https://mp.weixin.qq.com/s/xjS-SPgmt6emmUM74lvQew

ADB 相关

1)Airtest封装的ADB操作简介:https://mp.weixin.qq.com/s/ULSsfVADTG2WlbncErbbFQ

AIRTESTIDE 相关

1)AirtestIDE的部分使用技巧:https://mp.weixin.qq.com/s/cNUKavYyy-JeErDVqQe86A

报告 相关

1)生成、导出报告全攻略:https://mp.weixin.qq.com/s/NDCcs4egVFe4Bngg_qjfjA

2)用脚本实现自动发送测试报告到指定邮箱:https://mp.weixin.qq.com/s/a23cKOBYU9jOcw6VSEcBRg

3)用命令行生成、导出报告:https://mp.weixin.qq.com/s/bc-xcCmbgHLKP9cMdhS97g

4)自定义Airtest报告的名称:https://mp.weixin.qq.com/s/-r4km9i7mvhmqOuGDU09JQ

IOS自动化

1)iOS应用自动化实操: https://mp.weixin.qq.com/s/XEqsOxIhXGjpGhUzCe4RXw

2)模拟清除iOS后台应用:https://mp.weixin.qq.com/s/wfXATdx_U5gpwIQcSQHe2g

3)使用tidevice脱离Mac搞iOS自动化测试:https://mp.weixin.qq.com/s/rAy4fB5MOCFC48o5pYK9pA

4)iOS信息获取实操:https://mp.weixin.qq.com/s/I1_EHyNE3kWvYgptOG6cCA

5)iOS部分专用接口介绍(含处理弹窗接口):https://mp.weixin.qq.com/s/jQjdum6mHKchCf933LSHSg

WINDOWS 自动化

1)Windows自动化实操: https://mp.weixin.qq.com/s/SaBCwYHTF8mnNLjBlnzt7w

2)IDE连接Windows窗口相关问题:https://mp.weixin.qq.com/s/sFdxHOXt9nIM326pnK0UGw

3)用Python模拟鼠标键盘操作:https://mp.weixin.qq.com/s/8_QNOAush9jE5sfm8RLCTA

设备连接相关

1)各种连接设备的接口介绍:https://mp.weixin.qq.com/s/znYi-eCifeMXfce9GDpW-w

2)连接安卓模拟器的常见问题:https://mp.weixin.qq.com/s/us4Jr9t21nNyKs-bGD9yyg

3)连接模拟器的案例实操:https://mp.weixin.qq.com/s/2_K4AKCfHQ59wgedXZ23wA

4)查看多开模拟器的端口号:https://mp.weixin.qq.com/s/dt8intXeelLLe0eSctCH3A

安卓微信小程序

1)测试安卓的微信小程序(随微信版本更新会失效):https://mp.weixin.qq.com/s/R02Ac3ZC1B_ND7QVik_Z8Q

常见问题及解决办法

1)pocoservice不断重启的解决办法:https://mp.weixin.qq.com/s/_3GeT89Ok1S1hBJWVoPIhA

2)点击不生效的排查办法:https://mp.weixin.qq.com/s/2dieUfDIDsEQZnd37FSVDA

3)容易混用的几个Airtest和Poco的API:https://mp.weixin.qq.com/s/5SPP2IttKvnzq0ApZcoRzw

4)Python import指南:https://mp.weixin.qq.com/s/aByXx9svkzIPe8EqSxlI_g

5)录制脚本运行的视频: https://mp.weixin.qq.com/s/3JsVjwikjo4OmtcjvmktRw

6)Yosemite输入法的相关问题:https://mp.weixin.qq.com/s/LnzToiXFVcfkeOGz8Vz9Pw

7)IDE的安卓小助手: https://mp.weixin.qq.com/s/EH0aQnr2AwG0MmFdgoE7mw

8)模拟滑动解锁、多指滑动等:https://mp.weixin.qq.com/s/JiIT0CkiY7zcdqUo-AI0GQ

9)局部截图和局部找图功能:https://mp.weixin.qq.com/s/Kd_EQit9UG5CLxw-EHM1Uw

10).air脚本和.py脚本的区别:https://mp.weixin.qq.com/s/-gGplycWKAsJ6Os3XQFARA

11)用pycharm编写airtest脚本的常见问题:https://mp.weixin.qq.com/s/Ha2Oq02lkDmMokwPxFpN6A

12)选择poco模式之后查看不到UI树
https://airtest.doc.io.netease.com/IDEdocs/faq/2_common%20problems/#6ui

13)删除输入框的内容
https://airtest.doc.io.netease.com/IDEdocs/faq/1_code_examples/#4

14)安卓设备连接问题
https://airtest.doc.io.netease.com/IDEdocs/3.2device_connection/3_android_faq/

15)最常问的8大问题01期:https://mp.weixin.qq.com/s/Z2K1a1UyKUhjqVnhMCN0CQ

16)最常问的8大问题02期:https://mp.weixin.qq.com/s/hUTNdeHuCre52DUUrQbJsQ

17)最常问的8大问题03期:https://mp.weixin.qq.com/s/YcSBMA_7tkImoEYCK7UyUQ

18)最常问的8大问题04期:https://mp.weixin.qq.com/s/sbrnP9ZT9aXBdM37K5M9LA

19)Airtest快问快答01期:https://mp.weixin.qq.com/s/R_1jtOC9lsXJnqXS6xZnsw

20)Airtest快问快答02期:https://mp.weixin.qq.com/s/ZXW1OY-oqatx3u5xVvyZdA

高级 教程

1)自动化测试的文字识别:https://mp.weixin.qq.com/s/mrx2fndE9t_477yViZrpRA

2)Airtest脚本的批量运行:https://mp.weixin.qq.com/s/1YlUuiQCmMGb5_64S-si3Q

3)多机协作的实操案例: https://mp.weixin.qq.com/s/8q9IoFYvhGe1v6ow74Bfmg

4)从0到1打包项目并接入pocosdk:https://mp.weixin.qq.com/s/hhukqYAfjQ_dsQ06KC3A0g

5)提高遍历pocoUI树的效率:https://mp.weixin.qq.com/s/O5ckgX_cvOp6RQqSwYaxKg

6)如何修改Airtest源码:https://mp.weixin.qq.com/s/PnZBFrFW8f_Bn6v228fVSQ

7)利用装饰器重跑case:https://mp.weixin.qq.com/s/kzDcL62gRi7LjcIqXZhj2g

8)利用多线程解决装包过程输入密码的问题:https://mp.weixin.qq.com/s/zZJJM8-3If9-f4kP5IAx8w

9)模拟复杂的滑动/多指操作:https://mp.weixin.qq.com/s/_2hcQivHaw1vlzo4yapSbA

10)利用启动器添加自定义的命令行参数:https://mp.weixin.qq.com/s/rZK39kMbYz5jylV38Oz79A

11)利用启动器添加自定义的变量:https://mp.weixin.qq.com/s/0beP_IB5ytma1dYd2AQrew

12)Poco自动化测试的数据分离实践:https://mp.weixin.qq.com/s/9Nyu4hjXR7jhN3TP34GC3A

13)Poco和Excel读写结合的应用实践案例:https://mp.weixin.qq.com/s/nAsWIuxun4ZaFGsioeOAUA

14)利用plugins对报告做内容定制:https://mp.weixin.qq.com/s/nW0BRb-hJ8dZy0pXTeK4OA

自动化测试 案例(含脚本)

1)APP登录和退出的自动化:https://mp.weixin.qq.com/s/7HkMHbk2CgNo_PKtB-MmKg

2)循环执行脚本的实操案例:https://mp.weixin.qq.com/s/u8HikcgDDrvPrAbiDwA7ZQ

3)调用其它脚本的实操案例:https://mp.weixin.qq.com/s/4RsrAhEutK7MOqVqWr_iyQ

4)用Airtest做爬虫的实操案例:https://mp.weixin.qq.com/s/-Agd4uC2irXwDTf77arSDA

7、商业方案

私有云方案概览

集群 "建设、管理"

工业级的手机集群机柜

专业机柜

方案优势

  • 14
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值