您现在的位置是:首页 > 文章详情

聊聊 Python 自动化脚本打包成 APK

日期:2020-02-17点击:1037

云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!

image

之前有读者朋友说 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 文件。

image

使用 adb 命令将 apk 安装到手机上,接着通过 instrument 开启自动化操作。

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

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

官方文档提到的原生应用的 poco 没法使用,包含 device() 在内的很多方法,虽然属于 airtest 内部的方法,但是打包成 apk 识别不到。

image

我们可以将宽度和高度写死,然后再进行滑动操作。

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 库还需要兼容和完善,期待官方下一版本。

云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!

原文发布时间:2020-02-18
本文作者:星安果
本文来自:“AI派公众号”,了解相关信息可以关注“AI派

原文链接:https://yq.aliyun.com/articles/745184
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章