最近将公司的设备通过stf进行了集中管理,有个问题就是所有的设备都要用数据线连接电脑,而且根据官网的说明 ,对usbHub的要求貌似还很高。
在半夜逛论坛的过程中发现@codeskyblue 的帖子:https://testerhome.com/topics/11546
根据https://github.com/openatx/atx-server
安装成功!
设备只要充着电就可以实现集群管理 ,美滋滋。。。
接下来 把安装的大致步骤记录下来供大家参考:
1、首先安装Golang go语言开发环境:
下载地址:https://golang.org/dl/
安装说明:http://www.runoob.com/go/go-environment.html
安装好rethinkdb
https://rethinkdb.com/docs/install/
2、安装 atx-server
注意:可能需要翻墙才能安装成功
go get -v github.com/openatx/atx-server
3、build atx-server
Mac下的Gopath 为: /Users/test/go
$ cd $GOPATH/src/github.com/openatx/atx-server #GOPATH=‘/Users/test/go’
$ go build
4、启动rethinkdb和atx-server
$ rethinkdb —-http-port 8090 #指定端口启动rethinkdb
#启动atx-server
$ cd /Users/test/go/src/github.com/openatx/atx-server
$ ./atx-server -addr :8000
5、安装uiautomator2 并将其装到手机上
电脑端pip install安装好uiautomator2之后,将安卓设备连接到电脑,确保adb devices 能够识别到设备
之后再执行第二行代码,将自动将uiautomator安装到手机上 并自动运行
其中init后面的IP地址为步骤4 启动atx-server的电脑的 ip:8000
$ pip install -U --pre uiautomator2 #安装uiautomator2
$ python -m uiautomator2 init 172.16.120:8000 #将uiautomator安装到手机设备上
安装的log信息如下,可以看到设备的对应IP:
testdeMac-mini:~ test$ python -m uiautomator2 init 172.16.120:8000
2018-01-10 15:11:33,546 - __main__.py:221 - INFO - atx-server addr 172.16.120:8000
2018-01-10 15:11:33,572 - __main__.py:236 - INFO - Device(0642f8d6f0ec9d1a) initialing ...
2018-01-10 15:11:33,818 - __main__.py:115 - INFO - install minicap
2018-01-10 15:11:33,925 - __main__.py:122 - INFO - install minitouch
2018-01-10 15:11:35,755 - __main__.py:143 - INFO - app-uiautomator.apk(1.0.6) installing ...
2018-01-10 15:12:04,397 - __main__.py:157 - INFO - atx-agent(0.1.4) already installed, skip
2018-01-10 15:12:06,255 - __main__.py:206 - INFO - atx-agent output: server started, listening on 192.168.2.4:7912
2018-01-10 15:12:06,256 - __main__.py:207 - INFO - success
2018-01-10 15:12:06,256 - __main__.py:236 - INFO - Device(5eb2b636) initialing ...
2018-01-10 15:12:06,516 - __main__.py:115 - INFO - install minicap
2018-01-10 15:12:06,688 - __main__.py:122 - INFO - install minitouch
2018-01-10 15:12:09,107 - __main__.py:143 - INFO - app-uiautomator.apk(1.0.6) installing ...
2018-01-10 15:12:17,802 - __main__.py:157 - INFO - atx-agent(0.1.4) already installed, skip
2018-01-10 15:12:19,329 - __main__.py:206 - INFO - atx-agent output: server started, listening on 192.168.2.3:7912
2018-01-10 15:12:19,329 - __main__.py:207 - INFO - success
6、全都就绪 ,打开浏览器访问就可以啦
http://localhost:8000/
http://172.16.120.20:8000/ #我电脑的局域网IP地址 别人电脑访问这个地址也能打开页面
################################################################################
自动化的demo实践:
在步骤5中可以看到Device(0642f8d6f0ec9d1a) nexus5 的ip是 192.168.2.4:7912
写了个简单的运行网易云音乐的demo脚本:
import uiautomator2 as ut2
def main():
u = ut2.connect('192.168.2.4: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()
打开http://localhost:8000/ 看看nexus5 脚本运行的效果:
################################################################################
发现了一个问题:
有时候点击眼睛打开操作页面后,需要手动将页面操作下,才能显示页码内容,不然一直是下图的状态