ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

uiautomator2+python自动化测试1-环境准备

uiautomator2+python自动化测试1-环境准备 前言它就是专门提供给开发人员, 用于开展安卓自动化测试工作的一份Java类库资源。这个工具的强大之处在于具备极其强大的功能体系, 不仅支持针对第三方应用程序执行测试操作, 还允许开发者获取位于当前屏幕上的任意应用软件内部的任意一个控件对象的相关属性信息, 并且能够对这些控件实施各式各样的控制动作, 然而在实际使用场景中, 该方案同时也暴露出了存在两项明显缺陷的不足情况:测试脚本只能是Java语言编写的测试脚本, 而且这些测试脚本必须每次都被上传到设备上面去运行。我们希望能够进行测试并且使用编写的程序在电脑上运行的同时控制手机, 所以就有了这个想法, 后来又有新的进展了, 详细信息请查看所提供的地址。环境准备3.60.3.3工作原理它被切分成两部分。在电脑上面的这个程序里, 运行一下那个写的代码, 然后把一种叫http的请求给发到这个电脑的设备上面去。在移动设备这边, 启动了封装好了的HTTP服务, 用来把收到的请求给解析掉, 并且接着又把这些内容转化成了代码。关于具体的详情信息, 大家不妨参考一下这篇内容。1.安装在运用pip3执行安装操作的过程中, 遭遇到了些许的困难情况, 具体表现为始终利用pip --pre -U这一参数指令来进行反复的安装尝试, 但却屡次以失败告终, 针对这一问题进行了广泛的学习与资料查阅, 却发现大多数流传于网络之上的教程推荐方案均是指向同样的这一种做法。最后去网络上查找了一份相关指南, 发现使用pip3进行安装是一个可行的办法, 于是便抱着试一试的心态去执行了该操作, 结果令人欣慰地发现安装环节顺利完成了。需要先把那个目录切换到当前工作目录下, 然后再动用pip3这个工具去执行安装操作。E:\\Scriptspip3 -U2.将adb的连接状态与手机相联系在一起。确保手机和电脑能连得上使用adb 查看链接状态adb相关的环境本篇就不多说了搞测试的都知道E:\python36\Scriptsadb devicesList of devices attachedadb server version (31) doesnt match this client (40); killing...* daemon started successfullyemulator-5554 device你需要执行的操作是把atx-agent这个软件给安装上去。-m initE:\python36\Scriptspython -m uiautomator2 init[D 190716 23:34:53 __main__:28] use cache directory: C:\Users\dell\.uiautomator2Namespace(serialNone, serverNone, subparserinit) init[I 190716 23:34:53 __main__:88] Initial device AdbDevice(serialemulator-5554)[I 190716 23:34:53 __main__:172] Install minicap, minitouch[Kminitouch |################################| 33.5K / 33.5K[?25h[D 190716 23:34:56 __main__:157] Push - /data/local/tmp/minitouch:0755[I 190716 23:34:56 __main__:176] abi:x86 seems to be android emulator, skip install minicap[I 190716 23:34:56 __main__:182] Install com.github.uiautomator, com.github.uiautomator.test[D 190716 23:34:56 __main__:100] Shell: (pm, uninstall, com.github.uiautomator)[D 190716 23:34:56 __main__:100] Shell: (pm, uninstall, com.github.uiautomator.test)[Kapp-uiautomator.apk |################################| 1.7M / 1.7M.7M[?25h[D 190716 23:35:05 __main__:157] Push - /data/local/tmp/app-uiautomator.apk:0644[D 190716 23:35:05 __main__:100] Shell: (pm, install, -r, -t, /data/local/tmp/app-uiautomator.apk)[Kapp-uiautomator-test.apk |################################| 966.8K / 966.8K[?25h[D 190716 23:35:11 __main__:157] Push - /data/local/tmp/app-uiautomator-test.apk:0644[D 190716 23:35:11 __main__:100] Shell: (pm, install, -r, -t, /data/local/tmp/app-uiautomator-test.apk)[I 190716 23:35:18 __main__:193] Install atx-agent[Katx-agent_0.6.0_linux_386.tar.gz |################################| 4.0M / 4.0M.0M[?25h[D 190716 23:35:23 __main__:157] Push - /data/local/tmp/atx-agent:0755[D 190716 23:35:26 __main__:100] Shell: (/data/local/tmp/atx-agent, server, --stop)[D 190716 23:35:26 __main__:100] Shell: (/data/local/tmp/atx-agent, server, -d)[I 190716 23:35:26 __main__:202] Check install[D 190716 23:35:26 __main__:212] Forward: local:tcp:53461 - remote:tcp:7912[D 190716 23:35:28 __main__:214] atx-agent version 0.6.0Successfully init AdbDevice(serialemulator-5554)大家看到那个提示以后, 就代表安装的步骤是已经全部成功完成了。虽然在这个过程当中肯定是会有几部手机的情况比较特殊, 这些属于几位小伙伴使用的设备是需要更换掉了的。连接手机连接手机的方式有两种, 还有一种是通过WIFI来进行连接的, 另外一种则是通过USB来完成连接的。先来看看那个状态, 结果发觉是启动状态。1.用户通过一个usb接口来连接手机。首先, 通过运用adb工具获取手机设备的唯一辨识序列号, 这串数字是前面显示的-5554。E:\\ScriptsadbList of-5554你需要测试连接是否已经成功, 请先在你的手机上打开随便一个应用程序, 比如淘宝, 然后在cmd中输入下面的信息。E:\python36\ScriptspythonPython 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AMD64)] on win32Type help, copyright, credits or license for more information. import uiautomator2 as u2 d u2.connect_usb(emulator-5554) d.info{currentPackageName: com.taobao.taobao, displayHeight: 1280, displayRotation: 0, displaySizeDpX: 360,displaySizeDpY: 640, displayWidth: 720, productName: h60-l01, screenOn: True, sdkInt: 22, naturalOrientation: True}当出现输出内容为空, 并且紧接着显示为com..这样的字样时, 这表明之前的连接操作已经取得了成功的结果。2.wifi连接首先, 一定要把手机与电脑放在一个局域网里面, 可以先用ping指令去检测一下手机IP地址是否能够被正确响应并实现连通。 import uiautomator2 as u2 d u2.connect(192.168.1.xx) d.info
返回列表