java接口自动化之依赖接口

接口测试的时候,经常会遇到上一个接口的返回参数作为下一个接口的入参这种情况,本片介绍如何使用java代码处理这种情况

1.maven引入gson包,我第一次用的是2.8.6版本,new JsonParser().parse(s)总是报错,于是换成了2.8.2版本

	
    com.google.code.gson
    gson
    2.8.2

2.使用testNG进行依赖接口测试

package com.work.api.inter;

import java.io.IOException;

import net.sf.json.JSONObject;

import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.testng.annotations.Test;

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import common.Base;

public class NewTest {
	String commodityId = null;
  @Test
  public void users_test() throws ClientProtocolException, IOException {
	//调用get方法
	Base.HttpGet("http地址");
  }
  

  @Test
  public void commodityinfo_test() throws ParseException, IOException{
	//创建json对象,因为请求参数是json格式的,所以这么创建,
	//我这里因为单位把接口做成了微服务,请求中嵌套了一层json,所以创建了2个
	JSONObject parameter = new JSONObject();
	JSONObject parameter2 = new JSONObject();
	//加参数
	parameter2.put("CommodityID", "106382");
	parameter.put("PackageData", parameter2);
	parameter.put("TransactionID", "111111111111111111111");
	parameter.put("RequestDate", "11111111111111");
	//调用post方法
	String s= Base.HttpPost("http地址", parameter.toString());
	//将返回强制转化成JsonObject对象
	JsonObject jsobject1 = (JsonObject)new JsonParser().parse(s);
	//因为返回里面嵌套了一层,取两次
	JsonObject jsobject2 = (JsonObject)new JsonParser().parse(jsobject1.get("PackageData").toString());
	commodityId=jsobject2.get("CommodityId").toString();
  }
  
    //(dependsOnMethods={"commodityinfo_test"})这个是改接口依赖于commodityinfo_test接口的意思
  @Test(dependsOnMethods={"commodityinfo_test"})
  public void commoditymerchant_test() throws ParseException, IOException{
	JSONObject parameter = new JSONObject();
	JSONObject parameter2 = new JSONObject();
	//加参数,把commodityinfo_test()返回值当成入参
	parameter2.put("CommodityID", commodityId);
	parameter.put("PackageData", parameter2);
	parameter.put("TransactionID", "111111111111111111111");
	parameter.put("RequestDate", "11111111111111");
	//调用post方法
	Base.HttpPost("http地址", parameter.toString());
  }
}

PS:调用的HttpPost和HttpGet方法在上一篇博客有写,

你可能感兴趣的:(java+httpclient)