gatling - 每个 Gatling 请求中的唯一 ID
问题描述
def getrandomNo(): String = {
return ((rnd.nextDouble() * (1000000.0)).toLong).toString
}
scenario("scn getart).during(test_duration minutes) {
exec(actionBuilder = http("req getart")
.post(apiurl)
.header("txn-id", getrandomNo()+"_getart")
.body(apibody)
}
在上面的代码示例中,尝试为每个请求生成唯一的 txn-id。但是,观察到它重复使用相同的数字导致重复。此外,我尝试使用以下内容根据当前时间生成,但在 1 秒内触发超过 1 个请求时仍然会导致重复。
def getTxnId(): String = {
"PerfTest_" + System.currentTimeMillis().toString+ getrandomNo()
}
无论并发性如何,是否有任何替代解决方案可以为每个请求生成唯一 ID?
提前致谢。
解决方案
这不起作用,因为getrandomNo
在构建模拟时只调用一次。如果你不想传递一个值,但是你想在每次执行时执行一些代码,你必须传递一个函数:
.header("txn-id", session => getrandomNo()+"_getart")
推荐阅读
- html - CSS页脚不粘并浮动到底部
- c# - MVVMLight C# 如何更改按钮内容
- r - 转换为纯 Markdown 时,不要在 rmarkdown 文档中呈现方程式
- python - Python 遍历产生列表的异步生成器
- python - 如何在 kaggle 中解压缩 cat-vs-dogs 数据?
- c - 将字符串文字复制到 uint32_t 数组并访问它
- react-native - 更新由管理的视图的属性“背景颜色”时出错:RNCardView - React Native
- javascript - Firebase 身份验证 - 用户注销时不会调用 onAuthStateChanged (JS)
- wordpress - WordPress Nextend 社交登录插件 Facebook 登录 - 应用验证
- java - 我怎样才能避免内循环