将JSON字符串作为输入传递给带有Selenium的RESTAssured中POST请求正文的参数之一

萨朗123:

我正在Selenium中使用RESTAssured Java库进行API测试自动化。我需要将json字符串作为值传递给POST请求正文的一个参数。我的请求正文如下所示:

{
  "parameter1": "abc",
  "parameter2": "def",
  "parameter3": {
    "id": "",
    "key1": "test123",
    "prod1": {
      "id": "",
      "key3": "test123",
      "key4": "12334",
      "key5": "3",
      "key6": "234334"
    },
    "prod2": {
      "id": "",
      "key7": "test234",
      "key8": "1",
      "key9": true
    }
  },
  "parameter4": false,
  "parameter5": "ghi"
}

对于parameter3,我需要传递json格式的字符串值。json文件位于我的本地系统中,并且是一个巨大的文件,因此如果我可以将路径传递给json文件,这将是有意义的。

有什么方法可以使用RestAssured来实现这一目标?

kaweesha:

使用org.json库;

读取json文件并获取为字符串

String content = "";
try {
    content = new String(Files.readAllBytes(Paths.get("absolute_path_to_file\\example.json")));
} catch (IOException e) {
    e.printStackTrace();
}

将字符串转换为JSONObject

JSONObject jsonObject = new JSONObject(content);

获取需要放入的新json对象 jsonObject

String jsonString = "{\n" +
        "  \"firstName\": \"John\",\n" +
        "  \"lastName\" : \"doe\",\n" +
        "  \"age\"      : 26,\n" +
        "  \"address\"  : {\n" +
        "    \"streetAddress\": \"naist street\",\n" +
        "    \"city\"         : \"Nara\",\n" +
        "    \"postalCode\"   : \"630-0192\"\n" +
        "  }\n" +
        "}";

JSONObject updateObject = new JSONObject(jsonString);

parameter3用new 替换值updateObject

jsonObject.put("parameter3", updateObject);

System.out.println(jsonObject.toString());

如果要美化打印输出;

{
  "parameter5": "ghi",
  "parameter4": false,
  "parameter3": {
    "firstName": "John",
    "lastName": "doe",
    "address": {
      "streetAddress": "naist street",
      "city": "Nara",
      "postalCode": "630-0192"
    },
    "age": 26
  },
  "parameter2": "def",
  "parameter1": "abc"
}

如果您想更新像一个嵌套的JSON对象prod1parameter3

JSONObject parameter3JsonObject = jsonObject.getJSONObject("parameter3");
parameter3JsonObject.put("prod1", updateObject);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将xargs参数作为字符串传递给带有'>'的另一个命令?

如何将 JSON 字符串作为请求参数传递给其他服务

如何将json字符串作为输入参数发送到android中的POST请求

如何将字符串数组传递给json格式的请求正文[put request]

为什么将传递给方法的字符串文字更改为参数之一?

为什么 POST 请求正文中的字符串带有额外的引号而不是 JSON 对象

将带有参数作为字符串的命令传递给docker run

将带有破折号的字符串作为参数传递给Trollop

将字符串作为键参数传递给函数

将空格字符串作为参数传递给函数

将字符串作为参数传递给 python 脚本

将JSON字符串作为输入传递给AWS命令

将变量传递到JSON请求正文的逐字字符串文字中

HTML脚本将字符串作为字符串传递给Json并传递给Java

将json字符串作为参数传递给ng-click

将JSON参数作为字符串传递给python hadoop流应用程序

如何将JSON字符串作为查询参数传递给API Gateway

将字符串作为函数中的参数传递给 R 中的其他函数

如何将Swift字符串数组传递给带有char **参数的C函数

将字符串参数传递给函数作为dplyr中的数据框列名称

将php字符串作为参数传递给php脚本中调用的javascript函数

将字符串作为参数传递给BASH中的空格

如何将字符串作为参数传递给需要R中的变量的函数

将数据作为字符串传递给 Python 中的 argparse:无法识别的参数

BASH:如何将数组中的字符串作为参数传递给命令?

如何根据日期输入将12个字符串之一传递给模式?

将在一个函数中创建的字符串值作为参数传递给函数

Volley字符串请求错误,同时将具有空值的字符串作为参数传递

在Jenkins中,如何将Web请求正文作为参数传递给Powershell脚本?