ATX atx-server 安卓集群管理 安装运行及自动化的实践

cynic · 2018年01月10日 · 最后由 cynic 回复于 2018年08月29日 · 8077 次阅读

最近将公司的设备通过stf进行了集中管理,有个问题就是所有的设备都要用数据线连接电脑,而且根据官网的说明 ,对usbHub的要求貌似还很高。
在半夜逛论坛的过程中发现@codeskyblue 的帖子:https://testerhome.com/topics/11546
根据https://github.com/openatx/atx-server
安装成功!
设备只要充着电就可以实现集群管理 ,美滋滋。。。

接下来 把安装的大致步骤记录下来供大家参考:

1、首先安装Golang go语言开发环境和rethinkdb:
安装Golang环境
下载地址:https://golang.org/dl/
安装说明:http://www.runoob.com/go/go-environment.html

安装好rethinkdb
https://rethinkdb.com/docs/install/

mac系统的话 可以直接用brew安装
brew install go
brew install rethinkdb

2、安装 atx-server
注意:可能需要翻墙才能安装成功

go get -v github.com/openatx/atx-server

3、build atx-server
Mac下的Gopath 为: /Users/test/go

$ cd go/src/github.com/openatx/atx-server        
$ go build

如果build报错,一般都是由于第二步go get的时候没有把相关的依赖全部下载完成导致的。
> 解决办法

检查 GOPATH/src/golang.org/x文件夹是否存在,在 x文件夹下是否存在以下三个文件夹cryptonetsys

如果没有 就重新执行步骤2 的命令下载相关依赖文件
实在下载不下来的可以从golang的gitlab上手动下载相关的zip包 解压重命名为cryptonetsys后放到 GOPATH/src/golang.org/x文件夹下
https://github.com/golang/net
https://github.com/golang/sys
https://github.com/golang/crypto

4、启动rethinkdb和atx-server

$ rethinkdb --http-port 8090     #指定端口启动rethinkdb

#启动atx-server
$ cd /Users/test/go/src/github.com/openatx/atx-server
$ ./atx-server --port 8000

这样 打开浏览器,输入地址127.0.0.1:8000 或者本机的ip地址加端口号 172.16.120.20:8000
就可以直接访问atx-server的地址了

5、安装uiautomator2 并将其装到手机上
电脑端pip install安装好uiautomator2之后,将安卓设备连接到电脑,确保adb devices 能够识别到设备
之后再执行第二行代码,将自动将uiautomator安装到手机上 并自动运行
其中init后面的IP地址为步骤4 启动atx-server的电脑的 ip:8000 本机的stx-server地址为 172.16.120.20:8000

$ pip install  --pre --upgrade uiautomator2        #安装uiautomator2 

$ python -m uiautomator2 init 172.16.120.20:8000 #将uiautomator安装到手机设备上

安装的log信息如下,可以看到设备的对应IP:

testdeMac-mini:~ test$ python -m uiautomator2 init 172.16.120.20:8000 
2018-01-10 15:11:33,546 - __main__.py:221 - INFO - atx-server addr 172.16.120.20: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 脚本运行的效果:

ATX QQ交流群:499563266

附言 1  ·  2018年05月29日
  • 为什么启动atx-server后 浏览器打不开
    看看你是不是在atx-server的文件夹下启动服务,需要cd go/src/github.com/openatx/atx-server/ 到atx-server目录下载执行./atx-server

  • 为什么手机init成功了之后,在web上没有出现设备?
    确保你的手机和你启动atx-server的电脑在同一个wifi下面,不在一个wifi下面,怎么可能连上呢?

  • 我的手机python -m uiautomator2 init报错,init不成功
    把手机上安装过的uiautomator的app给删掉,之前macaca、appium安装的uiautomator的app也删了 。重新安装uiautomator,重启手机。还是init失败,那就换台手机吧

附言 2  ·  2018年05月29日
  • server也起来了,init也成功了 ,网络也能ping通的 ,但是网页上还是没有出现设备 看看启动server的电脑没有用装了什么杀毒软件 防火墙之类的 关了再试试看
附言 3  ·  2018年05月29日
  • server也起来了,init也成功了 ,网络也能ping通的 ,但是网页上还是没有出现设备 看看启动server的电脑没有用装了什么杀毒软件 防火墙之类的 关了再试试看
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 93 条回复 时间 点赞

