SoapUI - 增加每个测试用例的属性值

时间:2016-05-13 09:14:22

标签: testing properties soapui

我想使用具有特定起始值的属性('currentId')。对于每个测试用例,该值应该增加1.我可以通过在每个测试用例中添加一个额外的测试步骤来增加值,但这将是多次复制粘贴。该代码将是(见reference):

def uniqueUserPortion = testRunner.testCase.testSuite.project.getPropertyValue("currentId")
// convert it to an Integer, and increment
def uniqueUserPortionInc = uniqueUserPortion.toInteger() + 1
// set the property back as string
testRunner.testCase.testSuite.project.setPropertyValue("currentId", uniqueUserPortionInc.toString())

为避免复制和粘贴我已将上面的代码添加到项目的加载脚本中,但它不起作用:

testSuite.testCases.each {
    *code above*
}

如果在一个脚本中使用代码/调用所有测试用例,我该怎么办? 我可以将属性定义为起始值加上测试用例ID,但这又是每个测试用例中的定义,因为我无法在项目级别/属性中引用#TestCase #ID。

1 个答案:

答案 0 :(得分:1)

您正在尝试的问题

  • 将项目导入soapui工作区时,将执行一次项目的加载脚本。所以,这种方法不起作用。
  • 正如您所正确提到的,您需要在每个测试用例的单独步骤中使用它,或者您可以添加与setup script相同的代码。是的,它只是复制粘贴

可以使用事件功能轻松使用SoapUI NG专业版。

然后您的下一个问题可能是:如何在SoapUI的开源版本中执行此操作。

这是我之前做过的soapuiExtensions,它允许您在开源版本中不必为每个测试用例复制粘贴时执行相同操作。

您需要做的就是将您的groovy脚本放入名为' TestCaseBeforeRun.groovy'的特定文件中。这意味着,在运行每个测试用例之前执行脚本。

有关详细信息,请参阅README

  

这个soapuiExtensions库允许用户在soapUI(免费版)工具中拥有一些额外的功能,比如soapui pro允许在做某事之前做某事。

     

例如:用户可能希望在运行测试用例之前或在运行测试用例等之后通过根据需要实现适当的groovy脚本来执行某些操作。请允许我在此处添加示例。通常用户可能希望自动为请求步骤添加凭据,请参阅脚本samples / scripts / TestSuiteTestStepAdded.groovy

     

如何使用此库:

     

设置SOAPUI_HOME环境变量。

     

复制$ SOAPUI_HOME / bin / ext目录下的lib / SoapUIExtListeners.jar文件

     

复制$ SOAPUI_HOME / bin / listeners目录下的samples / listeners / custom-listeners.xml文件

     

复制$ SOAPUI_HOME

下的samples / scripts目录      

并在$ SOAPUI_HOME / scripts下实现适当的groovy脚本。请参阅Mappings文件以实现相应的groovy脚本。

     

注意:对于Windows用户,您可能需要检查实际覆盖SOAPUI_HOME的%SOAPUI_HOME%\ bin \ soapui.bat,如果需要,需要修复soapui.bat脚本。

     

使用jdk 7,soapUI 4.5.1和groovy 1.8.9

     

<强>依赖

     

的log4j

更新:这适用于上面的注释。

正如笔记中提到的,soapui.bat覆盖了windows上的SOAPUI_HOME环境变量,需要稍微调整一下。可能你想复制%SOAPUI_HOME%\ bin \ scripts下的那个groovy文件(这没有调整soapui.bat)并重试。如果您的机器是linux,那么如果您复制$ SOAPUI_HOME / scripts目录下的groovy文件,它应该可以工作