根据帖子
在 Android 手机内执行 UI 自动化测试
动手实践了一把,把相关的操作步骤记录一下,由于 uiautomator2 版本的升级 ,需要依赖的库在原帖上增加了progress
和retry
手机上直接 push 电脑上的 uiautomator2 库,
uiautomator2 在手机上还需要安装依赖库为:
huamanize
、progress
、requests
、retry
四个
下面是具体的实践步骤
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 是一个能让安卓手机运行和编写 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
安装成功即可。
在手机上运行编写的自动化脚本文件,需要用到 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