Skip to content

测试DevOps工具,涵盖接口自动化测试、性能测试、静态代码检查等测试类型,能够简单地管理测试集群。

Notifications You must be signed in to change notification settings

qtracer/TestDeploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

测试DevOps工具

GitHub release


推荐用最新版本

1.定位

TestDeploy是一套符合DevOps实践的测试解决方案,涵盖接口自动化测试、性能测试、静态代码检查等测试类型,能够简单地管理测试集群,快速提供测试标准化环境,促进测试流程高效与稳定。

2.核心特性

  • 结合Docker容器技术,环境一键部署,用例一键执行
  • 集成Httprunner2.X/Locust2.X/Sonarqube等工具特性
  • 提供了Jenkins Pipeline机制,轻松实现CI/CD
  • 能够简单地管理测试集群,性能测试最大化测试执行机器的资源利用率
  • 通过参数输入切换不同环境和执行特定用例

3.整体设计

效果

4.快速开始

  • main-cli.sh放置在项目根目录下,假设为PRJ_ROOT_DIR
  • 配置 $PRJ_ROOT_DIR/ini/hosts.ini(不配置默认单机)
  • 通过环境部署和任务构建统一入口执行初始化
bash $PRJ_ROOT_DIR/main-cli.sh

环境部署和任务构建统一入口

bash $PRJ_ROOT_DIR/main-cli.sh $JOB_NAME $flag $WORKERNUM $arg1 $arg2

自动化测试任务

bash $PRJ_ROOT_DIR/main-cli.sh $JOB_NAME $flag 0 $HOST $APPOINTEDCASES
# JOB_NAME: 项目名,Jenkins环境变量,直接引用
# flag: 仅做标识用。推荐用Jenkins构建号,即$BUILD_NUMBER
# HOST: 用标识表示任务执行环境,如HOST=release, 表示任务执行时用的是生产环境的域名
# APPOINTEDCASES: 指定用例,非必选,默认testsuites/

性能测试任务

bash $PRJ_ROOT_DIR/main-cli.sh $JOB_NAME $flag $WORKERNUM $HOST $APPOINTEDCASES
# WORKERNUM:Locust worker进程数,默认1 worker对应1 CPU core,依此动态计算需要多少主机节点的支持。另,1 worker约可支持1000虚拟用户
# HOST: 用标识表示任务执行环境,如HOST=release, 表示任务执行时用的是生产环境的域名
# APPOINTEDCASES: 非必选,对应Locust的@tag属性
# tips:
if [ $WORKERNUM -ge 1 ];then
  "performance test"
else
  "interface automation test"
fi

5.重要配置文件说明

hosts.ini测试集群配置

配置**$PRJ_ROOT_DIR/ini/hosts.ini**,格式:$host,$account,$password,$constant,$MasterOrSlave

  • $host:节点的IP地址
  • $account:节点主机的账号(支持root账号和sudo免密提权账号)
  • $password:节点主机的密码
  • $constant:参数值为“isnew”或者“notnew”,如果是新主机且需要做初始化,则必须是“isnew”,初始化后会变为“notnew”
  • $MasterOrSlave:参数值为“master”或者“slave”,指明是master还是slave节点。

在首次初始化前配置(不配置默认单机),后续每新增节点均需要重新执行一次初始化

bash $PRJ_ROOT_DIR/main-cli.sh

#tips:Locust分布式性能测试按照hosts.ini的节点顺序分配资源,故自动化测试代理节点建议放最后。

config.ini部分参数说明

  • installedEnv:是否安装了基础环境。注:若因网络问题环境安装失败,需要手动重置为false并执行初始化
  • installedRedis: 是否安装Redis,默认不安装。Redis用作压测前的数据准备,占用较大内存。
  • installedSonarqube: 是否安装Sonarqube,默认不安装。运行占用较大内存,不在管理节点安装。
  • remaincores:执行性能测试时,每个从机预留的cores数量,避免打满,默认预留1个
  • hrun_main:接口自动化统一执行入口,默认main-hrun.py
  • hrun_path: 接口自动化执行的指定路径,默认testsuites/
  • locust_main: locust压测统一执行入口,默认locustfile.py
  • locust_project_setEnv: locust执行前切换压测环境和数据源的文件(务必放置在压测项目根目录下),默认project_setEnv.py。若不存在,则按照默认执行

6.Jenkins Pipeline

Jenkins Pipeline不走main-cli.sh统一入口,部署文件分三部分:

  • build:views/pipelineBuild.sh
  • runAPI:views/pipelineRunAPIAuto.sh
  • getReport:views/pipelineHrunReport.sh

7.NGINX转发请求执行shell[已停止维护]

Jenkins配置:curl -H "dirpath:$PWD" -H "shellpath:${shellpath}" ${host}:81/api/run?name=${JOB_NAME}%20${WORKERNUM}%200

  • PWD为shell系统变量,表示自动化项目代码包路径;参数host对应Nginx主机ip address,参数shellpath对应路径+TestDeploy,参数BRANCH对应自动化测试项目代码分支。
  • 该方式已支持,但不推荐使用,默认为关闭状态。若需要使用,则在views/buildEnvDepend.sh 取消注释,开启。

About

测试DevOps工具,涵盖接口自动化测试、性能测试、静态代码检查等测试类型,能够简单地管理测试集群。

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published