接口自动化

场景是接口自动化功能中的基本管理单元,由一组用例和接口组装而成。例如用户管理场景,包含用户注册、用户登陆、用户修改、用户注销、用户销户等用例或者接口。

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;当在循环控制器内引用变量时,每迭代一次都会取下一行的数据值。

      1. name,age
      2. Andy,20
      3. Tom,22
  • 计数器

    • 变量名: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。
    • 描述:针对该变量的详细说明。
    • 开始:计数器变量的起始值,即最小值。
    • 结束:计数器变量的结束值,即最大值。
    • 增量:计数器变量每次增加的增量值,默认为 1。
    • 举例说明:定义变量名为 counter1 的计数器变量,开始值为 1,结束值为 100,增量为 1。当在循环控制器外引用变量时,变量值不会递增,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会增加一次。
  • 随机数

    • 变量名: 该变量的变量名,可以在场景步骤中通过 ${varName} 的形式引用该变量。
    • 描述:针对该变量的详细说明。
    • 最小值:随机范围的最小值。
    • 最大值:随机范围的最大值。
    • 输出格式:随机数的输出格式,例如设定最小值 1,最大值 100,输出格式为 000,则变量值为 013074 这样的格式。
    • 举例说明:定义变量名为 random1,最小值 1,最大值 100,输出格式为 000 的变量。当在循环控制器外引用变量时,多次引用变量值不会重新随机,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会重新随机一次。

场景变量也支持配置请求头参数。

快速创建场景

2.5 场景步骤编排

2.5.1 添加一级步骤

在场景详情编辑页面,点击页面右下方的 添加 按钮,可在当前场景中添加步骤。

快速创建场景

快速创建场景

点击步骤条目的空白处,可以展开查看步骤详情。

快速创建场景

快速创建场景

2.5.2 添加子步骤

在步骤的请求参数详情界面,可选择添加 前置操作后置操作断言规则 子步骤。

  • 前置操作 可添加 前置脚本前置SQL等待控制器

快速创建场景

  • 后置操作 可添加 提取参数后置SQL后置脚本

快速创建场景

  • 断言规则 可添加 断言

快速创建场景

2.5.3 调整步骤顺序及层级

选中某个步骤后长按鼠标左键可以对步骤进行拖拽,拖拽支持调整步骤顺序及层级,通过拖拽可将其变为一级步骤或某个步骤的子步骤。

快速创建场景

快速创建场景

2.5.4 针对步骤的其他操作

快速创建场景

操作说明

  1. 编辑名称:对于支持配置名称的步骤,点击该按钮可以修改该步骤的名称。
  2. 启用/禁用:点击该按钮启用/禁用该步骤。
  3. 调试:对于支持单独执行的步骤,点击该按钮可以单独执行步骤,执行后点击步骤空白处可以在其详情中查看执行结果。
  4. 复制:复制该步骤。
  5. 删除:删除该步骤。

说明

针对不同步骤的详细说明请参考 用例步骤说明

2.5.5 针对场景的其他操作

快速创建场景

快速创建场景

操作说明

  1. 场景变量:自定义场景变量,包括常量、列表变量、csv、计数器、随机数等。
  2. 共享cookie:场景里的所有步骤共享cookie。
  3. 失败继续:场景中有步骤失败不影响后面步骤执行。
  4. 运行环境:场景运行环境配置,可选项目环境或者环境组两种类型。
  5. 调试:调整场景和生成报告。
  6. 保存:保存场景。
  7. 刷新:场景内刷新步骤。
  8. 调试历史:查看场景的调试历史和报告详情。
  9. 变更记录:查看场景变更记录。
  10. 全屏编辑:对步骤全屏展示并编辑。
  11. 批量操作:场景内部的批量操作,包含 批量启用步骤、批量禁用步骤、批量展开步骤,批量折叠步骤、批量删除步骤。

2.6 调试指定场景

场景及场景中的步骤创建完成后,点击调试可实时查看场景内各个步骤执行状态及响应结果信息,只点击调试产生的结果仅临时存在,无法保存为测试报告供后续查看。

快速创建场景

快速创建场景

点击 调试 按钮右侧角标,再点击生成测试报告。弹出执行结果页面,当场景执行完成后可查看到详细的执行报告。

快速创建场景

快速创建场景

2.7 执行指定场景

在场景列表中点击指定场景操作列中的 执行 按钮,弹出执行结果页面,当场景执行完成后可查看到详细的执行结果。

快速创建场景

快速创建场景

2.8 批量执行场景

