jmeter使用

来源:互联网 发布:数组和矩阵的区别 编辑:程序博客网 时间:2024/05/19 03:28

Jmeter 安装篇

Jmeter 的安装其实很简单,网上的资料也很多。这里不多说了,直接上步骤。

Step 1: 安装JDK 最好安装1.6 版本以上的,如果本地安装了 JDK 那就查看一下是否配置了环境变量。  

(Jmeter 是用java 开发的,它的运行依赖于java 环境) 有关环境变量的配置,请自行百度。 网上图文教程还是非常丰富的。 

Step 2:下载Jmeter   http://jmeter.apache.org/download_jmeter.cgi  打开下载一个最新的就行了,我下载的版本是 2.13 ==> apache-jmeter-2.13.zip 

Step 3:解压 apache-jmeter-2.13.zip 到  D :apache-jmeter-2.13 。 这个是我自己的目录,你们也可以解压到其他目录。

Step 4: 配置环境变量 在桌面右键 计算机->属性->高级系统设置->高级->环境变量->系统环境变量里面 新建  JMETER_HOME-> D:\apache-jmeter-2.13

找到 CLASS_PATH 变量->点击编辑->在最后面添加 %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;% JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;  

注意要用 ‘;’  英文分号和前面的分开。

Step 5: 打开 D:\apache-jmeter-2.13\bin 目录,然后找到 jmeter.bat 发送到桌面快捷方式。 然后在桌面点击这个  jmeter.bat 快捷方式,这个图形化界面就打开了。

图形化界面本地跑的话会有内存 和 CPU 的限制,下面介绍一下怎样在 linux 环境下搭建 Jmeter 环境。 

 

Linux 安装Jmeter

其实大体步骤是一样的,首先linux 环境必须安装 JDK 。  我们的linux 环境一般都是 Centos 的,那么我们可以用 yum install 命令安装。

具体怎么安装JDK 这里也不赘述了,网上查一下资料不要太多。

然后下载 apache-jmeter-2.13.zip 把它解压到 linux 环境的一个目录下。 我的是放到了 /data1/env  下面。

安装完成以后,编辑 vim /etc/profile 在文件尾添加以下代码:

export JMETER="/data1/env/apache-jmeter-2.13"
export JAVA_HOME="/data1/env/java"
export PATH="$JAVA_HOME/bin:$PATH"
export CLASSPATH=".:$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH"

编辑完成以后保存退出,然后执行:

source /etc/profile 使编辑的配置生效。

 

Jmeter 使用篇

如果想要录制代码可以参考一下这个博客:

http://www.cnblogs.com/fnng/archive/2011/08/20/2147082.html

上面安装好了,那么下面我们就可以开始使用了~

先介绍Windows 下面的图形化界面的使用。

点击桌面上创建的那个 jmeter.bat 快捷方式,然后就会打开jmeter 图形化界面。

左侧的菜单栏里面可以看到测试计划 和 工作台两个选项。

Step 1: 然后右击测试计划->添加->Thread(users)->线程组  (这个性能测试都需要添加的,我们一般的步骤都放在这个线程组里面。进行压力或并发测试)   也可以添加多个线程组,以不同的数量去并发。

Step 2: 线程组里可以进行一些设置附图如下:(基本上用到这几个地方)

Step 3:右击线程组->添加->配置元件->Http请求(默认)  下面以我的一个脚本为例:

  如果你不知道需要 POST 什么内容,可以在Chrome 浏览器上发送一下请求,然后查看这个请求发送的内容。

由于这个请求是要以 json 发送的所以我们还需要配置一个请求头。

右击刚才添加的那个 Http 请求->添加->配置元件->HTTP 信息头管理。

接下来我们要做什么呢?也可以添加一些监听的内容。 

右击 Http 请求->添加->监听器->  聚合报告和查看结果树。  (这两个都是自带的功能还是比较有用的,图表太难看了所以我们需要装一些生成图表的插件。)

我们只需要下载 JMeterPlugins-Extras-1.3.0.zip   &  JMeterPlugins-Standard-1.3.0.zip 这两个插件就可以了,把这两个里面的jar 包解压出来。 

然后放到  D:\apache-jmeter-2.13\lib\ext   下面就可以了,然后改一下  D:\works\apache-jmeter-2.13\bin 下面的jmeter.properties

jmeter.save.saveservice.thread_counts=true 

修改完成以后,重启 jmeter 你就会看到有很多  jp@gc 开头的 选项了。 

然后我们就可以在监听器里面找到几个我们比较关心的指标图表:

jp@gc-Transaction per second   每秒处理的事务

jp@gc-Hit per second  每秒点击量


然后我们也可以通过命令行的方式去生成图表参考:  http://m.blog.csdn.net/blog/cloud_ll/38301029

 

java -jar apache-jmeter-2.8/lib/ext/CMDRunner.jar --tool Reporter --input-jtl ./testresult.jtl --plugin-type LatenciesOverTime --generate-png report-latency.png    系统延时时间java -jar apache-jmeter-2.8/lib/ext/CMDRunner.jar --tool Reporter --input-jtl ~/testresult.jtl --plugin-type TransactionsPerSecond --generate-png report-transactionPerSec.png   TPS

 

