文章目录
一、Apache JMeter简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。本博文只做Apache JMeter压力测试方面的探讨和示例,jmeter版本为5.4.1。
二、安装步骤
0、安装JAVA环境
jmeter依赖Java环境,安装jmeter之前先安装Java,安装方式见Linux之JDK安装与升级
1、官网下载jmeter软件包
root@s162:/opt# wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.1.tgz
2、解压软件包
root@s162:/opt# tar -zxvf apache-jmeter-5.4.1.tgz
root@s162:/opt# ln -s apache-jmeter-5.4.1 jmeter
3、配置环境变量
root@s162:/opt# vim /etc/profile
#添加如下内容到profile文件最后
#jmeter环境变量设置
export JMETER=/opt/jmeter
export PATH=${JMETER}/bin:$PATH
4、查看jmeter版本
root@s162:/usr/local# jmeter -v
三、使用示例
1、启动jmeter软件
命令行下启动jmeter,提示如下下图一;另会弹窗视图窗口见图二。
图一:
图二:
2、设置语言为中文
3、添加线程组
4、线程组参数设置
设置模拟50个并发场景,设置线程数50,Ramp-Up period(in seconds):0,循环次数:1 ;
Ramp-Up period指的是所有线程运行完限定的时间(如果设置为0,就是并发);
如图模拟的是50个线程并发访问网站的场景。
5、添加http请求
6、设置http请求参数
7、添加配置元件
8、添加监视器
8、保存测试计划
9、命令行下执行测试计划
#图形界面下可以直接执行测试计划,也可以在window终端配置后测试计划之后在服务器上命令行下执行测试计划,将测试结果保存到test.jtl文件。
ubuntu@u162:~/Desktop$ jmeter -n -t test.jmx -l test.jtl
#jmeter各参数说明如下
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-l : 指定生成测试结果的保存文件, jtl 文件格式
10、查看测试结果
可以调整并发数等参数进行多次测试。
四、QA
1、二次执行时弹窗告警
解决方案:
root@s162:/opt/jmeter# vim bin/jmeter.properties
#将resultcollector.action_if_file_exists参数值修改为APPEND,表示追加到文件
resultcollector.action_if_file_exists=APPEND
#参数可选值如下,ASK表示询问,为默认值,APPEND表示追加到文件;DELETE表示覆盖原文件。
ASK : Ask user (default value that opens popup)
APPEND : Append results to existing file
DELETE : Delete existing file and start a new file
#重启jmeter后生效