groovy – 在SoapUI免费版中创建脚本库
我是SoapUI和groovy脚本的新手
我想创建一个groovy脚本的存储库,可以在各种测试步骤中重用 我正在使用SoapUI免费版,以下是我的SoapUI项目的结构 Project |-TestSuite | |-TestCase | |-TestSteps | |-LocalScript (Groovy TestStep to reuse library scripts) | |-OtherTestStep (Run TestCase TestStep) |-ScriptLibrary |-TestCase |-TestSteps |-GroovyScriptStep1 (Contain a class for commonly used functions) |-GroovyScriptStep2 (Contain another class for other functions) 这是我能做的: 我能够使用this post中提到的示例创建一个库.类似于帖子中的示例,我的代码在测试步骤(根据上述结构的GroovyScriptStep1)中只是从外部文件读取一些值并用于测试步骤其他TestSuite(上述结构中的LocalScript步骤). 这是问题所在: 现在我想创建一个新类并向其添加一个函数,它需要运行类的信息并简单地打印它.这里的不同之处在于,某些值是在测试运行中生成的,应该传递给库脚本以便处理/打印等. 为了使我的问题更清楚,以下是代码段 我将在这里使用一个简单的场景 示例目标:希望能够打印所有断言和状态(因为这将用于我想要创建库的所有测试用例) 不使用库时的代码相同(这可以作为groovy脚本步骤) def obj = context.testCase.getTestStepByName("Request 1"); def assertions = obj.getAssertionList() //Loop on assertions assertions.each{ log.info(it.name + ' --> ' + it.status) 在Library TestSuite的Test case步骤中编写类似的代码 context.setProperty("Assertions",new Assertions()); class Assertions{ def printAssertion(def someArgumentToGetAssertionlistforTestStepinAnotherTestSuite){ def obj = ???? def assertions = obj.getAssertionList() //Loop on assertions assertions.each{ log.info(it.name + ' --> ' + it.status) } } } 我要调用此方法的代码(根据上述项目结构的LocalScript) scripts = testRunner.testCase.testSuite.project.testSuites["ScriptLibrary"]; scripts.testCases["Scripts"].testSteps["Assertions"].run(testRunner,context); context.Assertions.printAssertion(ArgumentRequired); 这只是一个例子,我想创建一些更常见的脚本库,这些脚本在本地使用时使用上下文变量 请帮助我,如果需要更多信息/说明,请告诉我 解决方法
我从你的问题中得到的是你想在SoapUI中创建一个可以重用的代码库.
我认为最好的方法是创建jar文件并将其部署在SoapUI的ext文件夹中 >使用类创建一个新的groovy脚本文件(在文件命名中遵循java标准,即类名和文件名应该相同) 注意:如果要将项目迁移到其他计算机,请确保在项目中使用它们时也要迁移这些库 详细示例: 第1步:使用类结构创建一个新的groovy脚本文件 一世.考虑包含名为printTestDetails的方法的类ScriptLibrary,如下面的代码所示: class ScriptLibrary { def context def testRunner def log def printTestDetails(def PrintThisToo) { log.info 'Name of the test case is :'+testRunner.testCase.name log.info 'Name of the test suite is : '+testRunner.testCase.testSuite.name log.info PrintThisToo } } II.在这种情况下,使用类名称ScriptLibrary.groovy保存文件 第2步:编译代码 一世.打开命令提示符并触发以下命令(从保存.groovy文件的文件夹) 编译代码: groovyc -d classes SimplePrint.groovy 第3步:创建jar文件 一世.编译完代码后,我们可以创建jar jar cvf SimplePrint.jar -C classes . 步骤4:在SoapUI_Home / bin / ext文件夹中部署jar文件 步骤5:如果已经打开,则重新启动SoapUI 步骤6:创建类的对象并在SoapUI项目中的任何位置使用方法 一世.创建对象 def scripts = new ScriptLibrary(context:context,log:log,testRunner:testRunner) II.调用方法 scripts.printTestDetails(“This is my argument”) 我希望这解决了你的问题,这种方法将允许你在SoapUI中的任何地方自由使用代码,最重要的是将解决你在外部代码中获取上下文,日志和testrunner的问题 您还可以使用您选择的任何IDE来创建代码库,并在其上工作以编译和创建jar. 如果您有任何疑问或需要更多澄清,请告诉我 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |