gpt4 book ai didi

java - 我如何使用 java、RestAssured 测试 Web 服务自动替换 Json 对象文件中的两个单独的 ID

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:32 27 4
gpt4 key购买 nike

我正在使用 java、RestAssured、groovy notation 等测试 Web 服务。

我有单独的模块,这些模块在传递请求方法方面相互依赖。如 POST、PUT。当我想对模块执行 POST 请求时,在 json 模式中,我必须将两个不同模块的现有 id 传递到文件中。即分别为 site_id 和 group_id 。

下面是我存储在文件中的 json 架构:

{
"site_id": 10,
"permission": "admin.client.add",
"group_id": 3
}

下面是我的代码:来 self 的页面类,就像使用页面对象框架一样。

    public String postpermission(String siteid, String grpid)
throws FileNotFoundException, IOException, ParseException {

Object obj = parser.parse(new FileReader(path
+ "/resources/permission/postpermission.json"));
String d = obj.toString();

Object objecc = parser.parse(d.replaceFirst("3", grpid));

Object objec = parser.parse(d.replaceFirst("10", siteid));
JSONObject jsonPostBody = (JSONObject) objec;

jsonPostBody = (JSONObject) objecc;

return postRequest(jsonPostBody, permissionURI, 201, "data.id",
"postpermission()", false);

}

下面是我的测试类的代码:

@Test
public void postpermission() throws FileNotFoundException, IOException,
ParseException {

String siteid = sites.postsites();
String grpid = group.postGroup();
String permid = permission.postpermission(siteid, grpid);
permission.deletepermission(permid);

}

注意:使用此代码我可以替换一个 id,但它不会替换第二个 id。请任何人都可以为我提供更好的方法来使其工作。

感谢期待。

最佳答案

需要注意的是,replaceFirst方法不会改变原来的String,而是将结果作为新的String返回。

因此,在您的情况下,您需要将第一个 replaceFirst 结果重新分配回变量 d。代码如下:

d = d.replaceFirst("3", grpid);

Object objec = parser.parse(d.replaceFirst("10", siteid));

或者您可以使用更简单的:

Object objec = parser.parse(d.replaceFirst("3", grpid).replaceFirst("10", siteid));

关于 JSON 架构(我想称之为 json 模板)的另一个建议,最好使用占位符而不是使用数字。例如

{
"site_id": {site_id},
"permission": "admin.client.add",
"group_id": {group_id}
}

您也可以查看此JSON template如果您需要在 json 模板上做更多事情,请进行项目。

关于java - 我如何使用 java、RestAssured 测试 Web 服务自动替换 Json 对象文件中的两个单独的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25164159/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com