在 SOAPUI Rest 测试中添加和断言随机值

Adding and asserting random value in SOAPUI Rest testing

我一直在尝试各种方法来发送随机值作为 Rest 测试用例有效负载的一部分。我还需要在返回的响应中断言该随机值。

我能够向负载添加一个随机值。但我无法在响应中断言该随机值。

以下方法我都试过了

  1. 添加一个groovy脚本并设置一个全局变量。

    def randomValue = java.util.UUID.randomUUID() com.eviware.soapui.SoapUI.globalProperties.setPropertyValue( "randomValue", 随机值 )

然后在负载中使用它作为 ${randomValue} 这样我就可以在请求和断言中访问它。 这与一个请求相得益彰。当使用大量并发请求执行负载测试时,请求具有相同的值而不是随机值。

  1. 使用属性测试步骤设置 属性。

    ${=(int)(Math.random()*100)

    这是向请求证明一个随机值。但断言随机值是新值。与请求中的不一样

非常感谢任何帮助。

你走在正确的轨道上。

从测试设置脚本中设置随机值,例如:

def randomValue // = whatever you like: UUID.randomUUID() or Math.random() work fine
testCase.setPropertyValue( "randomValue", randomValue.toString() )

这将为每个测试生成一次随机值运行。然后从你的测试的任何地方,你用 属性 扩展引用这个作为 ${#TestCase#randomValue}.

可能您需要解析和构建您的请求

  1. 使用JsonSlurperxmlSlurper解析请求
  2. 在请求中插入随机值

3.Build Json/xml 再次使用 JsonBuilder/xmlBuilder

  def builder = new JsonBuilder(your_changed_json)
  def json = builder.toPrettyString()
  json = groovy.json.StringEscapeUtils.unescapeJava(json)
  1. 将以上json/xml设置为您的要求

    step.testRequest.setRequestContent(json)