💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[toc] ReadyAPI 支持以库的形式来管理 Groovy 类,因此你可以集中管理常见任务、功能或者创建全面的脚本扩展。 # 配置脚本文件夹 默认情况下,ReadyAPI 将 `<ReadyAPI installation>\bin\scripts` 文件夹作为 Groovy 脚本库。如果要自定义文件夹,请遵循以下步骤: 1、打开设置:**Preferences** > [ReadyAPI](ReadyAPI_.md) 。 2、在 **Script Library** 选项指定脚本所在文件夹路径,然后点击 **OK** 。 ReadyAPI 将扫描该文件夹下的 Groovy 文件,并且在启动时编译它们。另外,ReadyAPI 每隔 5 秒扫描一次该文件夹,并且编译或重新编译新增或更新的脚本。 # 包结构 来自某个包下的 Groovy 类,应该被放置在与包同名的子文件夹下。比如, `soapui.demo` 包下的类文件应该放置在 `/soapui/demo` 文件夹。 The classes ReadyAPI compiles will appear in the parent class loader of all Groovy scripts.(I don't understand.)你可以将其当作标准的 Java 类来访问。 >[warning]每个脚本文件必须是合法的类,而不是一个普通的脚本文件。 # 示例 本示例将介绍如何在 ReadyAPI 中使用自定义的 Groovy 类,并在稍后修改、重载该类。首先,创建一个 `Callee.groovy` 类: 1、新建一个文件夹:`C:\GroovyLibrary\readyapi\demo` 。 2、在新建的文件夹下,新建一个 `Callee.groovy` 文件。 3、将下面的内容复制到文件中: ```groovy package readyapi.demo // 创建一个类:Callee ,稍后会在 ReadyAPI 中调用该类。 class Callee { String hello() { return "Hello world!" } def static salute( who, log ) { log.info "Hello again $who!" } } ``` ## 导入库 1、打开 **Preferences** > **ReadyAPI** 。 2、在 **Script Library** 选项,输入新建的文件夹路径,这里是 `C:\GroovyLibrary` 。 3、重启 ReadyAPI 或 稍等几秒以加载库(文件夹中的类)。 4、新建一个测试步骤:[Groovy Script](GroovyScript.md) 。 5、在 [脚本编辑器](脚本编辑器.md) 中插入以下代码: ```groovy import readyapi.demo.Callee // Call the class from the library and post the returned information to the log. c = new Callee() log.info c.hello() ``` 6、点击 <img class="aqInlineImg" src="https://support.smartbear.com/readyapi/docs/_images/icon/run.png" > 运行脚本。 7、查看脚本日志,脚本应该输出以下信息: ```log Tue Jan 1 10:56:08 EST 2018:INFO:Hello world! ``` ## 修改库 让我们修改下上面的类,来返回不同的信息: 1、打开 `Callee.groovy` 文件。 2、使用下面的代码替换之前的代码: ```groovy package readyapi.demo // Create the Callee class to be called from ReadyAPI. class Callee { String hello() { return "Hello world!" } String hello(String who) { return "Hello $who" } def static salute( who, log ) { log.info "Hello again $who!|" } } ``` 3、在你保存文件后,ReadyAPI 会自动检测变化,然后重新编译该文件。ReadyAPI 日志中将显示类似这样的信息: ~~~log Tue Jan 1 10:56:08 EST 2018:INFO:C:\GroovyLib\readyapi\demo\Callee.groovy is new or has changed, reloading... ~~~ 4、修改测试步骤中的脚本为: ~~~groovy import readyapi.demo.Callee // Call the class from the library and post the returned information to the log. c = new Callee() log.info c.hello("Mike") ~~~ 5、点击 <img class="aqInlineImg" src="https://support.smartbear.com/readyapi/docs/_images/icon/run.png" > 运行脚本。 6、查看脚本日志,脚本应该输出类似信息: ~~~log Tue Jan 1 10:56:08 EST 2018:INFO:Hello, Mike! ~~~ ## 调用静态方法 你可以调用库中的静态方法,像下面这样: ~~~groovy readyapi.demo.Callee.salute( "Mike", log ) ~~~ 或者 ~~~groovy import readyapi.demo.Callee Callee.salute( "Mike", log ) ~~~ 运行后将输出: ~~~log Tue Jan 1 10:56:08 EST 2018:INFO:Hello again Mike! ~~~ # 动态加载库 在运行时加载库: ~~~groovy def project = testRunner.testCase.testSuite.project // 加载库文件 project.scriptLibrary = "E:\\workspace\\groovy" // 或者采用下面的写法 // project.setScriptLibrary("E:\\workspace\\groovy") // 等待库文件加载完毕 Thread.sleep(12000) ~~~ 参考资料: 1、[ReadyAPI Documentation / Testing APIs / Scripting / Script Libraries](https://support.smartbear.com/readyapi/docs/testing/scripts/library.html) --- :-: --- 贡献者名单(排名不分先后) --- :-: **材料** :-: **编写** 李云 :-: **校验** :-: **支持**