我想在用户每次注入Gatling时更改标头值。因为运行代码时我的代码有错误。错误是“签名已过期:20200124T170359Z现在早于20200124T170552Z(20200124T172052Z-15分钟。”。我的代码是
val signer: AwsSigner = AwsSigner(AwsCredentialsProviderWithSession, region, Service, clock)
val signedHeaders = signer.getSignedHeaders(Uri, PostMethod, queryParams, headers, emptyPayload)
val scen =scenario("Home page").repeat(100) {
.exec(
http("Custom headers")
.get("https://sqs." + region + ".amazonaws.com"+"/809166105827/ACP-CS-DEV-VA6-WorkerQueueService-QueueServiceTestClient"+"?Action=SendMessage&MessageBody=" + queryEnc)
.headers(signedHeaders)
setUp(
sendLoadToAws.scen.inject(rampUsersPerSec(10) to 15 during (60))
)
您需要使用feed,有文档https://gatling.io/docs/current/session/feeder/。
因此,第一个创建此提要
val signedHeaders = {
val signedHeaders = signer.getSignedHeaders(Uri, PostMethod, queryParams, headers, emptyPayload)
Iterator.continually(Map(
"header_1" -> signedHeaders.header_1,
"header_2" -> signedHeaders.header_2
}
现在需要为您的方案添加提要
.feed(signedHeaders)
.exec(
http("Custom headers")
.get("https://sqs." + region + ".amazonaws.com"+/809166105827/ACP-CS-DEV-VA6-WorkerQueueService-QueueServiceTestClient+"?Action=SendMessage&MessageBody=" + queryEnc)
最后添加标题以请求
.feed(signedHeaders)
.exec(
http("Custom headers")
.get("https://sqs." + region + ".amazonaws.com"+/809166105827/ACP-CS-DEV-VA6-WorkerQueueService-QueueServiceTestClient+"?Action=SendMessage&MessageBody=" + queryEnc)
.header("header_name_1", "${header_1}")
.header("header_name_2", "${header_2}")