场景是接口自动化中的基本管理单元,由一组用例和接口组装而成。如用户管理场景,包含用户注册、用户登陆、用户修改、用户注销、用户销户等用例或者接口。
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
最小值
:随机范围的最小值。
最大值
:随机范围的最大值。
输出格式
:随机数的输出格式,例如设定最小值 1
,最大值 100
,输出格式为 000
,则变量值为 013
,074
这样的格式。
举例说明:定义变量名为 random1
,最小值 1
,最大值 100
,输出格式为 000
的变量。当在循环控制器外引用变量时,多次引用变量值不会重新随机,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会重新随机一次。
【编辑名称】:对于支持配置名称的步骤,点击该按钮可以修改该步骤的名称。
【启用/禁用】:点击该按钮启用/禁用该步骤。
【调试】:对于支持单独执行的步骤,点击该按钮可以单独执行步骤,执行后点击步骤空白处可以在其详情中查看执行结果。
【复制】:复制该步骤。
【删除】:删除该步骤。
【场景变量】:自定义场景变量,包括常量、列表变量、csv、计数器、随机数等。
【共享cookie】:场景里的所有步骤共享cookie。
【失败继续】:场景中有步骤失败不影响后面步骤执行。
【运行环境】:场景运行环境配置,可选项目环境或者环境组两种类型。
【调试】:调整场景和生成报告。
【保存】:保存场景。
【刷新】:场景内刷新步骤。
【调试历史】:查看场景的调试历史和报告详情。
【变更记录】:查看场景变更记录。
【版本(X-Pack)】:展示当前场景所属版本信息。
【批量操作】:场景内部的批量操作,包含 批量启用步骤、批量禁用步骤、批量展开步骤,批量折叠步骤、批量删除步骤。
在场景列表中选中多个场景后点击批量操作按钮中的【批量执行】,所有用例执行完成后可进入【测试报告】页面查看执行结果。
【运行环境】:批量执行场景选择的环境,支持项目环境和环境组两种方式。
【模式】:串行表示多场景依次执行;并行表示多场景同时执行。
【其他配置】:独立报告表示每个场景都生成一份报告;集合报告表示所有场景只生成一份报告。
【资源池】:支持选择不同节点执行场景,可以选择普通资源池和 K8S 资源池,K8S 资源池是企业版功能。
2.19 将场景移入回收站
在场景列表中点击指定场景操作列中的【删除】按钮,该场景将被移入回收站,同时场景变为【废弃】状态。用户可以点击左侧模块树中的【回收站】查看已废弃的场景。
2.20 回收站操作
点击左侧模块树中的【回收站】,进入回收站页面,支持对已经删除的场景进行【恢复】【删除】操作。
选择要恢复的场景点击操作列中的【恢复】按钮,可以将数据恢复到接口自动化列表;点击操作列中的【删除】按钮。 从回收站中删除某个场景时,该场景将从数据库中删除且无法恢复,请谨慎使用该功能。
2.21 MQTT协议 (X-Pack)
点击【系统设置-系统-插件管理】,点击【点击上传】,将 MQTT 协议的 Jar 包上传上去。
点击【接口自动化-创建场景】,右侧会出现 MQTT 请求相关内容。
根据需要,选择 MQTT 请求的组件
2.22 Websocket协议 (X-Pack)
点击【系统设置-系统-插件管理】,点击【点击上传】,将 Websocket 协议的 Jar 包上传上去。
点击【接口自动化-创建场景】,右侧会出现 Websocket 请求相关内容,根据需要,选择 Websocket 请求的组件。
2.23 Thrift协议 (X-Pack)
与上面 MQTT协议 (X-Pack) 和 Websocket协议 (X-Pack) 操作步骤相同