当前位置: 首页 > 知识库问答 >
问题:

如何添加数组列表RestAPI请求使用Rest保证?

刘玉石
2023-03-14

我使用rest-assured进行rest api测试,并借助POJO类(如getter和setter方法)来设置值,但我在rest请求之间使用数组列表,请任何人提供适当的代码以获得下面的请求,然后使用rest-assured发布。

请求:

{
"firstName":"SuryaNAMASKARAM",
"lastName":"mangalam",
"mobileNo" :4954758490,
"emailId" :"surya.mangalam@futureretail.in",
"houseNoStreet":"123456",
"buildingName":"",
"landmark":"Nirmala jathara",
"paymentDetail" :
[{"paymentType":"CASH","No":"3519000012","Date":"16-06-2018","amount":"100.00"}]
}

自定义创建类:

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Example {

@SerializedName("firstName")
@Expose
private String firstName;
@SerializedName("lastName")
@Expose
private String lastName;
@SerializedName("mobileNo")
@Expose
private Integer mobileNo;
@SerializedName("emailId")
@Expose
private String emailId;
@SerializedName("houseNoStreet")
@Expose
private String houseNoStreet;
@SerializedName("buildingName")
@Expose
private String buildingName;
@SerializedName("landmark")
@Expose
private String landmark;
@SerializedName("paymentDetail")
@Expose
private List<PaymentDetail> paymentDetail = null;

public String getFirstName() {
return firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public String getLastName() {
return lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public Integer getMobileNo() {
return mobileNo;
}

public void setMobileNo(Integer mobileNo) {
this.mobileNo = mobileNo;
}

public String getEmailId() {
return emailId;
}

public void setEmailId(String emailId) {
this.emailId = emailId;
}

public String getHouseNoStreet() {
return houseNoStreet;
}

public void setHouseNoStreet(String houseNoStreet) {
this.houseNoStreet = houseNoStreet;
}

public String getBuildingName() {
return buildingName;
}

public void setBuildingName(String buildingName) {
this.buildingName = buildingName;
}

public String getLandmark() {
return landmark;
}

public void setLandmark(String landmark) {
this.landmark = landmark;
}

public List<PaymentDetail> getPaymentDetail() {
return paymentDetail;
}

public void setPaymentDetail(List<PaymentDetail> paymentDetail) {
this.paymentDetail = paymentDetail;
}

}

付款详情:

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class PaymentDetail {

@SerializedName("paymentType")
@Expose
private String paymentType;
@SerializedName("No")
@Expose
private String no;
@SerializedName("Date")
@Expose
private String date;
@SerializedName("amount")
@Expose
private String amount;

public String getPaymentType() {
return paymentType;
}

public void setPaymentType(String paymentType) {
this.paymentType = paymentType;
}

public String getNo() {
return no;
}

public void setNo(String no) {
this.no = no;
}

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public String getAmount() {
return amount;
}

public void setAmount(String amount) {
this.amount = amount;
}

}

测试等级:

import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.test.requestpojo.Example;
import com.test.requestpojo.PaymentDetail;

public class TestAPI {

    public void setTestData() throws JSONException {

        Example example = new Example();

        example.setFirstName("Rajesh");
        example.setLastName("Kuchana");
        example.setMobileNo("3434343434");
        example.setEmailId("rajesh.kuchana@futureretail.in");
        example.setDateOfBirth("10-10-2018");
        example.setGender(1);
        example.setHouseNoStreet("Test");
        example.setBuildingName("Test");
        example.setLandmark("Test");        

        List<PaymentDetail> data = new ArrayList<PaymentDetail>();

        PaymentDetail paymentDetail = new PaymentDetail();
        paymentDetail.setAmount("999.00");
        data.add(paymentDetail);            

        JSONObject jsonObject = new JSONObject(example);

        JSONArray jsonArray = new JSONArray(data);
        jsonArray.put(data);

        System.out.println(jsonArray.put(data));        

    }

共有1个答案

终翰学
2023-03-14

在测试类中,您必须做的是将测试数据创建分离到另一个类,并将其作为数据提供程序传递给您的测试方法。这是从设计的角度来看的。

来到你的问题:你已经在使用gson,为什么你要构建一个JSONObject。取而代之的是做下面这样的事情;

Gson gson = new Gson(); 
String _my_obj = gson.toJson(example);

希望这就是你要找的。

 类似资料:
  • 我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?

  • 在有趣的功能中,当我将列表添加到其他列表时,它正在添加空列表,我可以找到原因有人可以帮助我这个程序是关于查找给定数组的不同组合

  • 我无法使用REST保证执行我们的REST帖子网址。我收到状态 404 错误。我们的REST网址不需要任何身份验证,正文等。相同的网址在POSTMAN,RESTEasy中工作正常。我尝试了所有四种组合以获得响应

  • 我将 0 到 1000 之间的所有数字相加,这些数字是倍数或 3 和 5。我只是在将它们加起来时遇到麻烦。我不断收到错误消息:线程“main”java.lang.IndexOutOfBounds异常异常:索引:468,大小:468 我的代码 有人知道原因吗?我不明白为什么它不起作用。它打印出数组列表,所以我肯定应该将元素添加在一起……

  • 当没有响应返回时,我需要超时我的RESTAPI。例如,当我发出请求时,如果返回响应需要5秒钟以上,则超时。 为了实现这一点,我选择了使用Hystrix的断路器。但我不确定这是否是解决此问题的正确方法,如果一切都好,是否应该对Hystrix进行更多配置? 我当前的实现看起来像, 主类 RestController 应用程序属性 当超时时,它抛出一个HystrixRunTimeException,并由