背景

新项目需要做游戏sdk的自动化测试,查找资料了解到了airtest和poco框架,之前测app的时候用的是采用PO模式,appium+pytest+allure的框架,所以在新项目开始之前熟悉熟悉新框架。

1、项目目录

pyhthon airtest ios手机 airtest加pytest_图像识别


config:存放配置文件,用来读取配置

page用来封装写每一个页面的方法

report:用来放allure的测试数据

testcase:用来管理case,airtest框架可以使用图像识别进行自动化,所以建立case_img存放测试图片

launch:用于连接手机和启动app

run:用于启动整个项目

2、config

pyhthon airtest ios手机 airtest加pytest_元素定位_02

最主要的参数是deviceName和appPackage,deviceName实体机就填设备号,模拟器就填IP:端口,appPackage填包名

3、testcase

pyhthon airtest ios手机 airtest加pytest_元素定位_03


case没什么好说的,就是典型的pytest框架,在setup里连接手机并启动app,在test_*下写测试逻辑,如何可以图像识别和元素定位并用,比较灵活。例如支付调了微信的sdk,在微信的界面里不方便用元素定位的方式,可以使用airtest的图像识别做自动化。

4、launch

pyhthon airtest ios手机 airtest加pytest_图像识别_04


通过读取config的配置,使用connect_device函数连接手机,使用start_app函数启动app,其中MainPage作为PO设计模式里的基页,承担了初始化poco的功能

pyhthon airtest ios手机 airtest加pytest_封装_05

5、run

用于启动整个测试项目,并生成allure报告

pyhthon airtest ios手机 airtest加pytest_图像识别_06

6、结语

由于没有拿到正式测试的app,所以这些都是基于现有的非测试的游戏app写的简单的一个框架,其中对poco的封装,常用函数的封装还没有做,allure也是上个项目就嵌入过的,比较成熟,该demo也没提如何使用allure,有兴趣可以百度用法或直接交流。有对源码感兴趣的小伙伴,在评论留言,欢迎一起讨论。

ps:较于appium最大的好处在与可以使用图像识别和元素定位两种方法混合灵活测试,且不用启动任何服务。