运行 SoapUI 中的并行项目
Running parallel projects in SoapUI
我在 SoapUI 中为 运行ning 并行项目编写了一个 groovy 脚本,并将其放在名为 'Project1' 的项目的测试步骤中。我能够 运行 并行执行项目,但是当我使用批处理文件来安排执行时,它失败了。它说
"Cannot get property 'projects' on null object"
用于定义 'project1' 的行。它仍然执行第一个项目,因为 groovy 脚本位于 'Project1'.
并行执行项目的groovy脚本:
import com.eviware.soapui.model.propertyexpansion.DefaultPropertyExpansionContext
def project1=testRunner.testCase.testSuite.project.workspace.projects["Project1"]
def project2=testRunner.testCase.testSuite.project.workspace.projects["Project2"]
DefaultPropertyExpansionContext con1=new DefaultPropertyExpansionContext(project1)
DefaultPropertyExpansionContext con2=new DefaultPropertyExpansionContext(project2)
project1.run( con1,true)
project2.run( con2,true)
如果您 运行 SOAPUI
使用 testrunner.bat
的项目,您必须注意,您 运行 项目是单独的,因此您无法访问 testRunner.testCase.testSuite.project.workspace
属性。
看testrunner.bat
properties on documentation好像没有符合你要求的参数。
也许我错了,这个案例有一些东西(我不是使用 testrunner.bat
的专家),但是 运行 两个项目并行的可能解决方法是避免调用您的 groovy testStep
改为调用 testrunner.bat
两次,为每次调用指定正确的项目 xml
文件。
另一种可能的解决方法(基本相同)是修改您的 groovy
脚本以执行这两个命令(而不是从命令行调用它)。因此,您使用 testrunner.bat
执行一个项目,并使用以下 groovy testStep
脚本执行其他项目。尝试将您的 groovy 脚本修改为:
def project1 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute()
def project2 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute()
请注意,您的命令中的每个参数都需要一个字符串,并且 execute()
不要等待命令完成,以便您的项目 运行 并行。
如果您想了解有关 groovy
命令执行的更多信息,请查看 documentation。
希望这对您有所帮助,
我在 SoapUI 中为 运行ning 并行项目编写了一个 groovy 脚本,并将其放在名为 'Project1' 的项目的测试步骤中。我能够 运行 并行执行项目,但是当我使用批处理文件来安排执行时,它失败了。它说
"Cannot get property 'projects' on null object"
用于定义 'project1' 的行。它仍然执行第一个项目,因为 groovy 脚本位于 'Project1'.
并行执行项目的groovy脚本:
import com.eviware.soapui.model.propertyexpansion.DefaultPropertyExpansionContext
def project1=testRunner.testCase.testSuite.project.workspace.projects["Project1"]
def project2=testRunner.testCase.testSuite.project.workspace.projects["Project2"]
DefaultPropertyExpansionContext con1=new DefaultPropertyExpansionContext(project1)
DefaultPropertyExpansionContext con2=new DefaultPropertyExpansionContext(project2)
project1.run( con1,true)
project2.run( con2,true)
如果您 运行 SOAPUI
使用 testrunner.bat
的项目,您必须注意,您 运行 项目是单独的,因此您无法访问 testRunner.testCase.testSuite.project.workspace
属性。
看testrunner.bat
properties on documentation好像没有符合你要求的参数。
也许我错了,这个案例有一些东西(我不是使用 testrunner.bat
的专家),但是 运行 两个项目并行的可能解决方法是避免调用您的 groovy testStep
改为调用 testrunner.bat
两次,为每次调用指定正确的项目 xml
文件。
另一种可能的解决方法(基本相同)是修改您的 groovy
脚本以执行这两个命令(而不是从命令行调用它)。因此,您使用 testrunner.bat
执行一个项目,并使用以下 groovy testStep
脚本执行其他项目。尝试将您的 groovy 脚本修改为:
def project1 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute()
def project2 = ["$SOAPUI_HOME/testrunner.bat","-sServiceAPIs","-j","-f",..].execute()
请注意,您的命令中的每个参数都需要一个字符串,并且 execute()
不要等待命令完成,以便您的项目 运行 并行。
如果您想了解有关 groovy
命令执行的更多信息,请查看 documentation。
希望这对您有所帮助,