meterSphere(六)如何将断言结果自定义响应结果,通过对照码取得实际的值?
需求
现状
接口自动化测试中,使用CSV定义输入和响应结果,如下:
断言为:
问题
-
有很多个接口有【testCode】这个字段,都需要测试这个字段为“”、null、不存在、禁用的情况;
-
如果开发修改了响应结果,比如,将 test[testCode]不能为空 改成 test不能为空:[testCode],那测试用例的改动量会非常大,很痛苦
实现思路
-
要将响应结果自定义一个响应值,然后在系统中存放一个对照码;
-
断言的时候,我需要根据自定义的响应值去取到对照码中的对应值,再去断言;
-
如果开发有修改,我只需要去修改对照码中的值即可
实现方式
全局前置脚本,定义响应对照码,并加入全局变量
import java.util.HashMap;
import java.util.Map;
Map messages = new HashMap();
messages.put("testCode_null_or_empty","test[testyCode]不能为空");
// 注意地方要使用putObject,put只适用用String
vars.putObject("messages", messages);
csv中csv_assertion为自定义响应码
测试用例中,定义前置脚本,在断言之前根据对照码取出
定义的脚本为:
msg = vars.getObject("messages");
vars.put("csv_assertion",msg.get("${csv_assertion}"));