性能测试工具-jmeter初学(一)

1.   win环境的安装

1.1.  jdk的安装

File : 下载jdk-8u60-windows-x64.exe,双击安装,选择安装路径,例如:

C:\Program Files\Java\jdk1.8.0_60

 

更改环境变量

 

 

在系统变量中:新建

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_60

 

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

 

设置path属性,变量名:path

变量值:%java_home%\bin;%java_home%\jre\bin;

此属性一般都是有的,只需添加即可,注意分号的问题

测试安装是否成功:在doc下输入javac,弹出如下信息,就代表成功了。

 

1.2.  Jmeter的安装

  1. 下载 apache-jmeter-2.13.zip 解压,放在自己合适的位置。
  2. 插件安装

直接将JMeterPlugins-Standard-1.3.1.zip解压后,文件放在

D:\jmeter\apache-jmeter-2.13\lib\ext下。

  1. 启动:

\apache-jmeter-2.13\bin\jmeter.bat 运行该脚本,启动图形界面。

 

 

2.   Linux的安装

2.1.  Jdk

vi /etc/profile 添加如下信息:

export JAVA_HOME=/export/servers/jdk1.7.0_75

export JAVA_BIN=/export/servers/jdk1.7.0_75

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export  JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -Djava.awt.headless=true -Dsun.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.ttl=300"

export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS

2.2.  Jmeter

直接cp到某一目录即可使用。

例如:/export/servers/apache-jmeter-2.13 (java的特性:一次编译,到处运行。)

1.   Jtl的数据处理

由以下命令产生的 jtl 可以按照如下方法进行数据分析:

./bin/jmeter -n -t ./jiaoben/duojiaoyi.jmx  -l ./duojiaoyi1.jtl

1.1.  把jtl下载到win

用jmeter的图形界面:聚合报告 打开此文件

 

1.2.  JMeterPluginCMD

JMeterPluginCMD命令行工具生成png图片和csv统计文件。(参考脚本:File :  2csv.sh)

 

生成png图片:

java -jar $CMDRunnerPath/CMDRunner.jar  --tool Reporter --generate-png ThreadsStateOverTime.png --input-jtl  1.jtl  --plugin-type ThreadsStateOverTime

 

生成csv格式:

java -jar $CMDRunnerPath/CMDRunner.jar  --tool Reporter --generate-csv ThreadsStateOverTime.csv --input-jtl  1.jtl  --plugin-type ThreadsStateOverTime

 

也可以统计指定时间段的数据:

java -jar $CMDRunnerPath/CMDRunner.jar  --tool Reporter --generate-csv ThreadsStateOverTime.csv --input-jtl  1.jtl  --plugin-type ThreadsStateOverTime  --start-offset 60 –end-offset 300

整个时间和选择时间的2张图分别如下。

 

 

 

也可以一次性生成两个文件。下面是改命令的参数:

l  –generate-png 指定png图片文件

l  –generate-csv 指定csv文件名

l  –input-jtl 指定要解析的jtl文件

l  –plugin-type 指定要输出的数据类型,比如响应时间、cpu使用率、错误率等

l  AggregateReport = JMeter’s native Aggregate Report, can be saved only as CSV 聚合报告

l  SynthesisReport = mix between JMeter’s native Summary Report and Aggregate Report, can be saved only as CSV

l  ThreadsStateOverTime = Active Threads Over Time 线程数随时间的变化曲线

l  BytesThroughputOverTime 流量随时间的变化曲线

l  HitsPerSecond 点击率随时间的变化曲线

l  LatenciesOverTime 延迟随时间的变化曲线

l  PerfMon = PerfMon Metrics Collector 服务器参数随时间变化曲线注意这个需要在jmx脚本中添加,服务器监控,要指定ip、端口、监控项,还需要指定perfMon的输出文件,或者在命令行指定,如sh jmeter.sh -n -t HTTP请求-baidu.jmx -l 2.jtp -JforcePerfmonFile=true,

l  这样会输出在当前路径

l  ResponseCodesPerSecond 响应码随时间变化曲线

l  ResponseTimesDistribution 响应时间分布

l  ResponseTimesOverTime 响应时间随时间变化曲线

l  ResponseTimesPercentiles 响应时间的百分比

l  ThroughputVsThreads 吞吐率随线程变化曲线

l  TimesVsThreads = Response Times VS Threads 响应时间随线程变化曲线

l  TransactionsPerSecond 事务随时间变化曲线

l  PageDataExtractorOverTime

l  MergeResults

2.   Server机器资源的监控及数据分析

2.1.  监控及结果下载

File : 下载:nmonTool.zip

File :  Nmon的分析结果项说明:nmon分析文件各sheet含义.docx

修改 \nmonTool\datas\Config.xml “服务器配置信息”,指定要监控的机器ip, 登录用账户及密码。

 

运行\nmonTool\dos.bat, 使用如下命令工作:

run setup 安装nmon文件(配置文件NmonRoot来修改)

run start 运行nmon文件(目前默认间隔120秒,执行200次)

run stop  停止nmon文件

run download 下载nmon结果(至当前目录下)

2.2.  结果分析

File :  \nmonTool\nmon analyser v34a-64.xls

选择要分析的文件,得到详细的分析结果。

File : 请参考结果文件:nmon结果数据及分析demo.zip

 

 

 

3.   接口测试

File :  TestLength.zip (myeclipse 工程)

4.   Jconsole & jvisualVM的配置方式

  1. 启动服务的可远程监控端口

/export/Domains/域名.jd.com/server1/bin/start.sh

在JAVA_OPTS中添加如下信息:

-Dcom.sun.management.jmxremote.port=1210 (开放1210端口)

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

-Djava.rmi.server.hostname=192.168.170.39

 

重启该server1

netstat -ano | grep "1210" 查看该端口是否启用

 

  1. Win上,在jdk的安装目录下例如:C:\Program Files\Java\jdk1.8.0_60\bin 下启动 jconsole.exe,界面如下:

 

 

 

 

  1. jVisualVM与jconsole的连接方式相同。

 

 

posted @ 2016-01-06 10:10  ~乖乖~  Views(550)  Comments(0Edit  收藏  举报