jmeter脚本是作为dubbo消费者
以下为工程主要代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package
com.one;
import
org.apache.jmeter.config.Arguments;
import
org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import
org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import
org.apache.jmeter.samplers.SampleResult;
import
com.alibaba.dubbo.config.ApplicationConfig;
import
com.alibaba.dubbo.config.ReferenceConfig;
import
com.unj.dubbotest.provider.DemoService;
public
class
TestConsumer
extends
AbstractJavaSamplerClient {
private
static
String label =
"consumer"
;
private
String ID;
//dubbo服务地址
private
String URL;
private
String VERSION ;
private
String SERVICE_NAME;
private
Object object;
public
void
init() {
// 当前应用配置
ApplicationConfig application =
new
ApplicationConfig();
application.setName(
"hehe_consumer"
);
// 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
// 引用远程服务
ReferenceConfig reference =
new
ReferenceConfig();
// 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
reference.setApplication(application);
reference.setId(ID);
reference.setVersion(VERSION);
//dubbo服务名
reference.setInterface(SERVICE_NAME);
//dubboip地址
reference.setUrl(URL);
// 和本地bean一样使用xxxService
object = reference.get();
// 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用\
}
public
void
setupTest(){
//定义测试初始值,setupTest只在测试开始前使用
System.out.println(
"setupTest"
);
}
@Override
public
SampleResult runTest(JavaSamplerContext arg0) {
SampleResult sr =
new
SampleResult(); ;
try
{
//获取参数
ID = arg0.getParameter(
"ID"
);
URL = arg0.getParameter(
"URL"
);
VERSION = arg0.getParameter(
"VERSION"
);
SERVICE_NAME = arg0.getParameter(
"SERVICE_NAME"
);
//dubbo初始化
init();
//jmeter结果对象
sr.setSampleLabel(label);
sr.sampleStart();
DemoService demoService = (DemoService)object;
String hello = demoService.sayHello(
"tom"
);
sr.setResponseCode(
"00000"
);
sr.setResponseMessage(hello);
sr.setSuccessful(
true
);
sr.sampleEnd();
// jmeter 结束统计响应时间标记
}
catch
(Exception e) {
e.printStackTrace();
sr.setResponseCode(
"999"
);
sr.setResponseMessage(e.getMessage());
sr.setSuccessful(
false
);
}
return
sr;
}
public
Arguments getDefaultParameters(){
//参数定义,显示在前台,也可以不定义
Arguments params =
new
Arguments();
params.addArgument(
"ID"
,
""
);
params.addArgument(
"URL"
,
""
);
params.addArgument(
"VERSION"
,
""
);
params.addArgument(
"SERVICE_NAME"
,
""
);
return
params;
}
public
void
teardownTest(JavaSamplerContext arg0){
super
.teardownTest(arg0);
}
}
|
第一步:右击工程,点击Export标签,选择java文件夹,点击【JAR file】
第二步:输入JAR file 文件路径,点击【Finish】按钮
第三步:导致的jar放置../apache-jmeter-2.13libext目录下
jmeter使用
第一步:打开Jmeter软件
新建线程组
第二步:新建一个Java请求,选择自己编写的测试类,输入参数
第一个参数:这个参数没有特定的规定,名字取得有意义一些,比如:ID
第二个参数:输入dubbo的服务地址:dubbo://127.0.0.1:20880(是自己项目的具体情况)
第三个参数:输入dubbo的版本号:1.0.0
第四个参数:输入dubbo服务名称:com.unj.dubbotest.provider.DemoService
第三步:新建一个监听器
第四步:Jmeter导入依赖包,(包的目录是在工程(consumer)的lib下)
点击测试计划,右下方点击【浏览】按钮,选择工程下的lib目录,重启Jmeter
第五步:执行Jmeter,查看结果
本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/2059424,如需转载请自行联系原作者