一、环境统一要求
环境配置:
【必备环境配置】
apache- jmeter: 5.3
jdk:1.8
【批量执行脚本自动化生成测试报告配置】
RunCase:1.5 .4 .1
ant: 1.10 .12
【持续集成配置】
ant: 1.10 .12
Jenkins:jenkins- 2.32 .2
参考文档:https: // www. jianshu. com/ p/ 8b33585ccc1c
【注】安装包获取路径: https: // hoteamsoft. feishu. cn/ drive/ folder/ fldcnXHYmwIeGR9wPsBynsB98dg
二、基础模板使用
1 、全局配置, 采用统一脚本处理, 直接拿模板( jmeter接口模板. zip ) 使用
包含公共内容:JDBC数据库配置 、HTTP请求默认值、HTTP Header、token获取 :[ 获取] ( https: // download. csdn. net/ download/ qq_32828053/ 87400901 )
三、数据处理
2 、数据处理
数据准备:setUp线程组
按以下优先级进行数据准备( 数据可直接写死在请求body中,无须csv参数化文件) :
a. 通过请求接口获取
b. 数据库查询
c. [ setUp- 登录] :用于登录获取token并设置全局的请求头,可直接使用;
d. [ setUp- 公共数据准备] :用于准备一批公共数据,也不需要更改直接使用;
数据清理:tearDown线程组
统一调用接口进行数据清理,不建议直接删除数据库表,
因为表之间有复杂的关联关系
[ tearDown- 公共数据清理] :用来清理公共的数据
四、用例线程组
3 、用例线程组
命名:所属模块- 所属功能点
例如:视图管理- 新增视图;
包含内容:
a. 用例线程组上需要根据用例的数量设置循环次数;
b. 需要执行的用例文件. csv导入;
c. 测试用例接口;
d. 用例数据清理(根据场景调用清理数据接口,必要时可以使用if 循环器);
注意事项:
当前用例组需要特殊前置数据( [ setUp- 公共数据准备] 无法提供的) 需要自己准备【也可以编写在set - up中】
当前用例组产生的数据需要清理掉
五、请求/事务命名方式
4 、请求/ 事务命名方式
线程组名称- 功能名称- ${ CASE_NUM} - ${ CASE_NAME}
CASE_NUM: 用例编号,命名方式:英文+ 001 (三位数字编号,举例TenantAdd001, TenantEdit001)
CASE_NAME:验证场景说明(举例:名称为null, 编号重复)
【注】:CASE_NUM、CASE_NAME取自参数化用例文件的内容,只需要在csv脚本维护既可
六、csv参数化文件
5 、csv参数化文件
存放位置: 用例数据文件夹下,按功能模块划分
格式:. csv
路径:使用相对路径,可自定义变量存储公共父级路径。当前按照模块统一存放在脚本目录的同级目录的目录下
内容:首行为变量名,以‘, ’为分隔符,包括CASE_NUM、CASE_NAME、请求参数、code(期望错误码)
七、接口验证场景
6 、接口验证场景
业务功能测试:正常场景覆盖100 % ;异常场景覆盖30 %
参数组合测试(常见过滤查询接口)
多选操作校验(常见删除一个或多个)
唯一性校验(常见名称或编号)
必填性校验(参数有、无或为null)
参数边界值、类型校验(部分是通过前端控制,接口可不校验)
八、响应断言
7 、响应断言
基础校验:仅校验code错误码
业务校验:可调用接口或数据库查询进行辅助校验
举例:对于编辑接口,一是校验编辑成功后返回的code正确,二是可调用过滤查询接口,校验编辑后的信息确实已更新
九、脚本注释
8 、脚本注释
线程组注释:添加线程组的功能说明
请求注释:添加请求的参数变量说明
十、脚本命名规则
9 、脚本命名规则
一个功能菜单的所有接口写在一个. jmx脚本中,脚本名称以功能模块命名,如 租户管理. jmx
十一、脚本存放说明
10 、脚本存放说明
- 项目目录名称
- 脚本目录
- 脚本(每个脚本是一个模块)
- 脚本用例参数目录
- 脚本用例参数文档. csv
导入导出文件目录
- 使用说明文档
- jmeter快速执行文档【根据实际情况】
十二、项目脚本管理
11 、项目脚本管理
a. 统一使用Git进行脚本管理
b. 所有更新/ 新增的脚本不会直接合并到master分支,需要审核通过才能合并;git地址:http: // XXXXX/ autotest/ tcljmeterapi
十三、使用文档说明
12 、使用文档说明
主要标注执行方式,其他文档的存放位置等,或者创建bat执行文件
技术参考文献:【暂定】
十四、命名规范
命名规范
统一目录命名:
- - jmx:存放测试脚本
- - 模块名称+ 用例数据:存放用例文件和模块导入导出等文件
统一脚本名称:
- - 模块名称+ 接口测试. jmx
统一线程组命名:
- - setup/ teardown线程组:存放公共准备数据:setup/ teardown- 线程组作用(登录、公共数据准备、公共数据清理)
- - 用例线程组:模块下细分模块名称- 用例名称
统一接口请求名称:
- - 公共数据准备/ 清理接口:setup/ tearDown- 接口描述- 标识
- - 用例接口:模块下细分模块名称- 用例名称- ${ CASE_NUM} - ${ CASE_NAME}
统一用例csv文件:
- - 格式:csv文件
- - 命名:模块名称+ 用例数据. csv
- - 内容包含CASE_NUM、CASE_NAME、code等值
- - 文件中需要使用baenshell替换的数据统一使用NA/ MA替换
统一逻辑控制器命名:
- - 业务场景放到事务控制器:业务场景
- - 参数场景放到事务控制器:参数场景
- - 前置数据/ 后置数据放到事务控制器:setup/ teardowm- 数据准备/ 数据清理
- - if 判断控制器:描述判断内容