MachineWolf 是一个自动化测试性能套件,促进 AiOps 实施。
- 
在本地执行测试脚本
sudo chmod +x init_dev.sh bash ./init_dev.sh locust -f ./example/locust/test_http.py --conf ./example/locust/host.conf
 - 
在docker环境中执行testsuites
- 拉取已经编译好的镜像
 
docker pull harbor.apulis.cn:8443/testops/machinewolf:latest- 执行docker
 
docker run -d -p 8088:8080 --name "ml-workspace" -v "${PWD}:/workspace" --env NOTEBOOK_ARGS="--NotebookApp.notebook_dir=/home" --shm-size 2048m --restart always harbor.apulis.cn:8443/testops/machinewolf:latest http://<xxx.xxx.xxx.xxx>:8088 # 打开jupyterlab
 - 
使用taurus执行locust脚本
bzt example/taurus/quick_test.yml - 
使用taurus执行jmeter脚本
bzt example/jmeter/trace_user_footprint.jmx - 
使用taurus执行纯yaml脚本
bzt example/taurus/quick_test.yml - 
使用pytest执行非接口类的脚本,比如ha,吞吐量测试集等
pytest example/pytest/test_ha.py 
测试报告示例
CLI看板示例
导出测试报告
testreport/cvat_result.csv_stats.csvtestreport/cvat_result.csv_stats_history.csvtestreport/cvat_result.csv_failures.csvtestreport/cvat_result.csv_exceptions.csv
| 分支名称 | 说明 | 
|---|---|
| Master | 主分支,维护发布产品的最新发布代码,从Release 或 Feature 合并为正式发布的历史 | 
| Feature | 开自Master分支,主要用于开发新功能的或专项的测试集,根据负责模块自行维护;命名规范为:feature/#...,每一个功能都应对应一个issue,...即为issue号. | 
| Hotfix | 开自Master分支,主要用于修复当前已发布版本的已知bug;解决bug时注意事项参考Bugfix。命名规范为:hotfix/#... | 
| Release | 开自Master分支,主要用于发布版本,一旦Master分支上有了做一次发布(或者说快到了既定的发布日)的足够功能,就从Master分支上fork一个发布分支。新建的分支用于开始发布循环,这个分支只应该做Bug修复、文档生成和其它面向发布任务。一旦对外发布的工作都完成了,执行以下三个操作:合并Release分支到Master; 给Master打上对应版本的标签tag; Release回归,这些从新建发布分支以来的做的修改要合并回Master分支。 命名规范为:release/...,...为版本号 | 
| ngihtly | 每晚构建,对测试套件的示例和公共库执行验证,以保证相关脚本是可用的。 | 
Important
Master tag 为测试代码库自身的版本号 Releas tag 同步与待测试产品的release/-x-tag;如被测产品为2.0.0-rc1,则可以拉取出来一个release/2.0.0-rc1 Hotfix tag 也同被测产品的hostfix一样,测试时可以拉取出来一个hotfix/#窗口卡顿 Feature tag 独立开发、调研的feature原型验证可以拉取一个如feature/#需求或bug
- 系统测试、迭代测试可直接拉取Master分支最新代码(tag)
 - 所有经过调试,完成验证的 Feature、Hotfix、Release 都要合并到 Master
 
整个测试套件分类
- aisetshub: 模型验证相关
 - datasetshub: 数据集验证相关
 - testhub: 平台、组件测试案例和脚本
 - issuesboard: 同步issues和report
 
测试套件本着兼容并蓄,容纳萃取的宗旨,独立灵活的组织测试套件。支持各种前沿的、优秀的工具和理念;目前将测试方案(testscheme)、数据(datas.yaml)、脚本(.py,.jmx)、执行计划(host.yml,taurus.yml)灵活的组织在一起。 目前还是一些样例,还需要完善和补充。
|-- testhub/
    `-- testscheme
        |-- 5g_manufacturing
        |-- annotations_cvat
    `-- testsuites
        |-- annotations_cvat
            |-- host.conf
            |-- test_cvat_suites.py
            |-- datas.yaml
        |-- dlws
        |-- e2e_aiarts
        |-- ha_aiarts
        |-- jobmanager
        |-- songshanhu
    `-- testlib
        |-- fake_users
        |-- postgres_client
        |-- csv_client
为避免信息暴漏,无效信息泛滥。
- 
所有测试脚本,说明文本和配置文件中去除一切ID, ACCOUNT, HOST信息
 - 
不保留任何测试环境信息,和任何测试数据
 - 
使用规范的标识替换敏感信息:
- 账号: 
<HOSTNAME>:<PASSWORLD> - 主机: 
<HOST>:<PORT> - 链接: 
<LINKTYPE>:<LINKADDRESS> - 证书: 
<KEYGEN> 或 <TOKEN> - 邮件: 
<[email protected]> 
 - 账号: 
 
有关安装指南、教程和API的更多详细信息,请参阅文档库
- 
Latest
- 完整的套件架构
 - 安装和环境准备
 - 执行示例
 - 基础测试用例集
 
 - 
规划
- 补充和完善测试脚本
 - 调通禅道与测试套件的同步过程调通禅道与测试套件的同步过程
 - 调通argo与测试套件的同步过程
 - 补充框架、模型性能工具和脚本
 - 融合k8s中监控
 
 
版本说明详情请参阅RELEASE。
欢迎大家把问题、建议提到 github issues
- Gitter讨论组
 - #Machinewolf tag on StackOverflow
 - Twitter @MachinWolf
 - QQ群 868444294
 


