当前,我在soap UI中运行的所有常规脚本似乎都使用“ ... \ SoapUI-5.2.1 \ bin”作为工作目录。从这个问题的答案之一,我尝试设置项目的Resource Root属性,但是这对groovy脚本使用的工作目录没有影响。
在SoapUI中创建一个新项目。添加一个测试套件,测试用例和一个Groovy脚本测试步骤。在测试脚本中,只需输入:
log.info new File("").getAbsolutePath()
Run Code Online (Sandbox Code Playgroud)
单击绿色箭头以运行脚本。对我来说,这将始终返回SoapUI安装的bin文件夹的路径。
在像IntelliJ这样的工具中,可以在脚本的运行配置中指定工作目录。这使该工具可以从任何路径开始该过程。除此之外,大多数其他工具会将工作目录默认为项目文件夹,而不是像SoapUI那样的工具安装文件夹。
我当前正在使用一个工作目录变量,该变量传递给脚本中所有相关的路径字符串。使用上面的示例,它看起来像:
String workingDir = "C:/somedir/"
log.info new File(workingDir + "somepath").getAbsolutePath()
Run Code Online (Sandbox Code Playgroud)
尽管此方法有效,但它并不像我使用上述其他工具所能做到的那样优雅。
Working目录是与上下文有关的东西。而且,它可能取决于从哪个目录/从哪个目录调用相应进程。
例如,SoapUI可以从不同目录的命令行中调用。
%SOAPUI_HOME%\bin目录并运行soapui.bat命令。soapui.bat(它必须%SOAPUI_HOME%\bin在中%PATH%)在两种情况下,工作目录可能不同。
好吧,我怎么找到它Groovy Script呢?
干得好:
def pwd = new File('.').absolutePath
log.info "Current working directory is ${pwd}"
Run Code Online (Sandbox Code Playgroud)
我还想澄清一下SoapUI的project属性Resource Root。SoapUI允许${projectDir}or ${workspaceDir}或user可以提供他的首选路径。
如果您想通过此位置Groovy Script?使用以下两项之一:
def project = context.testCase.testSuite.project
log.info context.expand(project.resourceRoot)
Run Code Online (Sandbox Code Playgroud)
要么
def projectPath = new com.eviware.soapui.support.GroovyUtils(context).projectPath //gets the path of the project root
log.info projectPath
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4851 次 |
| 最近记录: |