OscarXie.net

关注质量与体验——电子商务与自动化测试

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

前面有发过一篇Jmeter使用感受的博文,最近再次使用,这里再谈谈。Jmeter除了从官网(http://jmeter.apache.org)获取信息,我还阅读了Jackei的博文,很有帮助,推荐一下

http://www.cnblogs.com/jackei/category/32808.html

先列下我使用过的功能:

1. Thread Group


 

2. HTTP Cookie Manager

 

 

3. HTTP Header Manager

 

 

4. HTTP Request Defaults

 

 

5. Random Variable

 

 

6. CSV Data Set Config

 

 

7. HTTP Request HTTPClient

 

Retrieve All Embedded Resources from HTML Files 选项选中可以下载Non-Html的内容,具体见http://www.cnblogs.com/jackei/archive/2012/01/05/557160.html


8. View Results Tree

 

 

9. PerfMon Metrics Collector, 可以用来收集CPU/Memory信息,具体见http://code.google.com/p/jmeter-plugins/wiki/PerfMon

 

 

10. Generate Summary Results

 

 

前面有说到Jmeter的GUI不给力,一般使用Non-GUI的命令行,既然是免费的工具也能接受,不知道2.6新版有没有改善(http://jmeter.apache.org/changes.html

单独使用命令./jmeter -n -t DE-Test.jmx还是不太给力,可以用shell写个脚本

#!/bin/bash
#
#
 Copyright 2010 xxx Reserved.
#
 Author: Oscar Xie

cd /xxx/loadtest/bin
#JMETER_BIN=http://www.cnblogs.com/jmeter-2.3.4/bin/ApacheJMeter.jar
JMETER_BIN=../jakarta-jmeter-2.4/bin/ApacheJMeter.jar
LOADTEST_DIR=../
JMX_FILE=$LOADTEST_DIR/bin/DE-Test.jmx
LOADTEST_BIN_DIR=$LOADTEST_DIR/bin
URL_FILE=$LOADTEST_DIR/bin/url.csv

RESULT_DIR=/xxx/results
LOG_DIR=$RESULT_DIR/log
JTL_DIR=$RESULT_DIR/jtl
STATS_DIR=$RESULT_DIR/stats
JPPM_DIR=$RESULT_DIR/perf

#rm -rf $RESULT_DIR
mkdir -p $RESULT_DIR
mkdir $LOG_DIR $JTL_DIR $STATS_DIR $JPPM_DIR

JVM_ARGS="-Xms3072m -Xmx3072m -Dpropname=propvalue"

RunJMeter() {
  USER=$1
  LOG_FILE=$LOG_DIR/`hostname`-loadtest.$USER.log
  rm -f $LOG_FILE
  JTL_LOG=$JTL_DIR/`hostname`-loadtest.$USER.jtl
  rm -f $JTL_LOG
  JPPM_FILE=$JPPM_DIR/`hostname`-loadtest.$USER-perf.jtl
  rm -f $JPPM_FILE
  $JMETER_BIN --nongui --testfile $JMX_FILE --logfile $LOG_FILE -Jjppmfile=$JPPM_FILE \
      --jmeterproperty threadCount=$USER \
      --jmeterproperty loadTestLog=$JTL_LOG \
      --jmeterproperty urlFile=$URL_FILE \
      --jmeterproperty loadPerfLog=$JPPM_FILE \
      --jmeterproperty duration=300 \
      --jmeterproperty adclienthost=xxx.machine \
      --jmeterproperty adclientport=80 \
      --jmeterproperty UrlFile=$URL_FILE
}

STATS_GENERATOR_JAR=$LOADTEST_BIN_DIR/lib/JMeterLogToStats_deploy.jar
STATS_HTML_DIR=../

GenerateJMeterStats() {
  java -jar $STATS_GENERATOR_JAR \
            --loadtest_jtl_dir=$JTL_DIR \
            --loadtest_stats_dir=$STATS_DIR \
            --loadtest_html_dir=$STATS_HTML_DIR \
            --csv_filename_pattern=".*-loadtest.([0-9]+).jtl" \
            --stats_filename_pattern=".*-loadtest.([0-9]+).stats"
}


RunJMeter 100
RunJMeter 400
RunJMeter 700
RunJMeter 1000
RunJMeter 1500
RunJMeter 2000

#java -jar $STATS_GENERATOR_JAR --loadtest_jtl_dir=$JTL_DIR --loadtest_stats_dir=$STATS_DIR --loadtest_html_dir=$STATS_HTML_DIR
GenerateJMeterStats
cp $LOADTEST_DIR/loadtest.html $RESULT_DIR 


posted on 2012-03-21 12:11  oscarxie  阅读(2409)  评论(0编辑  收藏  举报