实践的挺快的嘛。最近有时间了,所以这个atx-server我估计还会加些别的功能,比如安装,看日志

codeskyblue 回复

👍

ss翻墙了,google能上了,就是下载不下来,好忧伤

4楼 已删除
jphtmt 回复

我在App Store上随便找了个免费的vpn 开着就可以下成功了。
ss是不是不是全局翻墙的?

cynic 回复

嗯,全局的,换了几个节点都不行,所以很郁闷

jphtmt 回复

换个wifi试试看

好东西,最近打算基于这个看能不能搞定设备实时管理。资产登记的话用起来繁琐,容易信息滞后。

9楼 已删除

我昨天晚上折腾了好久SS也没拉下来,后来手动 go get github.com/golang/net拉下来,然后mkdir golang.org/x 再把拉下来的net目录移到olang.org/x目录搞定

cynic #11 · 2018年01月11日 作者
mrkuxx 回复

曲线救国😁

codeskyblue 安卓设备集群管理 atx-server 中提及了此贴 01月12日 09:27
jphtmt 回复

我的是Windows,给命令行设置了下就可以
set http_proxy=http://127.0.0.1:1080
set https_proxy=http://127.0.0.1:1080

HongBo 回复

我VPN了……可以了

环境搭建起来了,和楼主一样精彩碰到最后一个问题。
另外,怎么远程控制安装app呢?

vic 回复

远程控制界面比较原始,你也看到了。不过可以用uiautomator2这个库执行安装,传递一个apk的url就可以了

@codeskyblue 相比较 STF可能做得更好些,不过远程连接这个 比有线连接方便多了

vic 回复

嗯,各有利弊

@cynic 点击眼睛以后怎么操作页面呢,我怎么操作都不会显示内容

cynic #20 · 2018年01月14日 作者
woshizh 回复

没显示手机页面嘛?

cynic 回复

是的,没有显示手机页面,我的是红米4

cynic #22 · 2018年01月14日 作者
woshizh 回复

换个手机看看

cynic #23 · 2018年01月16日 作者

在步骤3 下补充了在没有翻墙下 go get安装atx-server时 golang相关包无法下载手动解决办法

能否将其和stf综合一下 哪位大侠写一把看看😁😁

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

cynic #25 · 2018年01月20日 作者
rockyrock 回复

stf功能多而全,atx虽然没stf那么多功能,但是也够用。最主要的是,stf需要设备通过usb连接;atx只要手机有电,连着同一个Wi-Fi就行了。感觉比stf稳定,毕竟stf上有的设备会老掉线,且对usb hub的要求挺高的。

jerrylizilong atx 安卓集群管理 - 实践与扩展思路 中提及了此贴 01月22日 15:55

调整了一下 golang的vendor,现在编译应该不用翻墙了

在Windows折腾了很久才基本装完,在执行python -m uiautomator2 init 172.16.120.20:8000的时候报subprocess.CalledProcessError:command'adb -s xxx --list' returned non-zero exit status 1。 打算明天有时间在去看看源码是怎么样操作的。
这个问题已经解决了,是因为5037端口被占用了,然后安装成功后又有一个新问题,页面不显示设备?

cynic #29 · 2018年01月23日 作者
afantishui 回复

后面的IP要用你启动服务的电脑的IP ,端口8000是步骤4 atx-server -addr :8000设定的端口号。
你ipconfig看一下你的电脑IP是多少

cynic #30 · 2018年01月23日 作者
afantishui 回复

但是你的报错好像是没有找到安卓设备吧
adb devices 看看有没有识别到你的手机

cynic 回复

这个问题已经解决了,是因为5037端口被占用了,
安装成功后打开localhost:8000没有显示连接的设备,但是打开RethinkDB(localhost:8090)可以看到连接了2个设备的(Tables 2 ready)
(这个也解决了,一开始是用公司WIFI,换成自己的手机热点就OK)

cynic #32 · 2018年01月24日 作者

修改启动atx server启动命令为: atx-server --port 8000
https://github.com/openatx/atx-server/commit/b5c5478878039f849c95e7bcc0710c47ed50e6a4

33楼 已删除

