测试仓库推介(下)
书接上文:测试仓库推介(上)
最近加入了一个GitHub团队,地址:https://github.com/JunManYuanLong。里面有一些非常不错的开源项目,分享出来供大家参考学习,可以话还是需要多多加星。
TcloudServer
Tcloud(Test Cloud)
致力于打造云测平台,测试数据上云,移动终端云(云真机)。统一定制化的流程系统,管理执行者工作效率,任务到期提醒,方便快捷查看“我的”相关任务,使需求->开发->测试->验收->发布更高效。
- 语言
详细内容可以参考我之前的介绍文章:Tcloud 云测平台--集大成者
- 主要功能
云真机、流程管理、Dashboard、看板、迭代管理、用例管理、缺陷管理、需求管理、接口自动化、团队活跃、角色管理、KONG、Grafana。
Tcloud
这个项目就是「Tcloud」的前端项目,TcloudServer
是后端项目。
- 语言
由于经费不足的原因,演示环境已经挂了,目前还没有确定重启演示环境的计划。大家可以继续参考文章Tcloud 云测平台--集大成者中的动图吧,可以欣赏一下。
monkey_tcloud
这个项目是通过配合stf
云真机功能,在不同机器上运行monkey
测试。
- 框架图
Tcloud 配置
local_config.py 配置以下几项
# Jenkins url
CI_AUTO_MAN_JENKINS_URL = 'JenkinsURL 填写对应的本地路径'
# Jenkins Auth
CI_AUTO_MAN_JENKINS_AUTH = {
"username": "用户名",
"password": "密码"
}
# Jenkins job name
CI_AUTO_MAN_JENKINS_MONKEY_JOB = 'monkey_autotest'
# OSS report dir
CI_REPORT_FILE_ADRESS = ""
# JOBS url
CI_JOB_ADDRESS = f"{CI_AUTO_MAN_JENKINS_URL}/job"
Jenkins 配置
Jobs 配置
新建 job :monkey_autotest
❝类型选择 Pipeline ❞
❝然后选择参数化构建过程 ❞
id |
type |
remark |
---|---|---|
PackageName |
String type |
运行的 android 包名 |
DefaultAppActivity |
String type |
app 默认启动的 Activity |
DeviceName |
String type |
运行的设备的 device id (序列号) |
RunTime |
String type |
运行时间 单位分钟 |
AppDownloadUrl |
String type |
app 下载路径 |
PATH |
String type |
PATH |
RunMode |
String type |
Monkey运行模式。mix: 类monkey模式。70%控件解析随机点击,其余30%按原Monkey事件概率分布。支持android版本>=5 dfs: DFS深度遍历算法。支持android版本>=6 |
MonkeyId |
String type |
tcloud 相关参数,定位 build id |
TaskId |
String type |
tcloud 相关参数,定位 当前设备测试的 id |
TcloudUrl |
String type |
tcloud 相关参数,api根 url |
SystemDevice |
Bool type |
是否是 系统设备,未使用 |
InstallAppRequired |
String type |
是否需要安装 App, 1需要,2不需要 |
LoginRequired |
Bool type |
是否需要登录,未使用 |
LoginUsername |
String type |
登录用的用户名, 未使用 |
LoginPassword |
String type |
登录用的密码,未使用 |
BuildBelong |
String type |
未使用 |
配置 pipeline
注意,需要配置 Node 的 lable 为 stf
才可以使用对应的 pipeline 脚本
- 还有一些
Nodes
配置,实在看不懂,各位看官移步仓库官方文档看吧。
- .NET Core的日志[2]:将日志输出到控制台
- 2017年高等教育十大战略性技术(二)
- 通过实例模拟ASP.NET MVC的Model绑定机制:数组
- 《全球贸易信息动态》
- .NET Core的日志[3]:将日志写入Debug窗口
- Code2Cloud:比ALM中断更大
- .NET Core的日志[4]:将日志写入EventLog
- 微信小程序不行了?看小马哥带你忆童年
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor和ActionDescriptor的创建
- .NET Core的日志[5]:利用TraceSource写日志
- 物联网芯片正在积极开发 明年将得到爆发
- 韩国全球首测5G网络下自动驾驶 为汽车安全保驾护航的竟是路灯
- 通过与Quickbuild和Mist.io的持续集成实现云管理和使用监控
- .NET Core的文件系统[1]:读取并监控文件的变化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python3基于print打印带颜色字符串
- Python StringIO及BytesIO包使用方法解析
- PHP设计模式之PHP迭代器模式讲解
- 简单实用的PHP文本缓存类实例
- Keras 实现加载预训练模型并冻结网络的层
- Django-imagekit的使用详解
- Python类super()及私有属性原理解析
- Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
- 简单了解Python多态与属性运行原理
- 树莓派升级python的具体步骤
- keras中的loss、optimizer、metrics用法
- Django中F函数的使用示例代码详解
- 详解pandas获取Dataframe元素值的几种方法
- pandas数据处理之绘图的实现
- Pandas把dataframe或series转换成list的方法