博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jmeter 制定自动压测
阅读量:2133 次
发布时间:2019-04-30

本文共 1997 字,大约阅读时间需要 6 分钟。

jmeter静默压测

# JMeter 静默压测    ${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}    # 生成Web压测报告    ${jmeter_path}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}

Linux  启动jmeter出现错误:

当使用jmeter 非GUI模式 对java请求进行性能测试时,在执行结束时会报错:

The JVM should have exitted but did not.

The following non-daemon threads are still running (DestroyJavaVM is OK):

导致这种错误原因

在执行java请求时会在jmeter线程之外,另外启动java线程,导致在脚本执行结束时JVM无法退出。

若要避免这种现象,需要修改bin/jmeter.properties 中的jmeterengine.force.system.exit=true

 

linux直接使用jmeter命令 需要配置jmeter环境变量  

自动压测:

编写压测脚本,让脚本自动执行 实现线程数的压测

实现思路

  jmeter 脚本  压测逻辑
  shell  控制逻辑
  并发数更改(linux 三剑客)
  Jmeter静默运行 脱离UI限制  使得自动化运行更稳定

# 压测脚本模板中设定的压测时间应为60秒export jmx_template="order_auto"export suffix=".jmx"export jmx_template_filename="${jmx_template}${suffix}"export os_type=`uname`# 需要在系统变量中定义jmeter根目录的位置,如下export jmeter_path="/usr/local/appach/jmeter/apache-jmeter-5.3"echo "自动化压测开始"# 压测并发数列表thread_number_array=(10 20 30 40)for num in "${thread_number_array[@]}"do    # 生成对应压测线程的jmx文件    export jmx_filename="${jmx_template}_${num}${suffix}"    export jtl_filename="test_${num}.jtl"    export web_report_path_name="web_${num}"    rm -f ${jmx_filename} ${jtl_filename}    rm -rf ${web_report_path_name}    cp ${jmx_template_filename} ${jmx_filename}    echo "生成jmx压测脚本 ${jmx_filename}"    if [[ "${os_type}" == "Darwin" ]]; then        sed -i "" "s/thread_num/${num}/g" ${jmx_filename}    else        sed -i "s/thread_num/${num}/g" ${jmx_filename}    fi    # JMeter 静默压测    ${jmeter_path}/bin/jmeter -n -t ${jmx_filename} -l ${jtl_filename}    # 生成Web压测报告    ${jmeter_path}/bin/jmeter -g ${jtl_filename} -e -o ${web_report_path_name}    rm -f ${jmx_filename} ${jtl_filename}doneecho "自动化压测全部结束"

直接执行脚本

sudo ./auto_press.sh

压测结果如下:

测试数分别是10 20 30 40

拉取测试报告到本地,然后查看压测报告:

用户并发数为10时:

用户数为20时

用户并发数为30时:

用户并发数为40时:

 

可以看出在用户压测数为10 20 30 40 时,都没有出现错误,且流量是在增加的

 

接下来增加压测数据:

在用户数为100  200 300 400  时压测结果如下:

压测数100时:

压测数200

压测数300时:

 压测数400时:

 可以看出压测数为300时已经出现了错误,再增加用户数,错误率继续增加,所有可以找到最适宜的用户数在200-300之间

 

转载地址:http://huzgf.baihongyu.com/

你可能感兴趣的文章
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>
一个隐马尔科夫模型的应用实例:中文分词
查看>>
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
机器学习算法应用中常用技巧-2
查看>>
通过一个kaggle实例学习解决机器学习问题
查看>>
决策树的python实现
查看>>
Sklearn 快速入门
查看>>
了解 Sklearn 的数据集
查看>>
用ARIMA模型做需求预测
查看>>