接口自动化
场景是接口自动化功能中的基本管理单元,由一组用例和接口组装而成。例如用户管理场景,包含用户注册、用户登陆、用户修改、用户注销、用户销户等用例或者接口。
MeterSphere 支持拖拽的方式对场景进行编排和设计,可添加的步骤包括各种协议的请求、断言、自定义脚本、逻辑控制器等。同时场景支持定时、API调用、Jenkins调用等方式触发自动化执行。
1 模块树管理¶
每个场景都需要属于一个特定的模块,在创建场景前需要先规划并创建模块树。
说明
接口自动化与接口定义中的模块树相互独立,接口定义中创建的模块不会出现在接口自动化的模块树中。
具体的模块管理操作与接口定义中的模块树类似,请参考接口定义中的 模块树管理。
2 场景管理¶
2.1 场景快捷功能¶
场景列表的快捷按钮有 执行
、 编辑
、 复制
、 删除
。
2.2 快速创建场景¶
选择一个模块后,点击 更多操作-> 创建场景
按钮,可仅填写接口基本信息,在该模块下快速创建接口。
2.3 编辑场景详情¶
在场景列表中点击指定场景操作列中的 编辑
按钮,进入场景详情编辑页面。在该页面中可对场景的基础信息,场景的具体步骤等进行进一步编辑。
2.4 场景变量配置¶
在添加场景步骤前可以添加整个场景公用的变量参数,支持多种不同类型,在场景中的步骤均可引用这些参数。
参数说明
-
常量
变量名
: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。描述
:针对该变量的详细说明。值
:该变量的值,可以使用 JMeter 中的内置函数。- 举例说明:定义变量名为
varName
,变量值为varValue
的变量,在后续步骤中通过${varName}
引用得到varValue
。
-
列表
变量名
: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。描述
:针对该变量的详细说明。值
:以逗号,
分隔的值列表,可以在步骤中通过 ${varName_n} 的形式引用指定位置的值,其中 n 代表要引用的值的位置,从 1 开始。- 举例说明:定义变量名为
listVar
,变量值为value1,value2,value3
的变量,在后续步骤中通过${listVar_1}
引用得到value1
,通过${listVar_2}
引用得到value2
。
-
CSV
变量名
: CSV 文件的名称,仅起到标记作用,无法在场景步骤中通过 ${varName} 的形式引用该变量。描述
:针对该变量的详细说明。添加文件
:CSV 文件选择,从本地上传 CSV 文件。Encoding
:CSV 文件的编码格式。分隔符
:CSV 文件中的数据分隔符,默认为,
。-
举例说明:上传 CSV 中的内容如下所示,第一列为变量名列,可以在场景的后续步骤中通过
${name}
,${age}
分别引用第一列和第二列的值。当在循环控制器外引用变量时,变量值为第一个数据值,${name}=Andy
,${age}=20
;当在循环控制器内引用变量时,每迭代一次都会取下一行的数据值。name,age Andy,20 Tom,22
-
计数器
变量名
: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。描述
:针对该变量的详细说明。开始
:计数器变量的起始值,即最小值。结束
:计数器变量的结束值,即最大值。增量
:计数器变量每次增加的增量值,默认为 1。- 举例说明:定义变量名为
counter1
的计数器变量,开始值为1
,结束值为100
,增量为1
。当在循环控制器外引用变量时,变量值不会递增,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会增加一次。
-
随机数
变量名
: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。描述
:针对该变量的详细说明。最小值
:随机范围的最小值。最大值
:随机范围的最大值。输出格式
:随机数的输出格式,例如设定最小值1
,最大值100
,输出格式为000
,则变量值为013
,074
这样的格式。- 举例说明:定义变量名为
random1
,最小值1
,最大值100
,输出格式为000
的变量。当在循环控制器外引用变量时,多次引用变量值不会重新随机,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会重新随机一次。
2.5 场景步骤编排¶
2.5.1 添加一级步骤 ¶
在场景详情编辑页面,点击页面右下方的 添加
按钮,可在当前场景中添加步骤。
2.5.2 添加子步骤 ¶
在步骤的请求参数详情界面,可选择添加 前置操作
、后置操作
、断言规则
子步骤。
前置操作
可添加前置脚本
、前置SQL
、等待控制器
。
后置操作
可添加提取参数
、后置SQL
、后置脚本
。
断言规则
可添加断言
。
2.5.3 调整步骤顺序及层级 ¶
选中某个步骤后长按鼠标左键可以对步骤进行拖拽,拖拽支持调整步骤顺序及层级,通过拖拽可将其变为一级步骤或某个步骤的子步骤。
2.5.4 针对步骤的其他操作 ¶
操作说明
- 编辑名称:对于支持配置名称的步骤,点击该按钮可以修改该步骤的名称。
- 启用/禁用:点击该按钮启用/禁用该步骤。
- 调试:对于支持单独执行的步骤,点击该按钮可以单独执行步骤,执行后点击步骤空白处可以在其详情中查看执行结果。
- 复制:复制该步骤。
- 删除:删除该步骤。
说明
针对不同步骤的详细说明请参考 用例步骤说明。
2.5.5 针对场景的其他操作 ¶
操作说明
- 场景变量:自定义场景变量,包括常量、列表变量、csv、计数器、随机数等。
- 共享cookie:场景里的所有步骤共享cookie。
- 失败继续:场景中有步骤失败不影响后面步骤执行。
- 运行环境:场景运行环境配置,可选项目环境或者环境组两种类型。
- 调试:调整场景和生成报告。
- 保存:保存场景。
- 刷新:场景内刷新步骤。
- 调试历史:查看场景的调试历史和报告详情。
- 变更记录:查看场景变更记录。
- 全屏编辑:对步骤全屏展示并编辑。
- 批量操作:场景内部的批量操作,包含 批量启用步骤、批量禁用步骤、批量展开步骤,批量折叠步骤、批量删除步骤。
2.6 调试指定场景¶
场景及场景中的步骤创建完成后,点击调试
可实时查看场景内各个步骤执行状态及响应结果信息,只点击调试
产生的结果仅临时存在,无法保存为测试报告供后续查看。
点击 调试
按钮右侧角标,再点击生成测试报告。弹出执行结果页面,当场景执行完成后可查看到详细的执行报告。
2.7 执行指定场景¶
在场景列表中点击指定场景操作列中的 执行
按钮,弹出执行结果页面,当场景执行完成后可查看到详细的执行结果。
2.8 批量执行场景¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量执行
,所有用例执行完成后可进入 测试报告
页面查看执行结果。
操作说明
- 运行环境:批量执行场景选择的环境,支持项目环境和环境组两种方式。
- 模式:串行表示多场景依次执行;并行表示多场景同时执行。
- 其他配置:独立报告表示每个场景都生成一份报告;集合报告表示所有场景只生成一份报告。
- 资源池运行:支持选择不同节点执行场景,可以选择普通资源池和 K8S 资源池,K8S 资源池是企业版功能。
2.9 批量编辑场景¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量编辑
,支持批量编辑 用例等级
、 当前状态
、 责任人
、 运行环境
四个属性。
2.10 批量移动场景¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量移动
,支持将场景到移动其他模块位置。
2.11 批量复制场景¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量复制
,支持复制多个场景。
2.12 批量删除场景¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量删除
,支持删除多个场景。
2.13 生成依赖关系 (X-Pack)¶
在场景列表中选中多个场景后点击批量操作按钮中的 生成依赖关系
。
2.14 批量添加测试计划¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量添加测试计划
,支持将多个场景添加到测试计划。
2.15 批量创建性能测试¶
在场景列表中选中多个场景后点击批量操作按钮中的 批量创建性能测试
,支持将多个场景导入性能测试。
2.16 场景定时任务¶
配置好时间表达式,下方会展示最近5次运行时间,点击确定
按钮保存成功。
2.17 场景导出导入¶
场景列表支持导出 MeterSphere
和 JMETER
两种格式。
场景列表支持导入 MeterSphere
、 Postman
、 JMeter
、 HAR
四种格式,场景导入支持覆盖
和不覆盖
两种模式。
场景在跨项目、跨工作空间甚至是跨服务迁移数据导入、导出时,能够保留自身步骤的引用关系,保证数据的完整性和一致性。
2.18 场景查看引用¶
2.19 将场景移入回收站¶
在场景列表中点击指定场景操作列中的 删除
按钮,该场景将被移入回收站,同时场景变为 废弃
状态。用户可以点击左侧模块树中的 回收站
查看已废弃的场景。
2.20 恢复场景¶
点击左侧模块树中的 回收站
,选择要恢复的场景点击操作列中的 恢复
按钮。
2.21 彻底删除场景¶
点击左侧模块树中的 回收站
,选择要彻底删除的场景点击操作列中的 删除
按钮。
注意
从回收站中删除某个场景时,该场景将从数据库中删除且无法恢复,请谨慎使用该功能。
2.22 MQTT协议 (X-Pack)¶
点击系统设置-系统-插件管理
,点击点击上传
,将 MQTT 协议的 Jar 包上传上去。
点击接口自动化-创建场景
,右侧会出现 MQTT 请求相关内容。
2.23 Websocket协议 (X-Pack)¶
点击系统设置-系统-插件管理
,点击点击上传
,将 Websocket 协议的 Jar 包上传上去。
点击接口自动化-创建场景
,右侧会出现 Websocket 请求相关内容,根据需要,选择 Websocket 请求的组件。
2.24 Thrift协议 (X-Pack)¶
与上面 MQTT协议 (X-Pack) 和 Websocket协议 (X-Pack) 操作步骤相同