【转载】【压测】jmeter 测试 tcp protobuf协议 demo

本文遵循 CC 4.0 BY-SA 版权协议,摘自:https://blog.csdn.net/mausmars/article/details/90316269
应用jmeter5.1.1
-----------------------------------------
链接: https://pan.baidu.com/s/1vgaUeg_eDr44F8VU9zViJQ
提取码: eg5w
-----------------------------------------
JMeter中引入外部的JAR包给bean shell 使用

在jmeter.properties中添加依赖的路径
plugin_dependency_paths=../dependencies/lib;

放入jmeter_module项目lib下的jar包,脚本要用到
=============================================
一、tcp protobuf测试

--------------------------------------
创建 Thread Group

--------------------------------------
创建 TCP Sampler
发送的地方写
${msgbyte}

因为需要解析自定义二进制数据结构,重写TCPClient
参考
com.xxx.common.jmeter.CustomTCPClient

依赖pom
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_tcp</artifactId>
<version>5.1.1</version>
</dependency>

--------------------------------------
参考 JmeterBeanShellTest 类的写法,放入jmeter脚本中

创建 BeanShell PreProcessor
import com.xxx.common.jmeter.NetProtocolMsg;
import com.xxx.message.proto.TestMessage;
import io.vertx.core.buffer.Buffer;

TestMessage.TestBeanInfo.Builder builder = TestMessage.TestBeanInfo.newBuilder();
builder.setTid(1);
builder.setCount(1);
builder.setTypeId(1);
byte[] bytes = builder.build().toByteArray();

NetProtocolMsg message = new NetProtocolMsg();
message.setMsgId(871);
message.setBody(bytes);
Buffer buffer = message.toBuffer();
byte[] msg = buffer.getBytes();
vars.put("msgbyte", new String(msg));

创建 BeanShell PostProcessor
import com.xxx.common.jmeter.NetProtocolMsg;
import com.xxx.message.proto.TestMessage;
import io.vertx.core.buffer.Buffer;

String data = prev.getResponseDataAsString();
Buffer buffer = Buffer.buffer(data.getBytes());
NetProtocolMsg message = new NetProtocolMsg();
message.read(buffer);
byte[] bytes = message.getBody();
TestMessage.TestBeanInfo test = TestMessage.TestBeanInfo.parseFrom(bytes);

这里脚本可以再自行封装,这只是个demo
--------------------------------------
创建 View Results Tree

--------------------------------------
创建 Aggregate Report

=============================================
测试
1.执行项目中 ServerTest_Jmeter。服务端
2.启动jmeter,加载 jmeter_config 下的配置
3.执行jmeter测试,看结果

posted @ 2019-09-02 11:16  念槐聚  阅读(1398)  评论(0)    收藏  举报