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

如何发布下面的请求使用在硒中重新保证

汝弘深
2023-03-14

如何使用selenium中的RestAssured发布以下请求。

请求如下:

{
  "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", "");

  }

共有3个答案

史飞尘
2023-03-14

如果你的儿子是

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

}

我使用谷歌的GSON,这是序列化和去序列化库。使用POJO构建有效载荷,并将其作为参数传递给测试方法。这将使您的代码更具可读性、可维护性和可伸缩性......

这背后的想法是,测试的目的不应受到污染,不同实体的责任将有明确的分离。

周承天
2023-03-14

更好的方法是,从POJO/模型文件构造json,然后将其传递给测试。通过这种方式,可以明确区分意图,并且在将来,如果您想要验证该类型的任何响应,您可以简单地反序列化并使用POJO的getter获取值。

狄承望
2023-03-14

希望下面的代码能解决您的问题。

    @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);
}
 类似资料:
  • 问题内容: 我读了一些将jsons发布到服务器的示例。 有人说: OkHttp是Java提供的HttpUrlConnection接口的实现。它提供用于编写​​内容的输入流,并且不知道(或不在乎)内容的格式。 现在,我想用名称和密码的参数对URL进行常规发布。 这意味着我需要自己将名称和值对编码为流? 问题答案: 当前接受的答案已过期。现在,如果您想创建一个发布请求并向其中添加参数,则应该使用Mul

  • 问题内容: 我有类似以下内容: 它不断返回500。服务提供商说我需要发送JSON。Apache HttpClient 3.1+如何完成? 问题答案: Apache HttpClient对JSON一无所知,因此您需要分别构造JSON。为此,我建议从json.org检出简单的JSON- java 库。(如果“ JSON- java”不适合您,则json.org列出了大量可用不同语言提供的库。) 生成J

  • 问题内容: 我是Json解析的新手。我正在尝试使用读取json数据,但是在发送参数和使用POST方法时我有点困惑。在我可以发送方法类型,URL,参数的情况下,但是在如何发送诸如用户名和密码之类的参数时,我使用POST方法。请帮帮我。这是我编写的代码。 我的json数据就像: 参数未发送。请帮我解决这个问题。先感谢您。 问题答案: 当使用JsonArrayRequest和POST方法时,这解决了我传

  • 问题内容: 我想使用wget将图片(使用身份验证令牌“ AUTH_1624582364932749DFHDD”)上传到远程服务器到“ test”文件夹。 该命令不起作用(授权失败),我想确保它与语法无关: 有什么建议么? 问题答案: Wget当前仅支持x-www-form-urlencoded数据。不是用于将文件作为表单附件传输,而是需要格式为的数据。 并以相同的方式工作:唯一的不同是,您可以在命

  • 我正在尝试从一个简单的Java项目创建一个HTTP POST请求。 我需要通过两个请求保留会话和cookie,所以我选择了Apache HttpClient。 代码编译时没有错误,也没有运行,但返回的内容长度为零,我不明白为什么。 结果是: 更新:我发现响应状态是302(已找到),当我从邮递员那里做同样的请求时,它是200(OK)。 任何人都可以告诉我我的代码有什么问题吗? 谢谢

  • 问题内容: 我有多个Ajax请求每分钟都有一些请求数据,而其他请求是由用户通过ui发起的。 该请求可能由于身份验证失败而失败。我设置了一个全局方法来捕获任何失败的请求。 发现错误后,我将重置授权。重置授权是可行的,但是用户必须手动重新启动ajax调用(通过ui)。 如何使用最初发送的jqxhr重新发送失败的请求? (我将jQuery用于Ajax) 问题答案: 发现此帖子表明可以很好地解决此问题。