前面有发过一篇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
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
#
# 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2007-03-21 比价网逐渐在国内兴起