gatling - 记录完成场景执行所花费的时间
问题描述
我有一个 Gatling 测试场景,我正在为 n 个用户运行。我有一个要求,我需要记录完成执行“n”个用户所花费的总时间,并将其存储在一个值中以将其传递给下一个场景。如何实施?
我的代码片段:
def createData() = {
feed(customFeeder).exec(http("create data").post("/datasets").header("content-type", "application/json")
.body(StringBody("""{ "name": "${name}","description": "create dataset"}"""))
.asJson.check(jsonPath("$.id").saveAs("userId")))
.exec(session => {
val name = session("name").asOption[String]
println("Dataset name ::: "+name.getOrElse("COULD NOT FIND NAME"))
val datasetId = session("userId").as[String].trim
println("Dataset ID retrieved from createDataSet Response ::: "+ datasetId)
val datasetIdList = session("datasetIdList").asOption[List[String]].getOrElse(Nil)
println("Upload Start Time :::"+Calendar.getInstance().getTime)
// add above datasetId, upload start time to the map
session.set("datasetIdList", userId :: datasetIdList)
})
}
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/File.csv")
.header("content-type","multipart/form-data")
.check(status is 200).check(status.saveAs("uploadStatus")))
.exec(session => {
// retrieve the upload time by datasetId from map above
session
})
}
val scn1 = scenario("create multiple datasets and upload").exec(createDatasetsAndUpload()).exec(fileUpload())
setUp(scn1.inject(atOnceUsers(3))).protocols(httpConf)
我在这里进行顺序调用,我们将仅在第一个场景完成后才进行第二个调用,因此我需要记录完成 createData() 场景所需的时间,并在下一个 fileUpload() 场景中使用该时间。如果我只在所有执行完成后才执行它。
解决方案
推荐阅读
- ruby-on-rails - 设计覆盖自定义电子邮件视图
- c# - .Select() 中的多个元素
- node.js - Nestjs/Typeorm 正在将“_rid”添加到我的关系名称中
- swift - 在 NavigationView 中使用函数会引发错误:无法将“AnyView.Type”类型的返回表达式转换为“AnyView”类型
- matlab - 将数字添加到单元格字符串
- sql - 通过 ID 变量在 SQL 组中创建标志
- node.js - 如何检测所有连接到voiceChannel的用户| 不和谐.js
- git - 在这种情况下 git rebase 会返回相同的哈希吗?
- python - 美丽的汤提取多个链接(如果可用)
- git - github:每次我变基时,意外和已经合并的文件都会出现在我的拉取请求中