好了我们准备工作都做完了,那么在正式跑之前还需要试一下你的脚本能不能跑通。

再线程组里面设置1个线程,跑1次然后到 查看结果树里面看看有没有成功。

绿色的就代表成功了,红色的就代表失败了。 如果失败了,你就需要看一下响应头里面报了什么错误,修改一下脚本。 

如果成功了,那么你就可以设置一下线程和运行的次数,点击  开始运行了。

当然了这个线程的条件是需要按照你的性能测试的需求来调节的~

 

下面来介绍一下怎样使用命令行运行~

Window 环境你需要打开 cmd 命令行窗口,然后打开到   apache-jmeter-2.13/bin 目录下。

然后运行  JMeter.jar -n -t  update_solr.jmx -l result.jtl   

这个命令是本机运行的意思 update_solr.jmx 是你脚本的名字, result.jtl 是你要保存的结果。

这个当然也可以远程运行了,不过这里就不做介绍了。 有兴趣的可以自己去研究一下。

Ctrl + C 可以终止运行~

运行完成以后你就可以打开图形化界面,到对应的图表导入 result.jtl 去生成图表了。

 

Windows 的介绍完了,那我们看一下 Linux 怎么运行吧!

Windows 的环境性能很容易受到本地机器的制约,有时候线程开不高达不到基本要求,所以我们一般放到Linux 机器上去运行,可以利用Linux 强大的性能去做压测。

同样的我们先进入到 apache-jmeter-2.13/bin 目录下面。

我们先要做的是给 jmeter 这个shell 脚本赋权限    chmod +x jmeter

然后再去运行 ./jmeter -n -t update_solr.jmx -l result.jtl 

 

下面是一些命令行模式的参数介绍,做了一下简单的翻译。

对于没有交互的测试,你会选择无界面运行JMeter,命令行运行可以选择以下参数:

For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the following command options

-n This specifies JMeter is to run in non-gui mode  【-n 参数指定JMeter 无界面运行】

-t [name of JMX file that contains the Test Plan].     【- t 参数只能测试计划的脚本的名称】

-l [name of JTL file to log sample results to].            【 - l 参数 指定测试结果存放文件的名称,如果没有会自动生成这个文件】

-r Run all remote servers specified in JMeter.properties (or remote servers specified on command line by overriding properties)  【-r 参数运行所有在 jmeter.properties 文件中配置的远程服务器】

The script also lets you specify the optional firewall/proxy server information:

-H [proxy server hostname or ip address]    【-H 参数可以用 Hostname 或 IP 指定代理服务器】
-P [proxy server port]     【- P 参数指定代理服务器的端口】

Example : JMeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000   

 

Jmeter 结果分析

Jmeter  的结果都记录在一个 jtl 文件中,默认路径放在 apache-jmeter-2.13/bin 目录下面。 所有的图表和报告都是基于这个文件生成的。 

一般命令行运行的话是没有图表生成的,这就需要我们手动去生成图表。 或者把这个文件导出到 Windows 图形化界面下打开去生成这个图表。

那么就让我们简单的分析一下这些图表中有什么东西:

一、聚合报告

Label: 线程组的名称和总计,如果设置了有多个线程组那么就会有多个线程的名称和一个总体的报告。

#Samples:请求数,就是每个线程组一共发送是请求数和总计。

Average:平均响应时间 单位是 毫秒 ms.

Median:中值 50%的响应时间 小于 26ms.

90%Line:90% 的响应时间小于 81ms.

95%Line:95%的响应时间小于 256ms.

Min:最小响应时间 0 。

Max:最大响应时间 5180ms.

Error%: 线程中出错的数量/#Samples*100%   这个数量为0 不代表没有错误,因为只保留两位小数。 如果数量及过大那个小数会被忽略所以你看到的还是 0 。

Throupgput:吞吐量   这里是服务器每秒处理的请求数

KB/sec:是每秒钟请求的字节数。

然后其他图表你可以直接点击查看:Transaction Per Second

这里就不一一列举了,图表比较多。

然后我们也可以通过命令行的方式去生成图表参考:  http://m.blog.csdn.net/blog/cloud_ll/38301029

java -jar apache-jmeter-2.8/lib/ext/CMDRunner.jar --tool Reporter --input-jtl ./testresult.jtl --plugin-type LatenciesOverTime --generate-png report-latency.png    系统延时时间java -jar apache-jmeter-2.8/lib/ext/CMDRunner.jar --tool Reporter --input-jtl ~/testresult.jtl --plugin-type TransactionsPerSecond --generate-png report-transactionPerSec.png   TPS

我们通过各种参数和结果的对比来确认测试成功或失败。 从中分析系统的瓶颈在哪里~

性能分析不是一个简单的东西,每一项都需要大量的学习和实践,我也是刚刚起步。 可以共同学习一起交流,下面就分享两个链接。 写的比较通俗易懂适合初学者:

http://www.cnblogs.com/fnng/archive/2013/03/19/2970315.html    虫师性能分析
http://www.cnblogs.com/jackei/archive/2006/11/13/558720.html   JMETER 性能分析博客

 

0 0
原创粉丝点击