概述
在一些企业中,各类业务系统非常丰富,相互之间或对外提供很多的服务或接口
这些服务或接口中,有很多是需要强契约约束的,服务的提供方、服务的使用方必须遵守相同契约
这类服务最典型的就是RPC,其中应用广泛的有Dubbo、gRPC等
使用JMeter对这些RPC接口的测试,可以自定义插件来实现
由于Dubbo应用相对广泛,本文主要针对Dubbo的接口测试插件开发与实现进行介绍
需要掌握的基础知识
Java基础技术,像Java基础知识、面向对象、Maven等
Swing,Java基础的图形化技术,就要用于JMeter组件的界面元件绘制
JMeter常用组件,包括使用和对应的类、方法,比较典型的配置元件、取样器
Dubbo,要掌握Dubbo的原理、开发、部署及调用规则,才能较好的进行JMeter插件的开发;尤其是要了解****Dubbo泛化调用的编程。
开发步骤
1、开发配置元件(Config Element)
主要配置Dubbo注册服务地址(一般是Zookepper、Nacos等),超时时间等一些通用配置
继承AbstractConfigGui类,在此类中实现一系列方法,使用Swing绘制界面、并将界面输入框内容保存到JMeter全局数据,具体如下:
getStaticLabel方法,用于返回配置元件名称,示例代码如下:
-
@Override
-
public String getStaticLabel() {
-
return "Dubbo基础配置";
-
}
getLabelResource方法,获取组件资源名称,用于多语言,可忽略,示例代码如下:
-
@Override
-
public String getLabelResource() {
-
return this.getClass().getSimpleName();
-
}
configure方法,将测试元件属性值设置回图形化组件,示例代码如下:
-
@Override
-
public void configure(TestElement element) {
-
super.configure(element);
-
//将配置值设置回当前Swing组件
-
if (element instanceof ConfigTestElement) {
-
ConfigTestElement configTestElement = (ConfigTestElement) element;
-
this.txtDubboAddress.setText(configTestElement.getPropertyAsString(DUBBO_ADDRESS_KEY));
-
this.txtNamespace.setText(configTestElement.getPropertyAsString(NAMESPACE_KEY));
-
this.txtGroup.setText(configTestElement.getPropertyAsString(GROUP_KEY));
-
this.txtProtocol.setText(configTestElement.getPropertyAsString(PROTOCOL_KEY));
-
this.txtTimeout