Jmeter测试普通java类说明
概述
Apache JMeter是Apache组织开发的基于Java的压力测试工具。本文档主要描述用Jmeter工具对基于Dubbo、Zookeeper框架的Cassandra接口、区块链接口进行压力测试的一些说明,为以后类似接口的测试提供参考。
环境部署
1、 下载Jmeter工具apache-jmeter-3.3.zip:
http://jmeter.apache.org/download_jmeter.cgi
2、 解压apache-jmeter-3.3.zip;
3、 运行bin目录下的jmeter.bat,就可以看到Jmeter测试界面(Linux环境请运行jmeter.sh)。如下图所示:
测试流程
1、 打开Jmeter工具,在【测试计划】下面添加【线程组】,如下如图所示:
2、 在【线程组】下面添加【java请求】,如下图所示
3、 在【线程组】下面继续添加【察看结果数】和聚合报告,如下图所示
4、 接下来在我们的consumer工程中,用maven引入Jmeter依赖的jar包,在pom.xml文件加入如下几行代码:
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>3.0</version>
</dependency>
5、 加好之后,用Maven编译consumer工程,编译成功后,会在工程中引入如下两个Jmeter jar包:
6、 编写Jmeter测试用例,需要继承AbstractJavaSamplerClient类,这个步骤很重要,写好之后,后续导出xxx.jar包后,Jmeter界面使用这个测试用例进行压力测试,下面附上详细代码
public class JMeterTestSign extends AbstractJavaSamplerClient {
private String resultData ; //写入结果树时使用
private SampleResult results;
//提供给jmeter的对外参数,可修改
String value;
String type;
/**
* 测试方法运行之前的工作(初始化记录结果;从参数列表中获取对应变)
* @param arg0
*/
@Override
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
value = arg0.getParameter("value");
type = arg0.getParameter("type");
}
/**
* 获取默认参数以及参数值
* @return
*/
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
String value = "1234567890";
params.addArgument("value", value);
params.addArgument("type", "ec");
return params;
}
/**
* 运行测试方法(初始化记录结果,设定开始/结束记录时间,测试调用Service的主方法,测试成功与否的判断方法)
* @param arg0
* @return
*/
public SampleResult runTest(JavaSamplerContext arg0) {
results = new SampleResult();//初始化记录结果
results.sampleStart();//计时开始
/*测试方法,此处写自己的测试方法进行调用*/
try {
// 下面的一行为自定义方法,可以测试自己的方法
String signature = EccService.sign(value, type);
results.sampleEnd();//计时结束
//判断测试成功与否的方法:可根据实际进行判断,此处为如果没有抛出异常,则认为该次调用成功
results.setSuccessful(true);
//将结果写入结果树:在JMeter的监听器-查看结果树时即可查看返回结果
resultData = signature;
results.setResponseData("结果是:"+resultData ,null);
results.setDataType(SampleResult. TEXT);
return results;
} catch (InvalidKeySpecException e) {
results.setSuccessful(false);
e.printStackTrace();
return results;
} catch (IOException e) {
results.setSuccessful(false);
e.printStackTrace();
return results;
} catch (CryptoException e) {
results.setSuccessful(false);
//将结果写入结果树:在jmeter的监听器-查看结果树时即可查看返回结果
resultData += false;
results.setResponseData("结果是:"+resultData ,null);
results.setDataType(SampleResult. TEXT);
e.printStackTrace();
}
return results;
}
/**
* 获取jmeter输入的参数值
*
* @return
*/
public void setValues(JavaSamplerContext arg0) {
value = arg0.getParameter("value", value);
type = arg0.getParameter("type", type);
}
@Override
public void teardownTest(JavaSamplerContext context) {
}
}
7、 编写好测试用例后,将工程导出为一个jar包:
Maven build或者maven package都可以
8、 将导出的jar包,拷贝到Jmeter安装目录的lib/ext子目录下
9、 在Jmeter测试计划主界面,点击【浏览】,选择本次Jmeter测试用例所依赖的jar包目录(右键工程,选择maven build,在goals中输入dependency:copy-dependencie命令并执行,把所有jar包放到某个目录下)
注:maven导出所有依赖的jar包,也可以在pom文件中添加配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
12、 点击【线程组】,在主界面中输入【线程数】:需要多少并发量就写多少个,其他都写1
13、 再点击【Java请求】,在主界面中,【类名称】选择’ com.foriseland.fas.cassandra.jmeter.TestConsumer’;并在下方输入自定义的参数,如下如图所示:
14、 以上这些操作完成后,保存退出,并重启Jmeter,然后就可以对其进行压力测试了。
转载于:https://www.cnblogs.com/alan319/p/9111466.html
Jmeter测试普通java类说明相关推荐
- jmeter测试java代码
有时候总是要写代码的,不得不说你也得会,这不往下看 java请求了,就的写代码,那么先来实现一个类, package com.company.jemeters;public class Hello { ...
- java测试开发_测试开发系类之Java常用知识点
测试需要的两门语言:Java,Python 测试开发:开发测试脚本->开发测试框架 Java需要掌握内容:基础语法.Java面向对象相关概念.Java常用类.基础测试框架 Java常用类:IO相 ...
- jmeter测试java服务_Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能
前言 JMS 介绍:JMS 即 Java 消息服务(Java Message Service)应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分 ...
- Java Web项目性能测试 - JMeter测试网站吞吐量、反应时间百分比、流量
Java Web项目性能测试 - JMeter测试网站吞吐量.反应时间百分比.流量 为了衡量.调整.完成Java Web项目的性能指标,满足客户.用户对性能的要求,保证项目上线后能正常运行,以及了解项 ...
- JMeter测试TCP/IP Socket应用的性能
摘要 本文描述了如何利用JMeter来测试TCP/IP Socket应用的性能.文章先对Socket作了一点简单介绍,然后提供并解释了两个样例Socket应用,最后介绍如何利用JMeter来对它们进行 ...
- jmeter java性能_使用JMeter进行性能测试(Java请求)
来源:http://wangym.iteye.com/blog/731729 看了两篇如何使用JMeter在HTTP请求及数据库方面做性能测试的文章(如下两个链接),感受到这款工具的强大及易用.我在这 ...
- 如何通过JMeter测试金仓数据库KingbaseES并搭建环境
1.安装JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具,主要用于对软件的压力测试,它最初被设计用于Web应用测试,但后来扩展到其它测试领域.它可测试静态.动 ...
- excel字段自动java类,Java 接口自动化系列--工具类之Excel测试数据解析封装
在进行数据解析时,先来看看excel测试数据格式,这里采用接口和测试数据分离的方式,即分为两个sheet页签分别存放接口信息,用例信息 excel封装成对象步骤 1.导入easypoi的坐标 2.加载 ...
- Java 类的一些高级特征
1. 面向对象的特征二:继承性 * 1.为什么要设计继承性? 继承的出现提高了代码的复用性. 继承的出现让类与类之间产生了关系,提供了多态的前提. * 2.通过"class A extend ...
最新文章
- 工厂方法模式(Factory Method)简介
- SAP UI5 应用开发教程之二十四 - 如何使用 OData 数据模型
- CSS样式表的规划与组织
- php return直接输出,PHP中return用法详细解读
- 作文 深海机器人_机器人作文(共10篇)
- 三款在线css3样式生成工具
- Oracle 之instant client
- 37. 反转一个3位整数 Java
- Hibernate SQL 方言(hibernate.dialect)
- MyBatis 基础知识
- unity wsad 鼠标_Unity3D实现键盘鼠标控制角色移动及旋转
- libaio介绍和使用
- 驱动数字签名 WIN7 WIN10 32位/64位
- 跳跃表(skiplist )详解及其C++编程实现
- 最常见绩效考核方法有哪些?5种有效方法介绍
- 解决 nvcc: command not found
- Postgresql计算月天数
- 计算机网络共享文件共享,终于发现如何取消计算机网络共享文件
- html转化pug,pug转化html,sass转化scss
- 九型人格:三、The proformer 实干者 - 我若没有成就,就没有人会爱我。
热门文章
- 前端共享桌面_2020 前端学习路线总结,哎呦,不错哦!
- 基于linux的netfilter处理数据包的过程分析,基于Netfilter的网络数据包分析
- 总是助手服务器失败怎么回事,《遇见逆水寒》连接服务器失败解决方法汇总 服务器连接失败问题原因...
- springboot怎么替代jsp_如何在SpringBoot中使用JSP ?
- saml java实现_java-saml
- python新建一个文件夹需要重新安装模块吗_解决pycharm每次新建项目都要重新安装一些第三方库的问题...
- pythonos模块_Python3 入门教程——os模块使用(文件/目录操作)
- Java类class forName()方法及示例
- Java Math类toDegrees()方法与示例
- 达尔豪斯大学计算机科学世界排名,达尔豪斯大学成了全加最好,这又是个什么排名?...