ATX-SERVER
Testerhome上相关文章
Install
Важно: необходимо иметь базовые знания языка Go и знать, как скомпилировать программу на Go.
Скомпилируйте с помощью команды go:
$ go get -v github.com/openatx/atx-server
$ cd $GOPATH/src/github.com/openatx/atx-server
$ go build
Usage
Запустите RethinkDB:
$ rethinkdb
Running rethinkdb 2.3.6 (CLANG 8.1.0 (clang-802.0.42))...
Running on Darwin 16.6.0 x86_64
...
Запустите ATX-сервер:
./atx-server --port 8000
Установите ATX-агент с помощью uiautomator2 на Android-устройство. Ваш Android-телефон и сервер, на котором запущен ATX-сервер, должны находиться в одной локальной сети.
Предположим, что сервер, на котором работает ATX-сервер, имеет IP-адрес 10.0.1.1 и порт прослушивания 8000. Выполните следующую команду:
$ pip install -U --pre uiautomator2
$ python -m uiautomator2 init 10.0.1.1:8000
Откройте браузер по адресу http://localhost:8000, вы увидите список устройств на веб-странице.
Advanced usage
Использование командной строки:
./atx-server --ding-token 13gb4db7c276d22e84f788fa693b729d53218b8e07d6ede43de79360c962 --port 8080
Настройка переменной среды:
export DING_TOKEN="13gb4db7c276d22e84f788fa693b729d53218b8e07d6ede43de79360c962"
./atx-server --port 8080
APIs
/list интерфейс
Здесь udid генерируется на основе hwaddr, model, serial:
$ curl $SERVER_URL/list
[
{
"udid": "741AEDR42P6YM-2c:57:31:4b:40:74-M2_E",
"ip": "10.240.218.20",
"present": true,
"ready": true,
"using": true,
"provider": null,
"serial": "741AEDR42P6YM",
"brand": "Meizu",
"model": "M2 E",
"hwaddr": "2c:57:31:4b:40:74",
"agentVersion": "0.1.1",
"battery": {},
"display": {
"width": 1080,
"height": 1920
}
}
]
Обратите внимание на следующие поля:
Поле provider — это специальное поле. Если устройство подключено к компьютеру, на котором запущена программа u2init, то в информации об устройстве можно найти следующие данные:
"provider": {
"id": "33576428",
"ip": "10.0.0.1",
"port": 10000,
"present": true # provider online of not
}
Если provider равен null, это означает, что устройство не подключено.
/devices/{query}/info
Возвращаемое значение аналогично отдельному результату /list, здесь оно не приводится.
/version
ATX-агент использует этот интерфейс для определения необходимости обновления.
$ curl /version
{
"server": "dev",
"atx-agent": "0.0.7"
}
Выполнение shell-команды
$ curl -X POST -F command="pwd" $SERVER_URL/devices/{query}/shell
{
"output": "/"
}
Управление устройством
Состояние кода: успех 200, сбой 403.
$ curl -X POST $SERVER_URL/devices/{query}/reserved
Success
Состояние кода: успех 200, сбой 403.
$ curl -X DELETE $SERVER_URL/devices/{query}/reserved
Release success
Случайный захват устройства:
$ curl -X POST $SERVER_URL/devices/:random/reserved
Success
Связь между провайдером (u2init) и сервером (atx-server)
Провайдер отправляет POST на сервер. Информация о сердцебиении, чтобы сервер знал, что провайдер подключен к сети. Также необходимо отправлять те же данные на сервер каждые 15 секунд, иначе провайдер будет помечен как отключённый.
$ curl -X POST $SERVER_URL/provider/heartbeat
Возможно, потребуется добавить поле ip, если провайдер и сервер находятся в разных сетях:
$ PROVIDER_IP=10.0.0.1 # change to your
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )