当前位置: 首页 > 知识库问答 >
问题:

基于testSuite属性在SoapUI中运行特定的测试步骤

郁鸿博
2023-03-14

我是脚本新手,需要一些帮助。我有一个关于SoapUI Groovy脚本的问题,我可以使用帮助。

我需要一个脚本,让我在基于testSuite属性值的测试用例中运行特定的测试步骤(“CC1”是属性的名称),有5种可能性。我猜switch/case可以用,但是不知道怎么写才合适。

当时我试着用这个:

def CC1 = testRunner.testCase.testSuite.getPropertyValue("CC1")
log.info testRunner.testCase.testSuite.getPropertyValue("CC1")

switch(CC1)  
{  
  case ~/^[H1]+$/: testRunner.runTestStepByName( "PT02_H1" ); break;  
  case ~/^[Y5]+$/: testRunner.runTestStepByName( "PT02_Y5" ); break;  
  case ~/^[Q2]+$/: testRunner.runTestStepByName( "PT02_Q2" ); break;  
  case ~/^[T5]+$/: testRunner.runTestStepByName( "PT02_T5" ); break;  
  default : testRunner.runTestStepByName( "PT02_AQ" );  
}

但没有达到预期的步骤。

有人可以帮我解决这个问题吗?

共有1个答案

申屠浩歌
2023-03-14

尝试以下脚本(从 groovyTestStep 运行):

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context );
def testCase = testRunner.testCase;
def testStep = null;
def CC1 = testRunner.testCase.testSuite.getPropertyValue("CC1")
log.info testRunner.testCase.testSuite.getPropertyValue("CC1")

switch(CC1)  
{  
  case ~/^[H1]+$/: testStep = testCase.getTestStepByName( "PT02_H1" ); break;  
  case ~/^[Y5]+$/: testStep = testCase.getTestStepByName( "PT02_Y5" ); break;  
  case ~/^[Q2]+$/: testStep = testCase.getTestStepByName( "PT02_Q2" ); break;  
  case ~/^[T5]+$/: testStep = testCase.getTestStepByName( "PT02_T5" ); break;  
  default : testStep = testCase.getTestStepByName( "PT02_AQ" );  
}
testRunner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner(testCase, null);
testStepContext = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext(testStep);
testStep.run(testRunner, testStepContext);
log.info "TEST OK:"+testStep.getName();
 类似资料:
  • 我想使用maven命令从命令行运行一个特定的测试套件。我使用的是TestNg框架。 我的pom有以下配置设置: 在我正在运行的命令行上:

  • 假设我有一个名为Ben的属性文件,其中包含以下属性: 我通过在测试步骤中键入其相对路径手动将此属性文件导入属性测试步骤。然后我有一个测试用例,它从文件中输入名称并确保它返回的输出是正确的头发和眼睛。现在,我想测试的不仅仅是一个人。假设我有另一个名为Jake的属性文件: 如果我想切换属性文件,我知道的唯一方法是在我想运行新测试时手动输入该属性文件的路径。我有没有办法实现一个Groovy脚本,在属性测

  • 我使用的是免费(非专业)SoapUI 5.0,我在测试套件中有一个属性列表。然后,我有许多测试步骤,每个步骤与测试套件属性具有相同的名称。 我试图在测试步骤属性中编写Groovy脚本,以检索同名的测试套件属性的值。 例如: 测试套件的属性颜色为\u红色,值为12345 到目前为止,我在“info”属性值中拥有什么: 我不确定我是否需要新的GroovyShell()。评估位,但没有它仍然不起作用。我

  • 我能够在我的测试套件 (TS1) 中运行一个测试用例拆解脚本,该脚本使用以下时髦脚本从另一个测试套件 (TS2) 运行测试步骤: 但是由于这个测试步骤应该为TS1中的所有测试用例运行,我需要为每个测试用例添加拆卸脚本,这有点麻烦。 我想知道我是否可以直接从testsuite teardown脚本中实现同样的事情,这将为我节省大量的脚本维护。 不幸的是,testrunner对象在testsuite级

  • 当我通过命令提示符从本地设置运行构建时,我给出命令“mvn eviware:maven-soapui-plugin:test”,它执行位于/src/test/SoapUI文件夹中的SoapUI TestSuite。关于詹金斯..我不知道詹金斯必须在哪里输入这个命令才能执行它。

  • 它在Jenkins slave上工作得很好,但我想为SOAPUI测试用例添加另一个Jenkins slave。但是相同的windows批处理命令在新机器上不起作用。 我在机器上的Jenkins控制台输出中得到以下消息: 我需要在那台机器上设置什么才能使它工作吗? 最后一次编辑:在我们公司,我们有有限的用户帐户。所以我不得不把这个任务交给管理员。他在奴隶身上设置了一些东西,现在对两个奴隶都起同样的作