【最佳实践】MeterSphere 接口自动化插件基础开发教程


Administrator
飞致云 发布于 2023-01-12 / 1059 阅读 / 0 评论 /

1 背景介绍

从 MeterSphere v1.13 版本开始,接口自动化支持了通过添加插件的方式进行扩展。针对 JMeter 已有的功能或插件,只需要进行很少量的开发工作,就可以将其包装成一个 MeterSphere 上可用的插件。

在 JMeter 中使用 Dummy Sampler 可以构造出一个请求内容和响应内容完全自定义的请求,通过这种自定义的请求可以比较方便的对各种断言、参数提取等后置处理器进行调试。
1-1673506102897

本文将以 JMeter 中的 Dummy Sampler 为例,来介绍下如何开发 MeterSphere 接口自动化插件。

2 插件开发

2.1 项目初始化

初始化一个 maven 项目,并在 pom.xml 添加如下依赖。

<!-- 省略开头 -->
    <dependencies>
        <!-- 公共插件包,定义了执行数据的基类和公共接口 -->
        <dependency>
            <groupId>io.metersphere</groupId>
            <artifactId>metersphere-plugin-core</artifactId>
            <version>1.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- 原始的 JMeter DummySampler 插件 -->
        <dependency>
            <groupId>kg.apc</groupId>
            <artifactId>jmeter-plugins-dummy</artifactId>
            <version>0.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
<!-- 省略结尾 -->

2.2 生成前端表单

在 JMeter 中创建一个包含 DummySampler 步骤的脚本,对照这 JMeter 中该步骤的配置页面,使用 表单生成器 生成前端表单的 json 文件。
2-1673506103035

点击表单生成器右上角的 【生成JSON】按钮,将内容保存到 src\main\resources\json\ui_dummy.json 文件中;点击右上角的【生成Options】按钮,将内容保存到 src\main\resources\json\ui_form.json 文件中。对于没有默认值的字段,可以手动编辑下 json 文件增加一个空的默认值,避免出现空指针异常。
3-1673506234534

2.3 初始化插件资源

在 src\main\java\io\metersphere\plugin\dummy\UiScriptApiImpl.java 中使用上面生成的表单 json,对插件内容进行初始化。
4-1673506292877

2.4 转换生成 JMeter HashTree

创建与上一步对应的初始化 UiScript 对象时指定类名一致的 io.metersphere.plugin.dummy.sampler.MsDummySampler 类,在该类中完成前端表单数据到 JMeter HashTree 的转换。
5-1673506356157

6-1673506385986

生成 DummySampler 对象时,guiclass、testclass 及各个属性对应的字段,可以通过创建一个包含 DummySampler 步骤的 jmx 脚本,以文本模式打开脚本快速获取。
7-1673506420347

2.5 收尾打包

增加一个与打包后的 jar 包同名的文件 src\main\resources\metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies 指定插件入口。再补充一些其他的必要内容后就可以打包了。
8-1673506467630

3 上传测试

打包后将 target\metersphere-plugin-DummySampler-1.0.0-jar-with-all-dependencies.jar 在 MeterSphere 的插件管理页面进行上传,上传成功后就可以在接口自动化中看到插件提供的步骤。
9-1673506516223

10-1673506547807

该插件已提交到了 https://github.com/metersphere/metersphere-plugin-DummySampler 仓库。



是否对你有帮助?