当前位置: 首页 > 知识库问答 >
问题:

每个Gatling请求中的唯一ID

曹浩
2023-03-14
  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,而不管并发情况如何?

提前感谢。

共有1个答案

梁和颂
2023-03-14

这不起作用,因为您的getAnywhere No在构建模拟时只调用一次。如果您不想传递一个值,但希望在每次执行时执行一段代码,则必须传递一个函数:

scala prettyprint-override">.header("txn-id", session => getrandomNo()+"_getart")
 类似资料:
  • 我正在使用SoapUI的开源版本进行一些SOAP Web服务负载测试。 我希望每个请求与以前的请求尽可能不同,我不希望使用相同的属性进行负载测试。 我有一个属性文件,它有几个属性,每个属性值都调用groovy脚本从文件中读取一个随机值,并将其分配给测试用例属性,即在值字段中: <代码>${=(DynamicPropertyScript)} 脚本: 如果我在测试用例开始时调用这个脚本,那么这个脚本工

  • 我正在使用Gatling测试一个系统,该系统需要2个连续的Post请求,例如R1和R2。这些Post请求有不同的Json请求体,但有一个公共密钥“ID”。因此,一个用户应该按顺序执行R1-R2,并且每个用户应该生成一个新的随机ID。在R1中生成的这个ID应该传递给R2,因此作为ID密钥的值添加到其请求体中。 根据R1请求,在馈线内部生成随机ID: 现在,在R2中,我想输入的是R1的输入端内部生成的

  • 我正在尝试进行一个模拟,其中Gatling中的每个虚拟用户都有一个唯一的登录/身份验证,并执行我记录和编码的一系列操作。但我正在努力正确设置授权。这是我的代码 因此,当我在静态声明中提供用户名和密码时(我已经注释掉了.basicAuth行),它就可以工作了。然而,就服务器而言,gatling创建的每个虚拟用户都是相同的用户。如果我运行我在这里添加的代码,我的所有请求都会得到http 401s,这是

  • 问题内容: 我们有一个weblogic批处理应用程序,它可以同时处理来自使用者的多个请求。我们使用log4j记录目的。现在,我们登录到单个日志文件以处理多个请求。调试给定请求的问题变得很麻烦,因为所有请求都将日志记录在一个文件中。 因此,计划是每个请求只有一个日志文件。使用者发送一个请求ID,必须对其进行处理。现在,实际上可能有多个使用者将请求ID发送到我们的应用程序。因此,问题是如何根据请求隔离

  • 为什么这是一个好主意呢?您通过使用这种方法获得了什么好处?在某些情况下,这会是一个好主意吗?在每个存储库方法调用实例化时,您是否可以使用这种技术做一些不能做的事情?

  • 为什么首先这是一个好主意?通过使用这种方法,您获得了哪些优势?在某些情况下,这是一个好主意吗?在每个存储库方法调用实例化s时,使用此技术是否可以执行一些不能执行的操作?