我想在groovy脚本中定义一个类,我可以通过SoapUI中的其他groovy脚本重用该类。
我一直试图在TestSuite属性中定义我的类,但没有成功。我希望避免在JAR中定义类,因为我们在团队中工作,每个人都必须在他们的SoapUI中导入JAR才能运行我的测试。我使用SoapUI 3.6.1
以下是我的TestSuite的制作方式:
TestSuite
TestCase
TestSteps
Init (Groovy Script)
GetResponse1 (Test Request)
Test1 (Groovy Script)
GetResponse2 (Test Request)
Test2 (Groovy Script)
为了简化me测试,我在“Test1”中定义了一个类,我想在“Test2”中重用这个类。因此,理想情况下,我将在“Init”中定义该类,并且任何其他groovy脚本都可以访问该类。
我如何才能做到这一点?
我很确定您必须创建一个JAR文件并将其放在\bin\ext中。
SoapUI会在重启时自动拾取它(您应该会在启动文件中看到它)。
您基本上只需创建一个Java或Groovy项目,导出它(使用Eclipse),它就会工作。SoapUI可能会覆盖您的依赖项,但如果不覆盖,您也可以添加这些JAR(比创建可运行的JAR更安全,因为SoapUI可能会使用您使用的不同版本)。
如果您需要帮助,请发布相关问题。
试试这个,我认为会在可重用代码中帮助您。
http://forum.soapui.org/viewtopic.php?t=15744
基于@Abhey Rathore的链接,下面是如何在SoapUI的groovy脚本中定义全局类:
在名为class的groovy脚本中,复制并粘贴以下代码:
class MyClass {
// The three following fields are MANDATORY
def log
def context
def testRunner
// The constructor below is MANDATORY
def MyClass(logIn, contextIn, testRunnerIn) {
this.log = logIn
this.context = contextIn
this.testRunner = testRunnerIn
}
def myMethod() {
this.log.info 'Hello World!'
}
}
// Other scripts elsewhere in SoapUI will access the reused class through their context
context.setProperty( "MyClass", new MyClass(log, context, testRunner) )
从任何项目中,您都可以使用以下代码段导入全局类:
// Import the class
def currentProject = testRunner.testCase.testSuite.project
currentProject
.testSuites["lib"]
.testCases["MyClass"]
.testSteps["class"]
.run(testRunner, context)
// Now use it
context.MyClass.myMethod()
SoapUI 5.2.1
我使用Soap用户界面来测试我的网络服务。每次我想执行我的测试请求时,我都需要更新定义。我知道有可能添加Groovy脚本来让WSDL自动更新。但是我不知道我应该添加这个脚本来使它工作。有人能描述一下我每次执行请求时需要做的使这个脚本运行的步骤吗?
当我尝试在soapUI测试步骤中解析响应时,收到了以下异常。也尝试了getXMLHolder方法。还是没运气。 答复如下
我可以将类实例声明为全局实例,如下所示: 但是如果管道调用“vars”目录中定义为groovy脚本的函数,不再可见 我也尝试使用@Field,但它并没有改变什么。请注意,所有管道都是在共享库中定义的(jenkinsfile项目只调用此共享库中的一个函数)。 在本例中,如何从/vars中的groovy脚本访问gitUtils? 我知道我们可以将该实例作为/vars中声明的函数的参数传递,但使用实用类
我在SoapUI中有一个肥皂测试项目。我已经将所有请求作为测试步骤添加到测试套件中。 每次开始测试时,我需要更新WSDL定义并重新创建请求(同时保留现有值)。 我需要一个groovy脚本的帮助来自动完成这个过程,这个脚本可以放在项目内部,每次在执行开始之前运行。
问题内容: 在Coffeescript.org上: 将编译为: 通过在node.js下的coffee-script进行编译可以做到: 文件说: 如果要创建供其他脚本使用的顶级变量,请将它们作为属性附加到窗口或CommonJS中的exports对象上。如果您同时针对CommonJS和浏览器,那么存在运算符(见下文)为您提供了一种可靠的方法来确定将它们添加到何处:root = exports?这个 然