最佳实践
自动化测试功能简述
自动化测试模块是针对测试人员的复杂业务的测试服务。自 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条件控制器中使用内置变量
该控制器同样支持系统内置变量 request
和 response
,分别表示上一个接口的请求参数对象
和响应参数对象
。
具体变量内容参考 https://v7-wiki.apipost.cn/docs/21
while 循环控制器
使用场景
当触发满足某条件时,执行循环。
在while条件控制器中使用普通变量
可以通过使用 {{变量名}}
来调用当前的 环境变量
或者 全局变量
或者 测试数据变量
。用法同 if控制器
。
在while条件控制器中使用内置变量
该控制器同样支持系统内置变量 request
和 response
,分别表示上一个接口的请求参数对象
和响应参数对象
。 用法同 if控制器
。