K6 使用“批量”进行负载测试,未发送正确的请求标头

问题描述 投票:0回答:1

这里是 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
对象的一部分,我希望该值能够传递到请求。

load-testing k6
1个回答
0
投票

我发送的

requestBody
是一个
Json
对象,就像他们的示例页面上的对象一样。 解决方案是用
Json.stringify(requestBody)
来调用该函数。

© www.soinside.com 2019 - 2024. All rights reserved.