【问题标题】:How to execute a groovy script within another groovy in SoapUI如何在 SoapUI 中的另一个 groovy 中执行 groovy 脚本
【发布时间】:2018-01-03 13:08:52
【问题描述】:

我有一个时髦的脚本说test.groovy。它具有要执行的所有指令并存储在某个位置。

我正在创建一个 SOAP 测试,其中我有一个 groovy 步骤,我想在其中编写代码以执行上述脚本 test.groovy

我该怎么做?

【问题讨论】:

  • 您可能想提供更多背景信息以及您想要实现的目标是什么?顺便问一下,test.groovy 是做什么的?
  • Groovy 就是 Java。您的“脚本”需要在一个类和一个方法中,并且您可以像调用任何其他方法一样调用它。
  • 我的 test.groovy 用于将 jdbc 连接到我的 oracle 数据库并执行一些 sql 查询。我已将此 test.groovy 外部化,因为它将被重复使用,我想在我的肥皂期间执行它test.在我的soaptest案例中,我添加了一个常规的测试步骤,我想在其中调用这个脚本
  • 您想尝试上述链接中的脚本,应该可以。您再次需要从 groovy 重复 test.groovy。以及如何将结果调用脚本进行评估或做出断言?

标签: groovy soapui


【解决方案1】:

只需将以下三行添加到 SoapUI Groovy 脚本中即可。

def project= testRunner.testCase.testSuite.project.workspace.getProjectByName("projectName")
def runner = project.testSuites['testSuiteName'].testCases['testCaseName'].testSteps["groovyScriptName"].run(testRunner, context)
log.info ("runner status ....... : " + runner.getStatus()) // prints the response of the nested script in the log

根据您的 SoapUI 项目更改 projectName、testSuiteName、testCaseName、groovyScriptName。 (groovyScriptName是需要调用的脚本)

它对我有用,并从另一个 groovy 脚本运行了一个 Groovy 脚本。

Ps:以防万一验证项目是否被正确调用,
在def项目和def runner之间添加以下代码行。

log.info project.name // just to verify the project

【讨论】:

  • 如何在另一个脚本中调用特定方法并保存返回值
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2012-02-26
  • 2022-08-18
  • 1970-01-01
相关资源
最近更新 更多