ReadyAPI 3.5.0:如何通过Groovy脚本彻底终止TestSuite运行?
在ReadyAPI 3.5.0中通过Groovy脚本终止整个TestSuite运行的方法
可以彻底终止整个TestSuite的运行,你当前使用的testRunner.cancel()仅能终止当前TestCase,要终止整个TestSuite,需要调用TestSuite级别的取消方法。
具体实现方案
方法1:在错误触发点直接终止TestSuite
在跳转至Error_OccuredTestCase后,直接调用当前TestSuite的cancel()方法,这样TestSuite后续的所有TestCase都不会再执行:
修改你第一个代码块如下:
if ( testRunner.testCase.testSuite.project.getPropertyValue( "EtapeX_succesfully" ) =='Oui' ) { //do some logging later } else { // 连接到目标项目中的错误处理TestCase project = testRunner.getTestCase().getTestSuite().getProject().getWorkspace().getProjectByName("End_To_End_X") testSuite = project.getTestSuiteByName("Test_Steps"); testCase = testSuite.getTestCaseByName("Error_Occured"); runner = testCase.run(new com.eviware.soapui.support.types.StringToObjectMap(), false); // 终止当前所在的TestSuite testRunner.testCase.testSuite.cancel() }
方法2:在Error_OccuredTestCase中终止原TestSuite
如果你希望在错误处理TestCase完成文件复制后再终止原TestSuite,需要先获取原TestSuite的实例并调用cancel()。假设原TestSuite位于当前项目中,修改第二个代码块如下(注意修正路径转义问题):
import org.apache.commons.io.FileUtils import java.nio.file.Path import java.nio.file.Paths import java.nio.file.Files import static java.nio.file.StandardCopyOption.*; import java.nio.* import java.nio.file.* String source = "\\networkPAth1\\someFolderX"; String destination = "\\networkPAth1\\someFolderY"; CopyOption opt = REPLACE_EXISTING Path sourceLOG= Paths.get(source) Path targetLOG = Paths.get(destination) Files.copy(sourceLOG, targetLOG, opt) // 获取原TestSuite并终止其运行(替换为你的原TestSuite名称) def originalTestSuite = testRunner.testCase.testSuite.project.getTestSuiteByName("你的原TestSuite名称") originalTestSuite.cancel() // 同时终止当前Error_Occured的TestCase(可选) testRunner.cancel()
关键说明
testRunner.cancel():仅终止当前正在执行的TestCase,TestSuite会继续执行后续的TestCase。testSuite.cancel():终止整个TestSuite的运行,后续所有未执行的TestCase都会被取消,已启动的TestCase也会被终止。
内容的提问来源于stack exchange,提问作者Simix48
相关产品推荐
相关产品推荐

