如何将参数从一个项目传递到另一个项目?

时间:2016-04-12 10:15:47

标签: soap groovy soapui

我在附加屏幕截图中有4个Rest API的项目。

我需要将生成的userID从项目1(1_Admin Basics& Get API)传递到其他项目(2_Courses& Classes)。

我正在使用测试运行器运行每个项目。在这种情况下,全球财产转移无效。一些人可以帮助我完成上述情况。

我不想将4个项目合并为1个项目。它应该是4个项目,需要将参数从1个项目传递给其他项目。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用workspace属性来访问当前项目中的其他项目以从中获取属性。您可以通过 groovy脚本来完成。

在第一个项目中,在 testCase 中添加 groovy脚本testStep ,并在项目级别中设置属性,如下所示:

testRunner.testCase.testSuite.project.setPropertyValue('myProp','myValue')

在第二个项目中,在 testCase 中添加另一个 groovy脚本,以通过workspace获取您的媒体资源的价值并分配到您想要的级别(对于 testSuite 中的示例,但您可以在需要的地方添加):

// get the other project
def otherProject = testRunner.testCase.testSuite.project.workspace.getProjectByName('SecondProjectName')
// get your property value
def value = otherProject.getPropertyValue('myProp')
log.info value
// set the var at some level in this case in testSuite
testRunner.testCase.testSuite.setPropertyValue('varFromOtherProject',value)

然后使用以下符号在第二个项目的 testStep 中使用该变量:

${#TestSuite#varFromOtherProject}

<强>更新

似乎您使用 testRunner 单独运行项目,因此您无法使用workspace访问其他项目,因此可以使用可解决方法来编写您的属性第一个项目中文件中的值,然后读取第二个项目中的文件内容。

所以在第一个项目中添加一个 groovy脚本testStep ,其代码如下:

new File('./myProp').text = 'someValue'

然后在第二个项目中阅读文件并在某个测试级别设置属性:

// get the value from the file
def value = new File('./myProp').text
log.info value
// set the var at some level in this case in testSuite
testRunner.testCase.testSuite.setPropertyValue('varFromOtherProject',value)

正如之前所解释的那样,在 SOAP testStep 中使用以下符号来获取属性:

${#TestSuite#varFromOtherProject}

希望它有所帮助,