SoapUI

时间:2017-04-07 16:23:02

标签: php groovy soapui

在SoapUI(专业版)中,我有12个测试步骤:

  1. GET请求
  2. Groovy脚本从上一步的响应中获取total
  3. 属性
  4. 属性转移
  5. POST请求1
  6. POST请求2
  7. POST请求3
  8. POST请求4
  9. POST请求5
  10. POST请求6
  11. POST请求7
  12. POST请求8
  13. 所有POST次请求都有ID个参数。

    问题:

    如何编写像这样的Groovy脚本或者另一种决策方式:

    if total = 8 then set ID parameters of POST 1 = 1,POST 2 = 1,POST 3 = 1,POST 4 = 1,POST 5 = 1,POST 6 = 1,POST 7 = 1,POST 8 = 1
    if total = 7 then set ID parameters of POST 1 = 2,POST 2 = 1,POST 3 = 1,POST 4 = 1,POST 5 = 1,POST 6 = 1,POST 7 = 1
    if total = 6 then set ID parameters of POST 1 = 2,POST 2 = 2,POST 3 = 1,POST 4 = 1,POST 5 = 1,POST 6 = 1
    if total = 5 then set ID parameters of POST 1 = 2,POST 2 = 2,POST 3 = 2,POST 4 = 1,POST 5 = 1
    if total = 4 then set ID parameters of POST 1 = 2,POST 2 = 2,POST 3 = 2,POST 4 = 2
    if total = 3 then set ID parameters of POST 1 = 3,POST 2 = 3,POST 3 = 2
    if total = 2 then set ID parameters of POST 1 = 4,POST 2 = 4
    if total = 1 then set ID parameters of POST 1 = 8
    

1 个答案:

答案 0 :(得分:0)

You could use the following in the groovy [step 2]

def totalPostSteps = 8
def totalFromResponse = 7 //map the one you got from prev response
def postIdArray = new int[totalPostSteps]
def index = 0
1.upto (totalPostSteps,
{
    postIdArray[index]+=1;
    index = index==totalFromResponse-1?0:index+1
})
//log.info postIdArray.toString()
postIdArray.eachWithIndex{num, idx ->
     def numString = num!=0?num.toString():""
     //The next step will create/update properties in TestCase custom properties and u can map these directly to your POST requests
     //OR You can set these directly to step3 and continue with step 4
     testRunner.testCase.setPropertyValue("IdForPost_"+(idx+1), numString)
   }