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}"));

相关