Jmeter压测Thift服务

网友投稿 710 2022-10-24

Jmeter压测Thift服务

Jmeter压测Thift服务

-

用apache-jmeter-4.0版本,5的版本我用的时候有点问题

加入pom

org.apache.thrift libthrift 0.10.0 org.apache.jmeter ApacheJMeter_java 4.0

编写测试类

看个大概,以后写详细的例子

public class TestThriftByJmeter extends AbstractJavaSamplerClient { private BaseSentimentServiceHelper baseSentimentServiceHelper; /** * 初始化方法,每个线程都会执行一次 * @param context */ @Override public void setupTest(JavaSamplerContext context) { String ip = context.getParameter("ip"); String port = context.getParameter("port"); baseSentimentServiceHelper = new BaseSentimentServiceHelper(); baseSentimentServiceHelper.setHost(ip); baseSentimentServiceHelper.setPort(Integer.valueOf(port)); super.setupTest(context); } /** * 设置参数 * @return */ @Override public Arguments getDefaultParameters() { Arguments arguments = new Arguments(); arguments.addArgument("ip", "mt011"); arguments.addArgument("port", "60000"); arguments.addArgument("total", "100"); return arguments; } /** * 运行测试方法 * @param javaSamplerContext * @return */ @Override public SampleResult runTest(JavaSamplerContext javaSamplerContext) { SampleResult sampleResult = new SampleResult(); sampleResult.setDataEncoding("utf-8"); sampleResult.sampleStart(); int total = Integer.valueOf(javaSamplerContext.getParameter("total")); Map map = new HashMap<>(); List contentList = new ArrayList<>(); for (int i = 0; i < total; i++) { Content content = new Content(); content.setMid(String.valueOf(i)); content.setText("情感确实曼妙。有时机遇恰巧会眷顾了爱情。在擦肩而过的人群中谁能与你并肩同行;谁能理会同你一道上船、驶往爱的彼岸。在滚滚红尘中,只有俩厢情愿,情投意合,才能算是一见钟情,顺理成章。"); contentList.add(content); } map.put("data", contentList); long begin = System.currentTimeMillis(); String result = baseSentimentServiceHelper.getSentiInfo(JsonUtil.obj2String(map)); long cost = System.currentTimeMillis() - begin; System.out.println("cost " + cost); if (result.equals("")) { sampleResult.setSuccessful(false); sampleResult.setDataType(SampleResult.TEXT); } else { sampleResult.setSuccessful(true); sampleResult.setDataType(SampleResult.TEXT); } sampleResult.sampleEnd(); return sampleResult; } /** * 完成测试 * @param context */ @Override public void teardownTest(JavaSamplerContext context) { super.teardownTest(context); } /** * 这个是本地跑用的,执行测试类的时候,并不执行这个方法 * @param args */ public static void main(String[] args) { Arguments arguments = new Arguments(); arguments.addArgument("ip", "mt011"); arguments.addArgument("port", "60000"); arguments.addArgument("total", "100"); JavaSamplerContext context = new JavaSamplerContext(arguments); TestThriftByJmeter jmeter = new TestThriftByJmeter(); jmeter.setupTest(context); jmeter.runTest(context); jmeter.teardownTest(context); }}

测试

将测试类放在apache-jmeter-4.0\lib\ext目录下面, 导出工程的依赖

mvn dependency:copy-dependencies -DoutputDirectory=lib

将依赖放在apache-jmeter-4.0\lib目录下

将Jmeter设置为中文

在apache-jmeter-4.0\bin目录下找到jmeter.properties,将language设置为如下形式

language=zh_CN

运行

点点配置成如下形式即可

18个线程,每个线程运行30次

写好的测试类,一些参数可以设置

统计的页面

统计之后的结果

各种参数的含义,参考参考博客[2]

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:五分钟手撸一个Spring容器(萌芽版)
下一篇:深入透析样式表滤镜
相关文章

 发表评论

暂时没有评论,来抢沙发吧~