gpt4 book ai didi

json - Gatling JSON Feeder 独特的 POST 机构

转载 作者:行者123 更新时间:2023-12-03 23:15:15 54 4
gpt4 key购买 nike

我有一个包含 JSON 数组的 JSON 文件

测试文件

[
{ "Name": "Bob" },
{ "Age": "37" },
{ "DOB": "12/01/1985"}
]

我想针对端点测试 JSON 数组中的每个相应元素,以观察系统针对唯一有效负载的性能

目前我有

testService.scala
val payload = jsonFile("test.json").circular
val httpProtocol = http
.baseURL("http://test.com")
.headers(Map("Content-Type" -> "application/json"))

val scn = scenario("Test Service")
.feed(payload)
.exec(http("test_request")
.post("/v1/test")
.queryParam("key", "123")
.body()

我无法从 .body() 中的有效载荷中传递每个子项作为 JSON

Gatling Docs 说 JSON Feeder 将数组的每个元素加载到记录集合中

https://gatling.io/docs/2.3/session/feeder/

IE:
record1: Map("id" -> 19434, "foo" -> 1)
record2: Map("id" -> 19435, "foo" -> 2)

并将正文设置为 .body(StringBody("""[{"id": ${id}}]"""))
问题是我有不同的键(姓名、年龄、出生日期),我希望每个键都发送不同的请求。
.body(StringBody("""[{"KEY_NAME_HERE": ${KEY_NAME_HERE}}]"""))

我如何实现这一目标?

最佳答案

这就是我的做法:-

company_users.json.json

[
{
"env":"dev",
"userName": "a@test.com",
"password": "Qwerty!12345678"
},
{
"env":"sit",
"userName": "b@test.com",
"password": "Qwerty!12345678"
},
{
"env":"uat",
"userName": "c@test.com",
"password": "Qwerty!12345678"
},
{
"env":"prod",
"userName": "d@test.com",
"password": "Qwerty!12345678"
}
]

工作代码片段:
val jsonFileFeederCompany = jsonFile("data/company_users.json").circular

val get_company_user_token = http("Get Company Tokens")
.post(gwt_token_url)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.body(StringBody(
"""{
"env": "${env}",
"userName": "${userName}",
"password": "${password}"
}"""
)).asJson
.check(status.is(200))
.check(jsonPath("$.jwtToken").saveAs("jwtToken"))

val getCompanyUsersGwtToken = scenario("Create Company GWT token Scenario")
.feed(GetTokenRequest.jsonFileFeederCompany)
.exec(GetTokenRequest.get_company_user_token).exitHereIfFailed

这将从 json 读取每个 array[position] 并替换请求中的值,以从不同的环境中获取安全 token 。

希望这可以帮助。

问候,
维克拉姆·帕塔尼亚

关于json - Gatling JSON Feeder 独特的 POST 机构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187562/

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