arrays - Gatling:如何从数组中提取一个对象?
问题描述
我是 Gatling 和 Scala 的新手。发送 Get Request 响应正文是 Array,我只需要从 Array 中提取一个对象并将其发布到 Gatling 中。有人可以向我解释怎么做吗?
这是我的代码示例:
private val getUsers = exec(
http("Get users")
.get("/users")
.check(status.is(200))
.check(bodyString.saveAs("Users")))
我得到的结果是:
[{"id":"1","hairColor":"BROWN","age":24,"language":"English","birthDate":"1995-02-10"},
{"id":"2","hairColor":"YELLOW","age":30,"language":"Australian","birthDate":"1889-10-05"},
{"id":"3","hairColor":"BLACK","age":15,"language":"American","birthDate":"..."},
{"id":"4","hairColor":"RED","age":50,"language":"Russian","birthDate":"..."}]
如何从此数组中仅获取一个用户并发布整个用户对象?
解决方案
如果您切换到 jsonPath 检查,您可以将所有用户对象放入一个 Vector 中,该 Vector 在 Gatling EL 中有一些很好的支持
所以而不是
.check(bodyString.saveAs("Users"))
您可以使用
.check(jsonPath("$..[?(@.id)]").findAll.saveAs("Users")))
然后,当您来拨打后续电话时,您可以执行以下操作
选择第一个用户
.body(StringBody("${Body(1).jsonStringify()}"))
选择一个随机用户
.body(StringBody("${Body.random().jsonStringify()}"))
这种方法还允许您使用.forEach
来遍历所有记录
推荐阅读
- java - 图像未在特定点索引处绘制
- node.js - 在 mongoose (MERN) 中获取新创建的 mongo 文档的时间戳
- javascript - 在 JavaScript 的上下文中说“将闭包分配给变量”是否正确?
- vba - 按名称查找一些形状,按特定颜色查找其他形状并删除它们
- python - 使用 lamdba 函数根据其他列将列添加到 df > 列已生成,但值为 1:全部相同,2:内存编号
- java - Intellij Junit 导致 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效
- c# - System.Windows.Forms:由于对象的当前状态,操作无效
- c++ - 将函数放入嵌入式系统的ram中
- ios - Сannot 将“Obj”类型的值转换为预期的参数类型“Obj”
- google-cloud-platform - 创建新实例时如何防止谷歌计算创建新用户