![](/img/trans.png)
[英]How to change Json object request in a file every POST request using Java, Restassured, groovy
[英]How can i automatically replace two separate ID's in Json object file using java, RestAssured testing web services
我正在使用Java,RestAssured,Groovy表示法等测试Web服务。
我有单独的模块,这些模块在传递请求方法方面相互依赖。 例如POST,PUT。 当我想在模块上执行POST请求时,在json模式中,我必须将来自两个不同模块的现有ID传递到文件中。 即分别为site_id和group_id。
以下是我存储在文件中的json模式:
{
"site_id": 10,
"permission": "admin.client.add",
"group_id": 3
}
下面是我的代码:来自我的Page类,就像使用Page对象框架一样。
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模板上执行更多操作,则可以签出此JSON模板项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.