这里是 K6 新手,目前正在为我们拥有的 API 进行负载测试场景。
This is a request I am using to hit an API endpoint.
const request1 = {
method: "POST",
url: endpointUrl,
body: requestBody,
params: {
headers: {
"Content-Type": "application/json",
"custom-header-1": 'value1',
"custom-header-2": 'value2',
"Accept": "application/json"
}
}
};
const responses = http.batch([request1])
如果我使用
http.post
执行此请求,一切都会按预期进行。
但是使用
http.batch
,我总是从服务器返回 415 Media type unsupported
。当使用 Wireshark
检查发送到我的 API 的请求时,我可以看到发送的 content-type
是 x-www-form-urlencoded
类型,而不是我的请求中定义的 application/json
类型。我发送的两个自定义标头值也不可见。
基于他们的示例页面K6批次,我也尝试过通过内联定义请求,但结果是相同的。
我的脚本中缺少什么,导致我的自定义
content-type
没有被批处理函数拾取?正如您所看到的,有一个 Requestheaders
标头是一个对象,但这些值实际上应该应用于请求级别。
谢谢你。
通过提供
content-type
作为 params.headers
对象的一部分,我希望该值能够传递到请求。
我发送的
requestBody
是一个 Json
对象,就像他们的示例页面上的对象一样。
解决方案是用 Json.stringify(requestBody)
来调用该函数。