准备工作
1、maven工程,dubbo消费者
2、普通java接口同样适用本案例
操作步骤
1、引入jar包
<!--jmeter依赖的jar包 --> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>3.0</version> <exclusions> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> <exclusion> <groupId>commons-math3</groupId> <artifactId>commons-math3</artifactId> </exclusion> <exclusion> <groupId>commons-pool2</groupId> <artifactId>commons-pool2</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>3.0</version> <exclusions> <exclusion> <groupId>commons-math3</groupId> <artifactId>commons-math3</artifactId> </exclusion> <exclusion> <groupId>commons-pool2</groupId> <artifactId>commons-pool2</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> </exclusions> </dependency>
2、 编写测试类
public class ServiceJavaSampler extends AbstractJavaSamplerClient { private static final ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "spring/scm-context.xml" }); private IScmBasegoodsService demoService; public void setupTest(JavaSamplerContext arg0){ demoService = (IScmBasegoodsService) context .getBean("scmBasegoodsService"); } @Override public SampleResult runTest(JavaSamplerContext arg0) { SampleResult sr = new SampleResult(); try { sr.sampleStart(); sr.setSampleLabel("basegoods接口测试"); demoService = (IScmBasegoodsService) context .getBean("scmBasegoodsService"); Page page=new Page(1, 2000, 5000); PageResult result=demoService.findPubBasegoodsList(page, ""); if(result!=null) { sr.setSuccessful(true); sr.setResponseData("from provider:" + result, "utf-8"); } else { sr.setSuccessful(false); } //sr.setDataType(SampleResult.TEXT); sr.sampleEnd(); } catch (Exception e) { e.printStackTrace(); } return sr; } }
重点:继承AbstractJavaSamplerClient类,实现runTest测试方法。通过setSuccessful方法来设置,测试的成功与否。根据不同的业务可在此工程中编写多个测试类。
3、本地Main方法执行测试类
public class TestMain { public static final void main(String[] args) { JavaSamplerContext arg0 = new JavaSamplerContext(new Arguments()); ServiceJavaSampler test = new ServiceJavaSampler(); test.setupTest(arg0); test.runTest(arg0); } }
重点:确保本地执行没有问题,再集成Jmeter
4、Jmeter集成
a、使用maven打包项目,生成相应的jar包和依赖包。
b、将打包的jar放在jmeter的lib/ext目录
c、将依赖的jar放在jmeter的lib/ext目录,并且配置到jmeter的环境变量中
将依赖的jar(打包的lib目录)复制重命名为lib-scm-dependency(名称自定义即可)
编辑bin目录下的jmeter.properties,增加search_paths,多个目录;相隔
#search_paths=/app1/lib;/app2/lib search_paths='D:\Program Files (x86)\apache-jmeter-3.1\lib\ext\lib-scm-dependency'
5、jmeter测试
测试计划增加线程组,根据实际情况进行压测。新建Java请求,知道我们的测试类即可
注意事项:
1、如果配置完成,打开jmeter报错,可能是依赖的jar与jmeter的自带的jar冲突,需要手动排查处理。
相关推荐
在标题和描述中提到的"Dubbo压测插件"是专门为JMeter设计的一个扩展,它允许用户无需额外安装或配置其他依赖,就能直接在JMeter中对Dubbo接口进行压力测试。这个插件兼容JMeter的不同版本,无论是Windows还是Mac操作...
Overview git地址: jmetter版本3.2, dubbo版本2.8.5。 使用方法 配置consumer 修改spring-config-dubbo-...启动jmeter GUI界面,依次添加线程组,Sampler-java请求,如图 选择类名就可以对不同的方法做压测 参考
本文将深入探讨“jmeter-plugins-dubbo-2.7.1-jar-with-dependencies”这一系统压测工具包,它专门针对基于Java的Dubbo服务进行性能测试。了解并熟练掌握这一工具,能帮助我们更好地优化服务性能,提升系统的稳定性...
1.3.6版本提供了对最新Dubbo版本的支持,包括参数化配置、动态获取服务、结果校验等功能,使得JMeter能够方便地进行Dubbo接口的压测。 4. **核心功能** - **服务发现**:插件支持从Zookeeper或Nacos等注册中心动态...
Apache JMeter的Dubbo插件是为了将JMeter的功能扩展到对Dubbo接口的性能测试中。这个插件允许开发者和测试人员直接在JMeter中创建和执行针对Dubbo服务的测试计划,以便评估和优化服务的性能和稳定性。 该插件的主要...
在实际应用中,开发者会使用 JMeter 或 LoadRunner 等工具编写压测脚本,对 Dubbo 服务进行性能测试,确保其在高并发情况下的稳定性和性能。 综上所述,Dubbo 是一个强大的分布式服务框架,它不仅提供了高效的远程...
JMeter dubbo接口实战可以对软件系统的dubbo接口进行测试,以检查接口的性能和稳定性。dubbo接口实战可以帮助开发者和测试人员发现接口的瓶颈和问题,并进行优化和改进。 JMeter性能测试内存泄露 JMeter性能测试...
在上面的例子中,我们可以看到,系统使用srpingMvc+spring+mybatis+dubbo的微服务架构,检查日志看到Caused by: java.util.concurrent.RejectedExecutionException: Thread pool is EXHAUSTED!错误信息。 二、解决...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它主要应用于分布式系统中的服务调用与治理。在面试中,对于Dubbo的理解和掌握程度常常是衡量一个开发者在微服务领域专业水平的重要标准。以下是40道...
6. **压测脚本开发**:在主流程稳定后,开发压测脚本,推荐使用JMeter,因为它开源、轻量且功能强大。需要掌握参数化、关联、事务、检查点、思考时间和信息头管理器等概念。 7. **预压测(基准测试)**:使用少量...
可以尝试使用JMeter、 Gatling等压力测试工具,模拟高并发场景,对个人开发的小项目进行压测,观察系统在高负载下的性能表现,找出瓶颈并优化。此外,参与开源项目或者在本地搭建高并发环境,如使用Hadoop、Spark等...