我在附加屏幕截图中有4个Rest API的项目。
我需要将生成的userID从项目1(1_Admin Basics& Get API)传递到其他项目(2_Courses& Classes)。
我正在使用测试运行器运行每个项目。在这种情况下,全球财产转移无效。一些人可以帮助我完成上述情况。
我不想将4个项目合并为1个项目。它应该是4个项目,需要将参数从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}
希望它有所帮助,