如何将Python自动化测试脚本放在手机上运行

在这里插入图片描述
Airtest 是网易开源的一个跨平台的UI自动化测试框架,适用于游戏和App。它有以下一些功能:

1、跨平台:Airtest可以在几乎所有平台上执行游戏和App的自动化。

2、一次编写,随处运行:Airtest提供了跨平台的API,囊括了应用安装、模拟输入以及断言等。由于使用图像识别技术来定位UI元素,因此无需嵌入任何代码即可对游戏和应用进行自动化操作。

3、可扩展性:通过使用Airtest提供的命令行与python API接口,可以很轻松地在大规模设备集群上运行脚本。提供的HTML报告包含了详细操作步骤和截屏,能够迅速定位到失败点。

4、AirtestIDE:AirtestIDE是一个强大的GUI工具,可以帮助你录制和调试测试脚本。AirtestIDE提供了完整的自动化工作流程支持:录制脚本->真机回放->生成报告。

其中最吸引人的莫过于支持Python语言和可以在手机上进行自动化模拟操作这两点了。有了这功能,可以实现很多有趣的S操作。

项目地址:

https://github.com/AirtestProject/Airtest

在这里插入图片描述

但是有读者朋友表示,虽然Airtest支持将自动化脚本编译成 APK 直接运行,可照着官方提供的文档操作了一遍,发现不少的坑。所以今天就来带大家一起来趟一下这些坑。

在开始编写自动化脚本之前,我们首先要下载安装 JDK,并配置 JDK 和 ADB 到环境变量中。

以刷抖音短视频这一自动化操作为例,首先我们使用 Airtest IDE 新建一个 .air Airtest 项目。

和常规自动化操作类似,我们需要借助 ADB 命令拿到抖音 App 的应用包名和初始 Activity,利用 start_app() 方法打开抖音。

package_name = 'com.ss.android.ugc.aweme'
activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity'

# 部分手机需要开启模拟点击
start_app(package_name,activity=activity_name)

接着拿到屏幕的宽、高数值,利用 swipe() 方法模拟滑动,即可以实现切换视频的操作。

device_attrs  = device()
print(device_attrs.uuid)

# 获取设备的高度和宽度
width, height = device_attrs.get_current_resolution()

print(width)
print(height)

# 开始刷抖音
while True:
    # 滑动一次
    swipe( (width * 0.5, height*3/ 4),(width * 0.5, height / 4),duration=1)
    sleep(2)

上面这段代码直接在 IDE 运行,自动化操作能正常运行。

下一步,利用 Firebase 打包脚本,依次点击:Firebase - 打包多个脚本 - 选择目标脚本,等待本地生成一个 apk 文件。

在这里插入图片描述
使用 adb 命令将 apk 安装到手机上,接着通过 instrument 开启自动化操作。

# 开启自动化任务
adb shell am instrument -w com.netease.open.airbase/android.support.test.runner.AndroidJUnitRunner

坑一:运行之后很快就报错了,报 device() 方法在 kivy 中没有实现。

官方文档提到的原生应用的 poco 没法使用,包含 device() 在内的很多方法,虽然属于 airtest 内部的方法,但是打包成 apk 识别不到。
在这里插入图片描述
我们可以将宽度和高度写死,然后再进行滑动操作。

width = 1080
height = 2160

swipe( (width * 0.5, height*1/ 4),(width * 0.5, height*3 / 4),duration=0.5)

坑二:向上滑动事件处理不当。

测试多台设备后发现,脚本代码生成的 apk 在不同设备上运行结果不一致。

仅上面的向上滑动这一步操作,有些手机当做 长按屏幕 来消费,还有一些手机当做 下拉刷新 来处理。

建议先在 Airtest IDE 中运行,保证脚本的正确性的前提下,再去替换改写不被 apk 识别的部分。

总之,利用 Firebase 打包自动化脚本成 apk 单独运行还不是很稳定,另外一起打包内置的 kivy 库还需要兼容和完善,期待官方下一版本。

下面是一份配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
在这里插入图片描述
这些都可以以在公众号:伤心的辣条 ! 免费领取,还有一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

猜你喜欢

转载自blog.csdn.net/AI_Green/article/details/121540488