如何在 selenium 中使用 RestAssured Post 以下请求
How to Post the below request using RestAssured in selenium
如何在 selenium 中使用 RestAssured POST 以下请求。
请求如下:
{
"ShipmentID": "",
"ShipmentNumber": "123455-6",
"Comments": "",
"LineIDs": [
{
"ShipmentDID": "",
"AssetNum": "759585",
"FileC": "",
"SerialN": "",
"LineID": "5",
"Status": "Accept",
"TransferCancelComment": ""
}
下面是我使用的代码,但不确定我应该如何继续 "LineID's",因为它有更多的属性。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams=new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
requestparams.put("LineIDs", "");
}
希望下面的代码能解决您的问题。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams = new JSONObject();
JSONArray lineIdsArray = new JSONArray();
JSONObject lineIdObject = new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
lineIdObject.put("ShipmentDID", "");
lineIdObject.put("AssetNum", "759585");
lineIdObject.put("FileC", "");
lineIdObject.put("SerialN", "");
lineIdObject.put("LineID", "5");
lineIdObject.put("Status", "Accept");
lineIdObject.put("TransferCancelComment", "");
lineIdsArray.put(lineIdObject);
requestparams.put("LineIDs", lineIdsArray);
} catch (JSONException e) {
}
System.out.println(requestparams);
}
更好的方法是,从 POJO/model 文件构造 json,然后将其传递给测试。通过这种方式,意图有了明确的分离,将来如果您想验证该类型的任何响应,您可以简单地反序列化并使用 POJO 的 getter 获取值。
例如,如果您的 json 是
{
"name":"Mohan",
"age":21
}
您的 POJO 如下所示:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("name")
@Expose
private String name;
@SerializedName("age")
@Expose
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
我正在使用来自 google 的 GSON,它是序列化和反序列化库。使用您的 POJO 构造您的有效负载并将其作为参数传递给您的测试方法。
这将使您的代码更具可读性、可维护性和可扩展性....
这背后的想法是测试的意图不应该被污染,并且不同实体的职责之间会有明确的分离。
如何在 selenium 中使用 RestAssured POST 以下请求。
请求如下:
{
"ShipmentID": "",
"ShipmentNumber": "123455-6",
"Comments": "",
"LineIDs": [
{
"ShipmentDID": "",
"AssetNum": "759585",
"FileC": "",
"SerialN": "",
"LineID": "5",
"Status": "Accept",
"TransferCancelComment": ""
}
下面是我使用的代码,但不确定我应该如何继续 "LineID's",因为它有更多的属性。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams=new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
requestparams.put("LineIDs", "");
}
希望下面的代码能解决您的问题。
@Test
public void TransferIn() {
RestAssured.baseURI="testurl.rest.com";
RequestSpecification httpRequest = RestAssured.given();
JSONObject requestparams = new JSONObject();
JSONArray lineIdsArray = new JSONArray();
JSONObject lineIdObject = new JSONObject();
try {
requestparams.put("ShipmentID", "");
requestparams.put("ShipmentNumber", "123455-6");
requestparams.put("Comments", "");
lineIdObject.put("ShipmentDID", "");
lineIdObject.put("AssetNum", "759585");
lineIdObject.put("FileC", "");
lineIdObject.put("SerialN", "");
lineIdObject.put("LineID", "5");
lineIdObject.put("Status", "Accept");
lineIdObject.put("TransferCancelComment", "");
lineIdsArray.put(lineIdObject);
requestparams.put("LineIDs", lineIdsArray);
} catch (JSONException e) {
}
System.out.println(requestparams);
}
更好的方法是,从 POJO/model 文件构造 json,然后将其传递给测试。通过这种方式,意图有了明确的分离,将来如果您想验证该类型的任何响应,您可以简单地反序列化并使用 POJO 的 getter 获取值。
例如,如果您的 json 是
{
"name":"Mohan",
"age":21
}
您的 POJO 如下所示:
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("name")
@Expose
private String name;
@SerializedName("age")
@Expose
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
我正在使用来自 google 的 GSON,它是序列化和反序列化库。使用您的 POJO 构造您的有效负载并将其作为参数传递给您的测试方法。 这将使您的代码更具可读性、可维护性和可扩展性....
这背后的想法是测试的意图不应该被污染,并且不同实体的职责之间会有明确的分离。