gatling - Gatling - 在执行场景之前打印当前时间并将该值传递给下一个场景
问题描述
我正在执行 2 个连续场景,我有一个要求,我需要在第一个场景开始之前记录当前时间,然后将该时间值传递给下一个场景。有人可以建议如何实施。请检查下面我的代码
def fileUpload() = foreach("${datasetIdList}","datasetId"){
println("File Upload Start Time::::"+Calendar.getInstance().getTime+" for datasetId ::: ${datasetId}")
exec(http("file upload").post("/datasets/${datasetId}/uploadFile")
.formUpload("File","./src/test/resources/data/Scan_good.csv")
.header("content-type","multipart/form-data")
.check(status is 200).check(status.saveAs("uploadStatus")))
.exec(session => {
if(session("uploadStatus").as[Int] == 200)
counter +=1
session
})
}
def getDataSetId() = foreach("${datasetIdList}","datasetId"){
exec(http("get datasetId")
.get("/datasets/${datasetId}")
.header("content-type","application/json")
.check(status is 200)
)
我需要记录 datasetIdList 每次迭代的上传开始时间,并将该值传递给下一个场景并为每个 datasetId 打印该值。有人可以建议如何实施吗
解决方案
您可以尝试使用before
部分
package load
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class TransferTimeSimulation extends Simulation {
var beforeScn1Start: Long = 0L
before {
println("Simulation is about to start!")
beforeScn1Start = System.currentTimeMillis()
}
after {
println("Simulation is finished!")
}
val scn1 = scenario("Scenario 1").exec(
http("get google")
.get("http://google.com")
.check(status.is(200))
)
val scn2 = scenario("Scenario 2")
.exec { session =>
println("beforeScn1Start = " + beforeScn1Start)
session
}
setUp(
scn1.inject(atOnceUsers(1))
.andThen(scn2.inject(atOnceUsers(1)))
)
.protocols(http)
.maxDuration(10)
.assertions(
forAll.failedRequests.count.is(0),
)
}
为了更灵活,您还可以考虑使用惰性 val 初始化 https://www.baeldung.com/scala/lazy-val
推荐阅读
- apache-kafka - Kafa:Kafka 如何为每个消费者组存储和检索偏移量?
- delphi - 如何剪切 TStringStream 的最后 N 个字符?
- angular - Angular 的 HttpClient.get() 的承诺什么时候会被拒绝?
- javascript - 我的脚本正在发送错误:连接 ETIMEDOUT?
- node.js - node-spider 等待延迟加载内容
- python - python setup.py sdist error 此项目的版本控制需要 sdist tarball,或访问上游 git 存储库
- redis - 如何在 Ubuntu 上为 ARM 交叉编译 redis?
- css - 如何在无效日期更改 ion-datetime 中下划线的颜色?
- python - OneHotEncoder 类别参数
- android - 为什么在 RecyclerView findViewByPosition() 在 EditText 上返回 null