构造全链路场景
如果被测场景包含多个接口的串并联及接口间上下文传参,可选择全链路测试场景。通过参数化配置即可构造复杂的测试场景,同时便于后续用例维护。
创建入口
方式一:
在测试场景列表中,点击新建测试场景按钮,选择“全链路”tab,选择指定的接口协议,点击“创建”按钮。
方式二:
由单接口模式转成全链路模式
在单接口测试场景的编辑页面,点击“全链路模式”,即可实现一键转化。
通过点击“+”添加请求和控制器,同时支持导入接口
链路与接口执行顺序
多接口串行及传参
同一链路下的多个接口,接口的执行顺序为串行。
*注意:如需接口间传参,可设置“出参定义”(具体用法详见〈变量的定义与引用〉章节)
多链路并行
点击“+”可添加多条链路,链路内的接口串行执行,链路执行顺序选择“并行”。
多链路串行及传参
链路执行顺序选择“串行”即可实现多条链路串行执行,链路内的接口同为串行执行。
如果链路间需要参数传递,请点击链路变量
在导出变量里输入需要传递给下一个链路的变量名,支持设置多个变量
逻辑控制器
当业务逻辑较复杂可通过添加相应逻辑控制器编排测试场景,从而模拟真实业务场景。
控制器名称 | 说明 |
---|---|
条件控制器 | 根据给定条件决定是否执行该节点下的子节点 |
循环控制器 | 指定其子节点运行的次数,可以使用具体的数值(如下图,设置为5次),也可以设置循环条件 |
等待控制器 | 延时不会计入单个接口的响应时间,但会计入事务控制器的时间 |
流量控制器 | 控制其下的子节点的执行次数与负载比例分配 |
并行控制器 | 链路内可设置多个并行控制器,各自子节点并行执行 |
事务控制器 | 事务控制器用来统计该控制器子节点的所有时间 |
仅一次控制器 | 该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器 |
分组控制器 | 不产生实际行为,仅用于结构化编排 |
集合点 | 等待所有线程全部执行完之前任务再继续执行 |
前置/后置处理
在编排测试场景中,为了更加模拟真实场景,需要通过调用接口准备测试数据,或者进行环境准备,可选择前置处理。在对接口压测结束后,涉及到环境的清理,可通过配置后置处理实现。
前置处理
在测试任务执行中,如果用户配置前置处理(非必填项),会优先执行“前置处理”,再处理“执行链路”。
如果压测场景中需要通过调用接口准备测试数据,并在执行链路中引用测试数据,需要进行以下操作:
- 1)在前置处理的链路中添加请求,并定义变量
- 2)在前置处理中选择需要导出的数据变量
- 3)在执行链路所需接口引用变量
在左侧菜单选择“前置处理”,点击“添加链路
点击“+”,根据接口协议选择对应类型的请求
以HTTP请求为例,配置请求相关信息,通过出参定义配置需要在执行链路里使用的测试数据变量
在请求配置完成后,点击“+”添加数据导出
填写数据导出相关配置信息
数据导出配置参数具体说明如下:
参数名称 | 说明 | 默认值 |
---|---|---|
描述 | 可按照实际业务添加对应描述 | 数据导出 |
导出数据 | 选择需要被执行链路共用的变量。若下拉选项为空,请在该链路对应请求定义变量(出参定义) | — |
数据量 | 设置需要导出数据的条数 | 3000 |
轮询配置 | 读取导出数据的次数,循环读取或仅读取一次 | 循环执行 |
共享模式 | 链路内共享:每个线程每次发送请求前会重新读取文件数据,每个线程仅分配一次:每个线程仅在第一次发送请求时读取数据文件,之后始终使用相同的数据 | 链路内共享 |
注意:前置链路支持创建多条链路并行,仅支持一条链路配置“数据导出”指令。
后置处理
测试任务执行中,如果用户配置后置处理(非必填项),会在“执行链路”之后运行“后置处理”,进行环境清理任务。