header(“ Accept”,“ application / json; v = 1”)在加特林测试中不起作用?

时间:2018-09-24 15:02:51

标签: performance-testing gatling scala-gatling

由于某些原因

http("Update WishList")
.put("/api/update/${id}")
.header("Accept", "application/json;v=1")
.body(ELFileBody("bodies.json")).asJSON
.check(status.is(200))

导致> status.find.is(202), but actually found 406

但是我知道该服务需要"application/json;v=1"

使用Fiddler检查了实际请求,发现Accept标头是"application/json"而不是"application/json;v=1"

我想念什么吗?

2 个答案:

答案 0 :(得分:2)

asJSON构造的目的是自动将请求的Accept标头强制为application/json,从而覆盖您的初始标头。

只需删除asJSON,就可以了。

答案 1 :(得分:0)

尝试以下方法:

var httpConf = http.baseURL("http://example.com")
.header("Accept", "application/json;v=1")

var testSetup = setUp(testScenario.inject(virtualUsers).protocols(httpConf))

对我来说,它发送了相关的标头:

Gatling Taurus Header

加特林版本为2.3.0


该配置是由Taurus工具使用以下YAML语法生成的:

execution:
- executor: gatling
iterations: 1
concurrency: 1
ramp-up: 1
hold-for: 1
scenario: some_scenario

scenarios:
some_scenario:
default-address: example.com
headers:
Accept: application/json;v=1
requests:
- url: /
      follow-redirect: false