控制设备打开的应用变成横屏的显示怎么解决

@cynic 楼主,你好;我这边访问网页,只有atx-server框架页面,没有显示手机信息,请问是哪里原因?

robin_123 回复

我是通过usb线和电脑连接的,是一定要通过wifi连接吗?

不错! 但是也有两个缺点:
1、手机依然需要开启usb调试
3、wifi不如用数据线连接速度快,设备多了很容易掉线

cynic #38 · 2018年03月05日 作者
robin_123 回复

手机要执行第5步的操作,先连线设备执行python -m uiautomator2 init ATX_SERVER_IP 手机安装上一个apk应该可以了 然后手机wifi和启动服务的电脑的ip在同一个局域网

cynic 回复

第5步执行成功了,手机上已经有uiautomator APK了,但访问网页,还是会没有手机相关信息;

cynic #40 · 2018年03月05日 作者
robin_123 回复

ip是不是不对 ?

cynic 回复

IP地址是对的,我换台手机试下;

cynic 回复

换了台手机还是不行,请大神帮忙看下;
需要提供哪些日志信息;

cynic #43 · 2018年03月05日 作者
robin_123 回复

换个网络看看 要么电脑共享个热点出来看看

cynic #44 · 2018年03月05日 作者
robin_123 回复

init之后 手机是不是安装了个uiautomator的apk上去?

chunyong 回复

init完了之后,usb调试是可以关掉的

cynic #46 · 2018年03月05日 作者
woshizh 回复

今天在stf上连接红米手机遇到无法连上的问题 然后再开发者选项里的 允许模拟点击选项之后就好了 可能这也是一样的原因吧

你开启允许模拟点击再试试

cynic 回复

恩恩,我已经成功了

最后的那个问题,atx-agent 0.2.1版本修复了

afantishui 回复

我在连接设备时也遇到这个问题:Command 'adb -s 127.0.0.1:62001 forward --list' returned non-zero exit status 1
但是查了端口,5037端口是adb.exe,请问还有可能是什么原因呢?

50楼 已删除


有遇到这个坑的朋友吗?

BensonMax 回复

少了个文件忘记提交,你 go get -u一下,重新更新下依赖

codeskyblue 回复

翻墙下载失败,不翻墙成功啦,谢谢楼主~

BensonMax 回复

可以可以

55楼 已删除
56楼 已删除
cynic #57 · 2018年04月28日 作者

开发者选项里有个允许模拟点击 把它打开应该就好了

2018-05-11 14:55:15,896 - main.py:212 - INFO - launch atx-agent daemon
Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 387, in _make_request
six.raise_from(e, None)
File "", line 2, in raise_from
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 383, in _make_request
httplib_response = conn.getresponse()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
response.begin()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 297, in begin
version, status, reason = self._read_status()
File "D:\Program Files (x86)\Python\Python36-32\lib\http\client.py", line 258, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "D:\Program Files (x86)\Python\Python36-32\lib\socket.py", line 586, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\adapters.py", line 440, in send
timeout=timeout
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 639, in urlopen
_stacktrace=sys.exc_info()[2])
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\util\retry.py", line 357, in increment
raise six.reraise(type(error), error, _stacktrace)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\packages\six.py", line 686, in reraise
raise value
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
chunked=chunked)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 389, in _make_request
self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 309, in _raise_timeout
raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=63463): Read timed out. (read timeout=3)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Program Files (x86)\Python\Python36-32\lib\runpy.py", line 193, in run_module_as_main
"
main", mod_spec)
File "D:\Program Files (x86)\Python\Python36-32\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main
.py", line 356, in
main()
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main
.py", line 352, in main
fire.Fire(MyFire)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 366, in _Fire
component, remaining_args)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\fire\core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main
.py", line 273, in init
ignore_apk_check)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main
.py", line 295, in _init_with_serial
ins.launch_and_check()
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\uiautomator2__main
_.py", line 225, in launch_and_check
'http://localhost:%d/version' % lport, timeout=3)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "D:\Program Files (x86)\Python\Python36-32\lib\site-packages\requests\adapters.py", line 521, in send
raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPConnectionPool(host='localhost', port=63463): Read timed out. (read timeout=3)

初始化时候报这个错 怎么解决呢?

