jenkins+stf+airtest实现移动端自动化测试平台
背景:
- 公司android测试机比较多没有统一的管理;
- app自动化测试时获取设备的状态比较麻烦,通过STF可以轻松获取;
- 自动化异常场景时、可远程操控设备;
- 需要随时了解设备情况;
- 装逼
前提:
已安装jenkins和stf环境
环境:
- 已部署OpenSTF与Jenkins在同一服务器上
步骤:
1.jenkins安装Open STF Plugin:
2.创建一个测试项目看看插件是否安装成功:
- 看到构建环境下多了个“Use a STF device during build”配置,OK,插件安装完毕
3.创建访问令牌:
若要让Jenkins中的STF插件发挥作用,需要创建一个从Jenkins访问OpenSTF的令牌
登录OpenSTF并进入“设置” - >“按键”选项卡
点击访问令牌旁边的“+”按钮
- 将生成好的令牌复制下来,保存到文本
- 点击旁边的确定按钮
- 这个令牌只会显示一次,所以在点击确定之前务必要记下!
4.在Jenkins中注册令牌:
- 找到Open STF设置
- 在“STF API endpoint URL”项填写STF服务URL
- 在“STF Access Token”项中将前面复制下来的访问令牌填写到此处
- 点击“save”保存
5.指定作业终端:
- 与STF界面中看到的设备列表一致,OK
- 点击“Add”按钮可添加需要使用的设备,并能够按条件搜索
- 例如,我现在指定“HUAWEI”,则界面只显示华为设备
- 鼠标在设备上悬浮,可显示设备详情
6.注册ADBKey
- 第一次从服务器访问时,需要对ADB Key进行注册
- 当使用adb connect命令执行连接时,STF界面会出现询问是否“添加ADB Key到STF”的提示,请点右下角的“+添加Key”
至此、基本的配置已经完了已经可以和STF进行通讯了
————————————————————————————————————————jenkins搭建多配置项目STF-重点——————————————————————————————————————————
概述:
stf 作为设备管理平台,Jenkins 作为任务调度中心,右 Jenkins 向 stf 获取设备并执行任务;
stf 访问路由配置:
STF API endpoint URL 这里配置要写 stf 服务的真实 ip,真实 ip 在启动 stf 的时候通过--public-ip 参数指定,比如我的 http://192.168.1.194:7100/api/v1
Android 路径配置:
接下来就是新建 job,配置任务执行了
创建多配置项目:
新建任务的时候需要指定是一个多配置项任务,因为这里要根据不同的手机序列化同时启动多个子任务。
STF DEVICE CONDITION 配置项,name 参数是可以自定义的一个变量名,下面的 value 是自定获取 stf 连接的设备,可以按住 shift 键选中要执行的设备。
执行shell命令:
注意:$uuid是变量表示设备id
执行python脚本并把设备id传到脚本
——————————————————————STF的常用接口———————————————————————————————————————
1.用户当前正在使用的设备的列表
Method:GET
URL:http://127.0.0.1:7100/api/v1/user/devices
STF接口需要先在Header中添加token:
Authorization: Bearer d934206703ce456db5c45fa84b5fe1783354a552876744cb8f0a3bd913fdb68
2.使用设备
Method:POST
URL:http://127.0.0.1:7100/api/v1/user/devices
Header:
(1)Authorization: Bearer d934206703ce456db5c45fa84b5fe1783354a552876744cb8f0a3bd913fdb68f
(2)Content-Type:application/json
Body:{"serial":"192.168.40.68:5555”}
3.释放设备-停止使用
Method:DELETE
URL:http://127.0.0.1/api/v1/user/devices/192.168.40.68:5555
Header:Authorization: Bearer d934206703ce456db5c45fa84b5fe1783354a552876744cb8f0a3bd913fdb68f
相关连接:
https://blog.csdn.net/u011608531/article/details/105283652 .........................STF开放的接口
https://www.cnblogs.com/v88v/p/10405338.html ..................搭建OpenSTF+Jenkins持续集成环境的协同开发
https://ld246.com/article/1578308109813 ......................jenkins+stf 搭建移动端自动化测试平台 -多设备
https://blog.csdn.net/weixin_34304013/article/details/85987309 ..............执行shell报错 marked build as failure
最新文章
- linux opensuse 程序中上传文件大小限制
- DataBase异常状态:Recovery Pending,Suspect,估计Recovery的剩余时间
- jeecg安装——mysql数据库创建+手动执行初始化脚本
- swift 动手写网络请求封装(仿照了一个大神的)不用导入第三方
- 60.Android通用流行框架大全
- winmail服务器启动失败 无法启动
- 用c语言编写直接插入法
- Codeforces Round #341 Div.2 A. Wet Shark and Odd and Even
- JS中如何判断null、undefined与NaN
- 关于mysql group_concat 不能显示为空的列的其他信息
- HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)
- 关于 JavaScript 中的继承
- shell 删除重复文件脚本
- js 快速将字符串数组 转化为 数字数组(互换)
- Django:学习笔记
- redis常用客户端命令
- 第86讲:Scala中For表达式的生成器、定义和过滤器
- Python 生成器, 迭代器, 可迭代对象的区别
- Hibernate 集成 Ehcache 开启二级缓存
- Oracle EBS 锁
热门文章
- go 神奇的错误 time.Now().Format(";2006-01-02 13:04:05";) 比北京时间大8小时
- Ansible-playbook 快速入门到放弃
- 我有一篇Java Stream使用手册,学了就是你的了!
- 代码随想录算法训练营day21 | leetcode ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● ***236. 二叉树的最近公共祖先
- 「Python实用秘技13」Python中临时文件的妙用
- CF846E - Chemistry in Berland
- OpenLayers与百度高德等常见地图坐标系
- postgresql 数据库 INSERT 或 UPDATE 大量数据时速度慢的原因分析
- 如何创建一个浏览器版的`Window11`
- Python爬虫-爬取17K小说