ATX ATX-uiautomator2 使用 QPython 在 Android 手机内执行自动化

cynic · 2018年02月11日 · 最后由 cynic 回复于 2018年03月12日 · 2054 次阅读

根据帖子
在 Android 手机内执行 UI 自动化测试
动手实践了一把,把相关的操作步骤记录一下,由于uiautomator2 版本的升级 ,需要依赖的库在原帖上增加了progressretry
手机上直接push电脑上的uiautomator2库,
uiautomator2在手机上还需要安装依赖库为:
huamanizeprogressrequestsretry 四个

下面是具体的实践步骤

电脑端uiautomator2安装

1、安装uiautomator2,执行命令
pip install --pre -U uiautomator2

2、设备安装atx-agent
首先Android设备连接到PC,并能够adb devices发现该设备,执行命令
python -m uiautomator2 init

最后提示success,代表atx-agent初始化成功。

C:\Users\LiN>python -m uiautomator2 init
2018-02-11 20:15:21,139 - __main__.py:243 - INFO - Device(C4Y5T16810004018) init
ialing ...
2018-02-11 20:15:21,917 - __main__.py:110 - INFO - install minicap
2018-02-11 20:15:22,247 - __main__.py:117 - INFO - install minitouch
2018-02-11 20:15:22,976 - __main__.py:132 - INFO - apk(1.0.9) already installed,
 skip
2018-02-11 20:15:23,139 - __main__.py:164 - INFO - atx-agent(0.2.0) already inst
alled, skip
2018-02-11 20:15:23,140 - __main__.py:198 - INFO - launch atx-agent daemon
2018-02-11 20:15:25,371 - __main__.py:213 - INFO - atx-agent output: server star
ted, listening on 192.168.31.128:7912
2018-02-11 20:15:25,373 - __main__.py:214 - INFO - success

QPython安装

QPython是一个能让安卓手机运行和编写Python的APP,Github下载地址下载链接
下载qpython-release.apk,然后使用adb install安装即可。
安装好之后,由于uiautomator2的库依赖huamanize、progress和requests,打开QPython,点击QPYPI,然后点击INSTALL WITH PYTHON'S PYPI,分别执行:

pip install requests
pip install humanize
pip install progress

安装成功即可。

将相关的库及脚本文件push到手机内

在手机上运行编写的自动化脚本文件,需要用到uiautomator2库和相关的依赖库retry,由于INSTALL WITH PYTHON'S PYPI无法直接安装,所以直接将电脑上uiautomator2库的整个文件夹复制到制定的文件夹下就好了。
经过观察QPython中路径在这个下面:
/storage/emulated/0/qpython

将uiautomator2库复制到qpython/lib/python2.7/site-packages下,执行命令
adb push C:\Python35\Lib\site-packages\uiautomator2 /storage/emulated/0/qpython/lib/python2.7/site-packages

将retry库复制到qpython/lib/python2.7/site-packages下,执行命令
adb push C:\Python35\Lib\site-packages\retry /storage/emulated/0/qpython/lib/python2.7/site-packages

将写好的自动化脚本文件atx_agent_demo.py复制到qpython/scripts3下,执行命令
C:\Users\LiN>adb push D:\PycharmProjects\autotest\atx_agent_demo.py /storage/emulated/0/qpython/scripts3

手机端运行脚本

文件atx_agent_demo.py用网易云音乐来进行简单的demo演示

import uiautomator2 as ut2


def main():
    u = ut2.connect('http://0.0.0.0:7912')
    print(u.info)
    u.app_start('com.netease.cloudmusic')
    u(text='私人FM').click()
    u(description='转到上一层级').click()
    u(text='每日推荐').click()
    u(description='转到上一层级').click()
    u(text='歌单').click()
    u(description='转到上一层级').click()
    u(text='排行榜').click()
    u(description='转到上一层级').click()


if __name__ == '__main__':
    main()

打开QPython,点击文件,然后点击dcripts找到atx_agent_demo.py,运行即可。附上运行的GIF

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞

点赞

—— 来自TesterHome官方 安卓客户端

非常值得点赞

我之前一直想实现自动打开微信的方法,发现是主机IP没有配置好,要配置为0.0.0.0

—— 来自TesterHome官方 安卓客户端

别的小米魅族手机运行都成功,就只有华为的荣耀手机这个奇葩,首先是包装不上,再者我从电脑拷贝包OK后,运行程序全是Segmentation default,真的是服了!!请问楼主有遇到类似情况吗

dengehello 回复

没在很多手机上试过诶 只在一台华为P9上边实践了下 之后就没深入下去了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册