跳到主要内容

最佳实践

自动化测试功能简述

自动化测试模块是针对测试人员的复杂业务的测试服务。自 7.0.13+ 版本起,Apipost开始支持如下功能特性:

1、支持 次数循环while循环事物分组if条件分支全局断言Javascript脚本HTTP接口 等多种控制器。其中,次数循环while循环事物分组if条件分支 控制器支持无限极嵌套。

2、除可以设置全局的公用测试数据外,次数循环while循环事物分组控制器还支持单独设置局部的测试数据。

预计在2023 Q1季度会支持如下新特性:

1、 支持单接口多测试用例;
2、 测试数据支持多种类型数据源(自定义变量、读取CSV文件、读取数据库等)

使用测试数据

测试数据使用场景

测试数据用于替换变量。在自动化测试运行过程中,你可以通过设置测试数据来替换接口中的变量。

比如我在接口中引用变量 {{phone}}{{nickname}},如下图:

然后通过上传 csv 格式的文件来使用测试数据。如下图:

csv 测试数据文件的格式

如前述,Apipost 目前支持通过导入 csv 格式的文件来上传测试数据。其中第1行为变量名,第2行起为变量值。当设置了循环或使用了循环控制器时,会逐行获取变量值进行替换。

公共测试数据和局部测试数据

局部测试数据的优先级大于公共测试数据。

当没有设置局部测试数据时,变量替换以公共测试数据为依据。当设置了局部测试数据时,以局部测试数据为依据。

局部测试数据实践场景

假如有 A、B、C、D 4个接口
接口A需要变量a1,a2,a3
接口B需要变量b1,b2,b3
接口C需要变量c1,c2,c3
接口D需要变量d1,d2,d3
接口A跑2次,接口B跑3次,接口C跑1次,接口D跑4次
那么按照如下图所示分别设置局部测试即可。

if 条件控制器

使用场景

当触发满足某条件时,再执行其中的接口或者其他控制器。

在if条件控制器中使用普通变量

可以通过使用 {{变量名}} 来调用当前的 环境变量 或者 全局变量 或者 测试数据变量

在if条件控制器中使用内置变量

该控制器同样支持系统内置变量 requestresponse,分别表示上一个接口的请求参数对象响应参数对象

具体变量内容参考 https://v7-wiki.apipost.cn/docs/21

while 循环控制器

使用场景

当触发满足某条件时,执行循环。

在while条件控制器中使用普通变量

可以通过使用 {{变量名}} 来调用当前的 环境变量 或者 全局变量 或者 测试数据变量。用法同 if控制器

在while条件控制器中使用内置变量

该控制器同样支持系统内置变量 requestresponse,分别表示上一个接口的请求参数对象响应参数对象。 用法同 if控制器