场景:
POST请求,基于json格式,请求报文中部分字段在自动化测试中,是唯一的,所以需要参数化。
将参数化后的json报文作为该POST请求的参数,发送并检查是否请求成功。
以下是详细说明
一、测试类:PushClaimTest.java
定义方法 test(),调用 工具类 Helper.pushClaim()的方法
这里有两种方式:
1、创建Map集合,将所有需要参数化的json字符串的 jsonPath,jsonValue 分别放入Map中,然后调用Helper.pushClaim(map,"","")方法;
2、需要参数化的字段已因定不变且比较少,直接使用Helper.pushClaim("","")方法;这里的两个参数分别代表 companyCode,userAccount
PushClaimTest.java 代码:
import com.arronlong.httpclientutil.exception.HttpProcessException;
import com.cccis.test.common.util.helper.Helper;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.Map;
public class PushClaimTest {
@Test
public void test() throws HttpProcessException {
Map<String,Object> map = new HashMap();
String jsonPath = "";
String jsonValue = "03";
map.put(jsonPath,jsonValue);
// Helper.pushClaim(map,"SH0103","auto01");
Helper.pushClaim("SH0103","auto01");
}
}
二、工具类:Helper.java
定义了重载方法 pushClaim(),一个是json报文中需要参数化的字段有多个且可变,就使用参数有map集合的pushClaim方法
pushClaim()解析
1、使用工具类JSONUtil.java中的getJsonObject()方法获取json字符串的JSONOject对象
2、json字符串中需要固定参数化的字段通过随机数拼接,使其自动生成
3、使用工具类JSONUtil.replaceJson()方法,替换json对象中需要参数化的字段
4、判断pushClaim()方法中的参数Map集合是否为空
不为空时,就遍历Map集合,然后使用JSONUtil.replaceJson()方法,替换json对象中map集合里需要参数化的字段
5、将上述已替换完成的JSON对象转换成字符串
6、使用工具类HttpUtil.pushClaim()方法并传入第5步的字符串发送HTTP请求(这里是POST请求)
7、判断HTTP请求响应报文中,是否包含成功相关字样