【发布时间】:2019-10-16 14:09:16
【问题描述】:
我正在尝试从汽车对象中获取所有模型的计数,这是 SerenityRest 响应的一部分。
Response response = SerenityRest.rest()
.contentType("application/json")
.when()
.get("/api/");
if (response.statusCode() == 200) {
int numUniqueModels = response.body().path("cars.size()"); // 3
}
回复:
"cars": {
"Acura": [
"ILX",
"MDX",
"TLX"
],
"Audi": [
"A3",
"A4",
"A6",
"A7"
],
"BMW": [
"x",
"y"
]
}
例如,
response.body().path("cars.size()") = 3,
但我需要 cars.Acura.size() + cars.Audi.size() + cars.BMW.size() 的总和才能获得所有型号。但是,我不知道响应中是否存在 Acura、Audi 或 BMW 的确切名称,因为车辆可能会动态变化。为了解决这个问题,我需要做一些循环,其中:
sum = 0;
for (int i = 0; i < response.body().path("cars.size()"); i++) {
sum += response.body().path("cars.[i].size()");
}
总和应该给出汽车型号的总数 = 9。 问题是这种语法: path("cars.[i].size()") 不正确。正确的称呼是什么?
【问题讨论】:
-
您能否提供更大的代码示例以便我查看类型?
标签: java response rest-assured serenity-bdd