我们在日常的测试中,我们会遇到多种设备管理,那么我们可以基于stf搭建一个设备管理集群,我们去看下怎么去搭建这个环境呢,其实在mac上面是很简单的,直接使用命令安装。
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
stf需要依赖 node v8.9.1 npm 6.0.0
注意下版本,因为 node版本和npm版本搭配不好,可能会让stf搭建遇到bug,所以在安装前确定下,我这边遇到的是这样的。因为版本不一样的,会遇到安装不上的情况,所以在安装的时候,确定下node npm 版本。
安装完毕,启动下
rethinkdb 启动rethinkdb
stf local 启动stf
启动后访问http://localhost:7100/
然后需要登录和验证, 这里输入名字和email即可。
这里我已经链接到了我本地的一个手机, 登录后就是这台设备,那么我们点击这个设备,可以进行操作
这样就可以链接到我们的本地的手机,进行操作了,和实际的操作是一个的,那么我们可以进行一些操作。
我们需要在远程通过api去链接设备,那么我们看看怎么远程通过api接口操作。
首先在stf 设置模块,添加一个key。
然后拿到申请到key的token 就可以远程链接。
curl -H "Authorization: Bearer 6056e152ca7f4d3e877f978d3adfbbf5bca3ffa6edbb41499171933b663d2751" http://localhost:7100/api/v1/devices
这样就能返回来了,我们远程的的stf上面所有的设备。我们可以在终端去查看。
这样就可以返回来来所有的设备的所有信息。我们拿到这个信息,可以通过远程去获取我们设备的详细信息。
curl -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a73a37xxxxxxxxxxxxb" http://localhost:7100/api/v1/devices/c70dacf1
获取设备的信息后,我们根据设备信息,获取设备的是否使用,远程申请这个设备使用。
申请设备
curl -X POST --header "Content-Type: application/json" --data '{"serial":"c70dacf1"}' -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a73xxxxxxxxxxxxx" http://localhost:7100/api/v1/user/devices
申请好后,我们就可以使用了。
我们可以使用获取设备的链接地址。
curl -X POST -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a7xxxxxxxxxxxxxxxx" http://localhost:7100/api/v1/user/devices/c70dacf1/remoteConnect
这样我们就可以使用设备了远程。
使用这个设备后,可以远程进行归还设备。
curl -X DELETE -H "Authorization: Bearer baafca0e3f10412bb8d2d292ac0bcf1caa113f6310144a7xxxxxxxxxxxx" http://localhost:7100/api/v1/user/devices/c70dacf1
其实在工作中,我们是要结合appium 进行使用的,那么可能会遇到这样的问题,我们怎么链接远程的设备呢,我使用的是
adb connect localhost:7401
我们就可以用
adb devices 查看设备链接。
最后,我们可以通过这样,进行设备测试。测试完毕归还设备。整个流程应该是 :
获取stf设备列表 -->申请设备-->远程链接-->组织测试用例-->执行测试用例
-->生成测试报告-->归还设备。
后续在实际的工作中还是要贴近实际的使用呢,比如,现在的stf的用户名验证是单独的,后续要定制成内部的,打通其他用户的认证机制。
后续的实际使用中,还会继续分享使用心得。