【问题标题】:Getting the status of the previous teststep in a SoapUI Groovy step在 SoapUI Groovy 步骤中获取上一个测试步骤的状态
【发布时间】:2016-03-04 11:54:30
【问题描述】:

我设置了以下测试用例:

Datasource
 Soap Request
 Groovy Script
Datasource loop

我想使用 Groovy Script 测试步骤获取 SoapRequest 测试步骤的状态。

如下图所示:

myTestStepResult = testRunner.runTestStepByName("Soap Request")
myStatus = myTestStepResult.getStatus()

但我不想通过脚本运行TestStep,而只是使用soapui testrunner。 在数据接收器测试步骤中,我可以使用它:

${=testRunner.results[testRunner.results.size()-1].status}

不幸的是,上述方法在 GroovyScript TestStep 中不起作用

有什么想法吗?

【问题讨论】:

  • Han van Oostende,您的意思是要使用硬编码的步骤名称吗?请另外澄清?
  • 另外,没有得到 - “但我不想通过脚本运行 TestStep,而只是使用 soapui testrunner。”。你能澄清一下吗?
  • 希望这澄清:我想运行测试用例不使用 groovyscript testrunner.runTestStepByName
  • 搞砸了最后一条评论:希望这可以澄清:我注意到如果我使用 [Groovy Script] myTestStepResult = testRunner.runTestStepByName("Soap Request") myStatus = myTestStepResult.getStatus() 它将运行testStep soapRequest 一次到达 Soap Request 步骤,第二次到达 Groovy 脚本,它调用 testRunner.runTestStepByName("Soap Request") 我只想要第一次调用的状态(当它运行测试用例时)

标签: groovy soapui status


【解决方案1】:

可以在不使用测试步骤名称的情况下运行测试步骤并根据需要获取状态。并假设测试步骤顺序没有变化,即Soap Request步骤始终是Groovy Script步骤的前一步,两者之间没有其他步骤。

Groovy 脚本:

log.info testRunner.runTestStep(context.testCase.testStepList[context.currentStepIndex - 1]).status

【讨论】:

  • 如果可行,我会尝试一下并报告,谢谢!
【解决方案2】:

为避免必须(再次)运行测试步骤,请尝试以下操作:

results = testRunner.getResults()
status = results.get(results.size() - 1).getStatus()
log.info status

运行测试用例后,脚本日志应该会显示上一个测试步骤的状态。

请注意,运行测试用例时必须执行包含代码的 Groovy Script 测试步骤。如果您只运行测试步骤,您将收到以下错误:

(java.lang.ArrayIndexOutOfBoundsException)

这很正常,因为如果列表为空,您将无法获取 results.size()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多