59楼 已删除
cynic #60 · 2018年05月12日 作者
kuniao 回复

adb shell rm /data/local/tmp/atx-agent 之后 再执行 python -m uiautomator2 init试试看

准备实践下,想请教下楼主,atx-agent如何解决国内各种定制手机的apk安装的限制? 比如oppo、vivo的帐号弹框,vivo还有个烦人的模拟点击,小米的安全权限等等。

另外安卓手机还有bug,存在uid leak的情况,简单来说就是apk循环安装卸载,重复10000次,手机就没办法再安装apk了,我报给google,但是google不修。这就意味着手机需要定时重启,重启后如何拉起等等问题。

C:\Users\renchuanbin>python -m uiautomator2 init 192.168.137.104:8000
2018-05-18 13:58:35,549 - main.py:254 - INFO - atx-server addr 192.168.137.104:8000
2018-05-18 13:58:35,572 - main.py:269 - INFO - Detect pluged devices: [u'192.168.137.118:5555']
2018-05-18 13:58:35,572 - main.py:286 - INFO - Device(192.168.137.118:5555) initialing ...
2018-05-18 13:58:35,842 - main.py:113 - INFO - install minicap
2018-05-18 13:58:36,160 - main.py:120 - INFO - install minitouch
2018-05-18 13:58:36,407 - main.py:137 - INFO - apk(1.0.14) already installed, skip
2018-05-18 13:58:36,509 - main.py:175 - INFO - atx-agent(0.3.2) already installed, skip
2018-05-18 13:58:36,648 - main.py:212 - INFO - launch atx-agent daemon
2018-05-18 13:58:41,788 - main.py:238 - ERROR - failure

请问启动atx-agent失败 是怎么回事呢?

342164796 launch atx-agent daemon 失败解决办法 中提及了此贴 05月18日 18:16

请问下,我使用的是usb链接,界面启动成功,但是不能看到我链接上的设备信息。使用adb devices也能拼到设备是链接成功的

cynic #66 · 2018年05月22日 作者

执行下python -m uiautomator2 init 10.0.34.75:8000后面换成你server的ip

cynic 回复

init了的,也显示success了的

cynic #68 · 2018年05月22日 作者
sherrycc 回复

手机和电脑在同一个wifi下吗?

cynic 回复

好像不是。。

cynic 回复

链接到同一个wifi下面,也不行。。

cynic #71 · 2018年05月22日 作者
sherrycc 回复

感觉就是局域网的问题 你网路再看看

cynic 回复

网页可以正常显示了,应该是局域网的问题。我直接用手机分享无线网,然后电脑连接这个无线网,就可以正常显示了,但是有个问题不知道是不是正常的:我在init里面,显示的监控的设备ip和网页上面显示的IP不一致,一直是offline的状态

cynic #73 · 2018年05月23日 作者
sherrycc 回复

offline 显示的ip还是之前的设备ip 再重新online后 就会变成正确的了 所以你还是搞个无线路由器试试看吧

cynic 回复

好的,谢谢~~我搭建出来的网页,第5步哪里,没有眼睛图标可以点击,直接点更多下面的图标,跳转过去就一直是黑色的。。请问下这个是我搭建的问题么?

cynic #75 · 2018年05月23日 作者
sherrycc 回复


现在的页面长这样了 点击use跳转到操作页面
你说的黑色页面 是shell页面吧 可以直接输入shell命令操作手机 adb shell一样

cynic 回复

好的~谢谢啦,非常感谢大佬提供帮助👍 👍 👍 👍

小米5S连接上了,但是鼠标点屏幕没反应。有谁遇到过么,在开发者选项中也没找到 允许模拟点击选项。

点下面的home,back键倒是有反应。

另外一台oppo R9 倒是有反应

cynic #78 · 2018年05月24日 作者
cloudwind 回复

不同miui的系统版本可能不太一样 在设置下仔细找找看

cynic 回复

找了半天实在没找到这选项,是不是小米手机都有这个问题。

cynic #80 · 2018年05月24日 作者
cloudwind 回复

有的好像不用设置的

