我正在尝试使用Rest-Asure和Java为GET API创建测试自动化。
此API具有以下响应主体:
{
"items": [
{
"id": "3185",
"customer_id": "299",
"region": "São Paulo",
"region_id": 1234,
"country_id": "BR",
"street": [
"Av Paulista"
],
"company": "Teste",
"telephone": "(19) 99999-9999",
"postcode": "",
"city": "Valinhos",
"firstname": "N/A",
"lastname": "N/A",
"middlename": null,
"prefix": null,
"suffix": null,
"person_type": "PF",
"document": "43448871703",
"state_registry": null,
"created_at": "2019-07-24 13:03:29"
},
{
"id": "3188",
"customer_id": "299",
"region": "São Paulo",
"region_id": 1234,
"country_id": "BR",
"street": [
"Av Paulista"
],
"company": "Teste",
"telephone": "(19) 99999-9999",
"postcode": "",
"city": "Valinhos",
"firstname": "N/A",
"lastname": "N/A",
"middlename": null,
"prefix": null,
"suffix": null,
"person_type": "PJ",
"document": "84047942000115",
"state_registry": null,
"created_at": "2019-07-24 13:03:30"
}
]
}
在此API响应中有两个同名“id”的字段。如何获取这两个字段的值?
谢谢
由于您使用的是REST保证,因此您可以直接从响应本身中提取您想要的内容,如下所示:
List<Integer> = given()
.spec(yourRequestSpecification)
.get("/your_api_endpoint") // returns Response
.then() // returns ValidatableResponse
.extract() // returns ExtractableResponse
.path("items.id"); // Groovy GPath syntax
Jayway的jsonpath和REST assured的jsonpath使用不同的语法
您可以通过使用JsonPath:$. item[*]. id
轻松做到这一点,这将为您提供两个id。
看看这篇文章:https://techeplanet.com/parse-json-array-using-rest-assured/
@Test
public void verifyJSONArrayResponse() {
JsonArray jsonArray = new JsonArray();
jsonArray = given().baseUri("http://<your host>")
.basePath("<your path>")
.get().as(JsonArray.class);
for (int i = 0; i < jsonArray.size(); i++) {
JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
System.out.println(jsonObject.get("id").getAsString());
}
}
不过,您需要对其进行一些调整,以便首先从顶级响应对象中提取项
。
我已经使用登录API在Jmeter中进行了测试。 为此,我通过了以下请求: 帖子网址:......POST数据参数:"电子邮件地址":"a@gmail.com","密码":"ad332017" 对于上述要求,我得到两种不同的答复。 邮递员:我收到回复,状态代码200 OK(这也是预期的) 在Jmeter上,我得到响应:响应代码:307响应消息:临时重定向。 谁能帮我解决这个问题?
我在用放心做API自动化。我想从API响应中获取值并传递给另一个java类, 这是我的测试类, 如何将此方法更改为另一种类型的无效值,或者如何在另一个java类中传递人员引用值
我有两个外部模型相同的API,所以我为外部模型(ResponseModel)和结果键创建了一个模型类,我为结果键创建了一个名为ResultModel的类,所以我可能能够编写结果键上可能出现的所有响应 在这里,我添加了ResultModel结果键中可能的响应,将给出国家列表或州列表 CountryList API 1结果 状态列表API 2结果 我遵循这个结构来重用外部模型。但它不起作用 不管怎样,
我们公司有两个jira装置。一个用于我们的项目,另一个用于测试目的。 我在一个需要使用JIRA REST应用编程接口的项目中工作。为此,我连接到我们的测试实例。 问题是,在尝试REST API时,我不断收到400个错误,而没有一个错误的解释。我只是得到了一个HTML 您的浏览器发送了此服务器无法理解的请求 我有点绝望,决定把它放进我们真正的JIRA。令我惊讶的是,同样的要求给了我不同的回应: 在这
问题内容: 我需要使用Cookie在两个不同的域之间共享SSO信息,这可以在PHP中完成吗? 问题答案: 在两个域上,放置从另一个域提取的图像或其他Web元素。使用URL通知另一个域用户X在域A上,并让域B将该用户ID与该用户在其系统上关联。 正确执行起来有点复杂,但是如果您认为通过它会很好地进行。 Vinko在评论中(感谢!)指出,我不认为您了解所涉及的安全风险是理所当然的。如果此信息对任何人都
我在这里看到了你们为下面给出的链接提供解决方案的帖子。ElasticSearch Java API从查询生成器中获取不同的值 有没有办法通过?你能帮我解决这个问题吗?我试了很多方法,但都没能解决。但我可以在SQL Workbench中实现同样的功能,下面使用Kibana translator给出了等效的json查询。 等效Elasticsearch查询如下: 所以现在我想形成这个JSON查询使用R