ATX2入门进阶应用
[TOC]
前言
前面我们已经搭建好了ATX2平台来管理iOS设备,搭建博文参考:ATX2 iOS设备管理平台搭建 接下来分享一下该平台的入门进阶使用(还是基于iOS设备)。
ATX2入门操作
- 打开登录地址:http://172.28.xx.xx:4000/login 输入用户名登录ATX平台。
- 登录之后进入ATX2界面,在对应的设备点击
点击使用
则可以远程操作设备。 - 如下图所示,点击使用之后可以使用鼠标进行设备远程操作控制。
注意: iOS的弹窗不能通过屏幕点击来选择,需要在常用功能中点击“选择弹窗按钮”来进行操作
ATX2 API
ATX2提供了API可以进行调用,可以方便我们在自动化测试过程中进行调用。
API文档地址:https://github.com/openatx/atxserver2/blob/master/API.md
准备工作
token获取
ATX2所有的接口采用token
认证,token
可以在http://172.28.xx.xx:4000/user页面获取到
也可以点击右上角用户名->用户信息获取,如下图所示:
获取设备的udid
设备列表界面中的设备编号即为设备的udid
,可以使用libimobiledevice
命令获取设备的udid,命令如下:
1 | idevice_id -l # 显示当前所连接的设备[udid],包括 usb、WiFi 连接 |
API封装
为了更好的调用API,我们可以进行封装方法,便于后续的调用。首先如下所示,我们定义一个类AtxiOS
这个类进行远程调用设备的初始化操作,如atx地址和token的初始化。
1 | import json,logging |
获取所有iOS设备信息
在上面的AtxiOS
类中定义如下方法用于获取所有iOS设备信息。
1 | def get_all_iOS_devices(self): |
然后调用定义好的方法
1 | ATX_URL ='http://172.28.xx.xx:4000' |
调用之后返回结果如下:
1 | {'count': 4, |
几个比较重要的字段说明
* platform目前有两个值android和apple
* present代表设备是否在线
* colding代表设备是否正在清理或者自检中, 此时是不能占用设备的
* using代表设备是否有人正在使用
* userId代表使用者的ID,这里的ID其实就是Email
* properties代表设备的一些状态信息,基本都是静态信息
获取单个设备信息
如果我们想查看单个设备的信息,可以封装如下方法来查看。
1 | def get_iOS_device_by_udid(self, udid): |
调用方法如下:
1 | ATX_URL ='http://172.28.xx.xx:4000' |
返回内容如下:
1 | {'device': {'colding': False, |
获取设备远程WDA地址
每台挂载在ATX2平台的iOS设备都有一个唯一的WDA地址,我们可以根据这个地址来远程调用该设备,一般地址格式为:ATX地址IP+端口号
1 | def get_wda_url(self,udid): |
调用方法
1 | ATX_URL ='http://172.28.xx.xx:4000' |
返回结果
1 | http://172.28.xx.xx:200000 |
设备占用
1 | def using_iOS_device(self, udid): |
调用方法
1 | ATX_URL ='http://172.28.xx.xx:4000' |
调用方法之后会有三种情况,设备占用成功或失败,返回内容如下:
1 | {'description': 'Device successfully added', 'success': True} |
设备释放
使用完设备之后我们需要释放设备,定义方法如下:
1 | def release_iOS_device(self, udid): |
调用方法如下:
1 | ATX_URL ='http://172.28.xx.xx:4000' |
设备释放成功时返回内容如下:
1 | {'success': True, 'description': 'Device successfully released'} |
注意:释放接口可以释放非当前账户占用的设备,释放时一定要确认udid是否为自己占用的设备,避免影响他人正常使用!