python -m uiautomator2 init 192.168.165.2:8000
2018-05-29 10:27:41,334 - __main__.py:254 - INFO - atx-server addr 192.168.165.2:8000
Traceback (most recent call last):
File "E:\Python35\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "E:\Python35\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 352, in <module>
main()
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 348, in main
fire.Fire(MyFire)
File "E:\Python35\lib\site-packages\fire\core.py", line 127, in Fire
component_trace = _Fire(component, args, context, name)
File "E:\Python35\lib\site-packages\fire\core.py", line 366, in _Fire
component, remaining_args)
File "E:\Python35\lib\site-packages\fire\core.py", line 542, in _CallCallable
result = fn(*varargs, **kwargs)
File "E:\Python35\lib\site-packages\uiautomator2\__main__.py", line 261, in init
output = subprocess.check_output(['adb', 'devices'])
File "E:\Python35\lib\subprocess.py", line 316, in check_output
**kwargs).stdout
File "E:\Python35\lib\subprocess.py", line 383, in run
with Popen(*popenargs, **kwargs) as process:
File "E:\Python35\lib\subprocess.py", line 676, in __init__
restore_signals, start_new_session)
File "E:\Python35\lib\subprocess.py", line 957, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
cynic #82 · 2018年05月29日 作者
yinquanwang 回复

adb 没装? 手动执行adb devices看看

win环境下
3、build atx-server
Mac下的Gopath 为: /Users/test/go
$ cd $GOPATH/src/github.com/openatx/atx-server #GOPATH=‘/Users/test/go’

以上要改为

要用 echo %GOPATH% 来确认路径 和
cd %GOPATH%\src\github.com\openatx\atx-server 来切换 或者绝对路径切换

还有已知开启360 或者eset杀软,会影响连接真机.需要关掉360或暂停esst防护才可.

手机重启后就连接不上了,又要重新连电脑装包才行,能不能安装一次之后,可以在手机上手动启动

huanzhijin 回复

连接usb 调用一下 /data/local/tmp/atx-agent -d 就可以

codeskyblue 回复

有没有不连接usb,在手机端启动??好像atx对横屏支持还不太友好喔

cynic 基于 ATX-Server 的 UI 自动化测试框架 中提及了此贴 06月18日 22:20
harsayer ATX 安卓集群管理 atx-server 使用记录整理 中提及了此贴 06月20日 14:45

用虚拟机测试,在web页面上显示不出设备

是的,模拟器不支持

必须要连接WIFI且在同一网段下吗?我断开wifi显示offline了。现在可以在页面上直接进行代码操作吗?

cynic #94 · 2018年07月31日 作者
Joekk01 回复

断了wifi肯定不行 都是通过http来通信的

cynic 回复

请问怎么删除Offline的设备呢?谢谢,同样的机器只是IP变了

cynic #96 · 2018年08月03日 作者
Joekk01 回复

去rethinkdb里删掉就好了 可参考这个帖子 https://testerhome.com/topics/5848

win7 安装atx 报错如下:

F:\Go\src>go get -v github.com/openatx/atx-server
github.com/openatx/atx-server (download)

cd .; git clone https://github.com/openatx/atx-server F:\golang\go\src\github.

com\openatx\atx-server
Cloning into 'F:\golang\go\src\github.com\openatx\atx-server'...
fatal: unable to access 'https://github.com/openatx/atx-server/:' error:1407742E
:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
package github.com/openatx/atx-server: exit status 128

cynic #98 · 2018年08月09日 作者
zhou 回复

翻个墙试试

问下哈,这边我在安卓手机上执行命令成功安装了uiautomator2,但是刷新atx-server页面却没看到设备,然后我就换了一台安卓手机同样执行命令来安装,但是却报如下错误,帮忙看下啥问题

这里点击不了,一开始可以点击use,刷新页面就变这样了

FengYeLoveCode 回复

因为已经有网页在使用该手机

codeskyblue 回复

好吧,我的锅,上面那个是啥问题,换台手机安装就报错的

cynic #103 · 2018年08月28日 作者
FengYeLoveCode 回复

像小米 oppo vivo这些手机 adb 安装需要手动点一下允许才能安装成功

cynic 回复

为什么有些手机在网页端操作不了,有些又可以操作呢

cloudwind 回复

这边小米5遇到同样问题,请问你的解决了吗

cynic #106 · 2018年08月29日 作者
FengYeLoveCode 回复

init的时候 minitouch没安装好吧 重新init应该就好了

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