groovy - Groovy 测试步骤之间的传输列表 (SoapUI)
问题描述
我有一个测试用例,在每次运行其他测试用例之前调用(开始和完成)。它类似于“测试数据准备”测试用例。此测试用例的输出是包含一些元素的列表,列表如下所示:
def list = ['Login', 'Get Messages', 'Logout', etc.]
每次运行的列表都不同。我需要将此列表从“测试数据准备”测试用例转移到其他测试用例。传输将在两个 Groovy 脚本之间进行。
如何在 SoapUI 中的两个 Groovy 测试步骤之间传输列表?
解决方案
据我了解:
- 您有一个 TestCase,您可以从其他所有 TestCase 中调用它。
- 我假设这是使用“运行测试用例”测试步骤完成的?
- 您希望能够传递字符串列表
- 当我读到它时,参数是一种方式。从“外部测试用例”回到调用测试用例。每个测试用例都没有“输入”到这个“外部测试用例”?
然后,“外部测试用例”中的 Groovy 脚本可能会生成一个字符串结果,该结果又可以转换为字符串数组或 ArrayList 之类的东西。这可能是一个字符串,其值由 ; 分隔。
def result = ""
result += "Entry1;"
result += "Entry2;"
result += "Entry3;"
// You may want to add a line of code that removes the last ;
return result
然后,通过添加几行代码,可以轻松地从其他地方的 Groovy 脚本中检索到该结果。
如果 Groovy 脚本放置在另一个 TestCase 中,但在同一个 TestSuite 中,您可以使用以下方法检索结果:
def input = testRunner.testCase.testSuite.getTestCaseByName("Name of TestCase").getTestStepByName("Groovy Script Name").getPropertyValue("result")
如果将它放在不同的 TestSuite 中的 TestCase 中,您可以使用:
def input = testRunner.testCase.testSuite.project.getTestSuiteByName("Test Suite Name").getTestCaseByName("Test Case Name").getTestStepByName("Groovy Script Name").getPropertyValue("result")
然后循环输入做类似的事情:
for (def s : input.split(";")) {
log.info s
// Do your stuff here
}
我希望这是有道理的...?:)
推荐阅读
- javascript - 在 BEX 的后台脚本中使用 Quasar App 代码
- javascript - 如何在反应 js javascript 中禁用空元素
- docker - 我需要挂载哪些文件夹来共享 docker 映像?
- javascript - 自定义 chrome 扩展快捷方式不起作用
- java - vscode java:添加源文件夹被忽略
- jmeter - Jmeter - 如何将多个动态值分配给循环内的变量
- hyperledger-fabric - 订购者服务筏共识领导者问题
- docker - Cloud Build 中运行的容器无法访问 Cloud SQL 代理
- apache-flink - 从具有批处理表环境的文件读取时发生 NoMatchingTableFactoryException
- language-translation - 将 Azure 翻译限制增加到每次调用超过 10000 个字符