groovy 如何将随机参数传递给SOAPUI中的响应,该参数每n次调用就会发生变化

jei2mxaa  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(126)

我是soapui的新手。我为一个服务存根做逻辑,遇到了一个问题。
我有一个简单的服务存根,它返回一个带有随机数的参数(在groovy语言的答案中它是随机的),但问题是这个数字在每个会话中使用2次,并且不能改变,否则会话将失败。我如何将一个随机数传递给下一个响应,然后再开始随机化等等?
我在互联网上找不到任何与我的案例类似的东西,所以我在这里提出这个问题。在soapui中实现这一点是否可能,例如通过TestSuite和Groove脚本?
我在响应脚本中使用Groovy代码生成随机数:
requestContext.actreq = (10000000 + Math.abs(new Random().nextInt() % 9999999));
然后在响应中替换为${actreq}
如果生成了数字100001,那么我想把它传递给下两个响应。为了使Random每2次迭代工作一次。

owfi6suc

owfi6suc1#

你可以试试这个方法

class Glob{
   static long callCount=0
   static long randValue=0
   static long rand(){
      callCount ++
      if(callCount % 2 == 1){
        randValue = (10000000 + Math.abs(new Random().nextInt() % 9999999))
      }
      return randValue
   }
}

requestContext.actreq = Glob.rand()

或者官方的方式https://www.soapui.org/docs/functional-testing/working-with-scripts/

  • 使用设置脚本分配context变量
  • 在脚本中,你可以像我在上面的代码中那样访问这些变量,以增加调用计数,并在需要时重新计算随机数...

相关问题