在场景列表中选中多个场景后点击批量操作按钮中的 批量执行,所有用例执行完成后可进入 测试报告 页面查看执行结果。

快速创建场景

快速创建场景

操作说明

  1. 运行环境:批量执行场景选择的环境,支持项目环境和环境组两种方式。
  2. 模式:串行表示多场景依次执行;并行表示多场景同时执行。
  3. 其他配置:独立报告表示每个场景都生成一份报告;集合报告表示所有场景只生成一份报告。
  4. 资源池运行:支持选择不同节点执行场景,可以选择普通资源池和 K8S 资源池,K8S 资源池是企业版功能。

2.9 批量编辑场景

在场景列表中选中多个场景后点击批量操作按钮中的 批量编辑,支持批量编辑 用例等级当前状态责任人运行环境 四个属性。

快速创建场景

快速创建场景

2.10 批量移动场景

在场景列表中选中多个场景后点击批量操作按钮中的 批量移动,支持将场景到移动其他模块位置。

快速创建场景

快速创建场景

2.11 批量复制场景

在场景列表中选中多个场景后点击批量操作按钮中的 批量复制,支持复制多个场景。

快速创建场景

快速创建场景

2.12 批量删除场景

在场景列表中选中多个场景后点击批量操作按钮中的 批量删除,支持删除多个场景。

快速创建场景

2.13 生成依赖关系 (X-Pack)

在场景列表中选中多个场景后点击批量操作按钮中的 生成依赖关系

快速创建场景

依赖关系图可以导出JPGPNG图片格式

依赖关系图

2.14 批量添加测试计划

在场景列表中选中多个场景后点击批量操作按钮中的 批量添加测试计划,支持将多个场景添加到测试计划。

快速创建场景

勾选要添加的测试计划,点击确定即可添加成功。

快速创建场景

2.15 批量创建性能测试

在场景列表中选中多个场景后点击批量操作按钮中的 批量创建性能测试,支持将多个场景导入性能测试。

快速创建场景

快速创建场景

2.16 场景定时任务

场景列表页点击右侧 ... , 选择定时任务。

快速创建场景

快速创建场景

配置好时间表达式,下方会展示最近5次运行时间,点击确定按钮保存成功。

快速创建场景

任务通知支持配置事件、接收人、接收方式。

快速创建场景

2.17 场景导出导入

场景列表支持导出 MeterSphereJMETER 两种格式。

快速创建场景

场景列表支持导入 MeterSpherePostmanJMeterHAR 四种格式,场景导入支持覆盖不覆盖两种模式。

快速创建场景

快速创建场景

场景在跨项目、跨工作空间甚至是跨服务迁移数据导入、导出时,能够保留自身步骤的引用关系,保证数据的完整性和一致性。

快速创建场景

同一工作空间下,不同项目迁移数据导入

快速创建场景

不同工作空间下,迁移数据导入

快速创建场景

2.18 场景查看引用

支持查看场景在另外场景和测试计划的引用情况。

快速创建场景

快速创建场景

2.19 将场景移入回收站

在场景列表中点击指定场景操作列中的 删除 按钮,该场景将被移入回收站,同时场景变为 废弃 状态。用户可以点击左侧模块树中的 回收站 查看已废弃的场景。

快速创建场景

快速创建场景

2.20 恢复场景

点击左侧模块树中的 回收站,选择要恢复的场景点击操作列中的 恢复 按钮。

快速创建场景

2.21 彻底删除场景

点击左侧模块树中的 回收站,选择要彻底删除的场景点击操作列中的 删除 按钮。

快速创建场景

注意

从回收站中删除某个场景时,该场景将从数据库中删除且无法恢复,请谨慎使用该功能。

2.22 MQTT协议 (X-Pack)

点击系统设置-系统-插件管理,点击点击上传,将 MQTT 协议的 Jar 包上传上去。

MQTT创建场景

点击接口自动化-创建场景,右侧会出现 MQTT 请求相关内容。

MQTT创建场景

根据需要,选择 MQTT 请求的组件

MQTT创建场景

2.23 Websocket协议 (X-Pack)

点击系统设置-系统-插件管理,点击点击上传,将 Websocket 协议的 Jar 包上传上去。

MQTT创建场景

点击接口自动化-创建场景,右侧会出现 Websocket 请求相关内容,根据需要,选择 Websocket 请求的组件。

Websocket创建场景

2.24 Thrift协议 (X-Pack)

与上面 MQTT协议 (X-Pack) 和 Websocket协议 (X-Pack) 操作步骤相同