目录 2
3.1 安装JDK. 5
3.2 配置JDK环境变量... 9
3.3 安装并配置Maven. 13
3.4 下载JMeter 15
4.1 对于Dubbo类接口的测试.. 16
4.1.1 安装开发工具IDEA. 16
4.1.2 配置字符集格式... 16
4.1.3 使用IDEA导入Maven工程.. 18
4.1.4 配置pom.xml导入项目依赖包... 26
4.1.5 pom.xml中加入被测API 27
4.1.6 点击刷新Maven项目... 28
4.1.7 配置zookeeper地址及调用接口... 28
4.1.8 新建包名以及测试类型.. 29
4.1.9 代码示例(统一账务查询接口).. 31
4.1.10 对项目进行打包.. 35
4.1.11 对依赖包进行输出lib目录.. 36
4.1.12进入项目路径检查各个包... 39
4.1.13解压JMeter 40
4.1.14 拷贝target中jar包至JMeter \lib\ext 41
4.1.15 拷贝lib中jar包至JMeter \lib. 42
4.1.16 开启JMeter界面... 43
4.1.17 进行冒烟测试或联通性测试... 47
4.1.18 指标参数说明... 47
4.2 对于WebService类接口的测试.. 48
4.2.1 开启一个干净版JMeter 48
4.2.2 新建线程组... 49
4.2.3 新建soap/xml请求.. 49
4.2.4 贴入xml报文及URL地址... 50
4.2.5 新增断言.. 50
4.2.6 新建聚合报告.. 51
4.2.7 新建查询结果树... 51
4.2.8 运行进行冒烟或联通测试... 52
4.3 监控工具NMON的使用... 53
4.3.1 NMON简介... 53
4.3.2 NMON安装... 53
4.3.3 NMON 运行.. 54
4.4 商用监控工具dytrace的配置及使用... 55
4.4.1 打开已安装完毕dytrace客户端... 55
4.4.2 创建系统配置文件.. 57
4.4.3 右击新增的配置名称,添加层... 58
4.4.4 远程进入应用服务器,配置Agent 62
4.4.5 进入任意目录上传Agent 的jar包... 62
4.4.6 运行jar包.. 63
4.4.7 进入生成路径.. 65
4.4.8 替换剪切板中的配置信息... 65
4.4.9 修改应用配置文件.. 67
4.4.10 保存并重启应用.. 67
4.4.11 回到监控端验证链接是否正确.. 68
4.5 多台压力机并发实现.. 71
4.4.1 测试项目拷贝至跳板机上... 71
4.4.2 同样的项目拷贝至另外一台网络相同的压力机上... 72
4.4.3 修改JMeter中配置文件.. 72
4.4.4 同理修改另一台压力机上的JMeter中配置文件.. 73
4.4.5 分别启动两台机器中的server.bat 73
4.4.5 打开JMeter界面,测试可以同时压力并发.. 74
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
JMeter与LoadRunner都是非常优秀的性能测试软件,区别内容如下表格。
对比项 |
JMeter |
LoadRunner |
安装 |
简单,解压即可 |
复杂,LoadRunner安装包大于1GB,安装时间较长 |
录制/回放 |
支持 |
支持 |
测试协议 |
偏少,用户可自行扩展 |
较多,用户不可自行扩展 |
分布式大规模压力 |
支持 |
支持 |
IP欺骗功能 |
不支持 |
支持 |
图形报表 |
支持(较弱) |
支持(很强) |
测试逻辑控制 |
支持 |
支持 |
监控服务资源(CPU、内存) |
支持 |
支持 |
功能测试 |
支持 |
不支持 |
测试成本 |
免费开源 |
商业收费(费用很高) |
进入Oracle官网下载
Java Downloads | Oracle
注意:JMeter支持1.4或更高JDK版本。
用鼠标左键双击JDK安装包,会出现下图所示的安装界面。
其实上面那个步骤是在加载配置,为安装JDK做前期准备。之后会出现下图所示的界面。
1、完成了第一步,只是把JDK环境安装完成了。这个时候还要通过一系列的环境变量的配置才能使用JDK环境进行JAVA开发。配置环境变量包括java_home,path和classpath三个部分。
2、用鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”。
首先,先到官网去下载maven。这里是官网的地址:http://maven.apache.org/download.cgi 请选择最新的版本下载,这里咱们下载的是apache-maven-3.1.1-bin.zip,在如图所示的红色部分
解压apache-maven-3.1.1-bin.zip,并把解压后的文件夹下的apache-maven-3.1.1文件夹移动到D:\Java下,如果没有Java这个文件夹的话,请自行创建。
右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”,来设置环境变量,有以下系统变量需要配置:
新建系统变量 MAVEN_HOME 变量值:D:\Java\apache-maven-3.1.1
编辑系统变量 Path 添加变量值: ;%MAVEN_HOME%\bin
最后检验配置是否成功:用win键+R,来打开命令行提示符窗口,即Dos界面,输入mvn --version 若出现以下情况说明配置成功
注意事项
如果配置错误,请确保你已正确配置JDK环境变量
JDK环境变量配置参考经验:http://jingyan.baidu.com/article/ca41422fe3b7261eae99edc6.html
下载地址:Apache JMeter - Apache JMeter™
打开配置文件
4.1.9 继承AbstractJavaSamplerClient类或实现JavaSamplerClient接口
方法介绍
@Override
public void setupTest(JavaSamplerContext javaSamplerContext) {
}
主要用于并发测试前的一下准备操作,一般做一些接口参数常量初始化
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
return null;
}
主要为多线程并发方法体,一般用于调用接口请求,计算响应时间及断言结果
@Override
public void teardownTest(JavaSamplerContext javaSamplerContext) {
}
主要用于并发结束后的一些操作
@Override
public Arguments getDefaultParameters() {
return null;
}
主要用于JMeter UI界面展示参数项
import com.bestpay.account.service.facade.BalanceQueryFacade;import com.bestpay.account.service.facade.model.BalanceDTO;import com.bestpay.account.service.facade.model.BalanceParamDTO;import com.bestpay.dubbo.result.Result;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 org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.UUID; /** * 压测脚本 * Created by qinjie on 2016/1/27. * 账务余额查询接口 * 场景比例 */public class JTestBalanceQueryFacade extends AbstractJavaSamplerClient{ //加载 BalanceQueryFacade private ApplicationContext context = new ClassPathXmlApplicationContext( "classpath:applicationContext.xml"); private BalanceQueryFacade balanceQueryFacade = (BalanceQueryFacade)context.getBean(BalanceQueryFacade.class); //创建余额查询参数对象 private BalanceParamDTO balanceParamDTO; //创建接口返回对象 private Result
先clean 然后进行package
切换至工程路径
运行mvn dependency:copy-dependencies -DoutputDirectory=lib
如果zk地址为综测地址,建议放入综测进行打开
右键创建线程组
显示自己的测试类
Samples:请求次数
Average:平均响应时间
Median:中间值
90%Line:90%响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率
Throughput: TPS 每秒或每分钟处理交易笔数
至此Dubbo类接口测试联通成功
联通成功
nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet 会话、甚至拨号线路。另外,它并不会消耗大量的 CPU 周期,通常低于百分之二。在更新的计算机上,其CPU使用率将低于百分之一。
上传nmon工具
远程进入172.17.162.73 用户admin/password
复制剪切板内容至txt文本
点击【下一步】
执行java -jar dynatrace-agent-6.2.0.1238-unix.jar
至此dytrace部署完毕
进入bin目录修改jmeter.properties中remote_hosts,添加压力机的ip,其中localhost为本地机器也是压力机
由于两台机器,所以都是2倍。即,1秒内启动2线程,各循环1次。