【Jmeter】Linux上Jmeter的使用

由于一些接口,只能通过服务器访问,不能外网访问,不得已只能在其它服务器上压测

一、安装

1、安装Java

# 切换到root用户
yum install java

2、配置Java环境变量

vi /etc/profile

在文件最后加入:

#set java environment (通过yum安装的默认路径为:/usr/lib/jvm)
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH

# 修改/etc/profile之后让其生效
source /etc/profile

# 验证java
java -version

3、安装jmeter

上传jmeter到linux服务器、解压

cd /data
unzip apache-jmeter.5.2.1.zip

4、Jmeter环境变量

 vi /etc/profile
# 在文件最后添加以下内容:
export JMETER=/data/apache-jmeter.5.2.1 (Jmeter的安装目录)
export CLASSPATH=$JMETER/lib/ext/ApacheJMeter_core.jar:$JMETER/lib/jorphan.jar:$CLASSPATH
export PATH=${JMETER}/bin/:${PATH}
# 使环境变量生效
source /etc/profile
# 验证是否安装成功:
jmeter -v
# 如出现版本号,则安装成功

二、Jmeter配置

1、基础配置修改

# 修改jmeter的bin目录下的user.properties(可以看到请求数据和响应数据,调试通了建议关闭)
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.encoding=true
# 其它问题

2、修改句柄限制

ulimit -a 
ulimit -n 65535

3、修改系统端口分配限制,适用大数量

# 查看liunx支持的客户端连接端口范围
cat /proc/sys/net/ipv4/ip_local_port_range
# 查看端口有没用完  netstat -an   查看是否有端口在 timewait
# 调低端口释放后的等待时间,默认为60s,修改为15~30s。
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout

# 修改 tcp/ip 协议配置,通过配置 /proc/sys/net/ipv4/tcp_tw_reuse,默认为0,修改为1,释放TIME_WAIT端口给新连接使用。
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

# 修改 ctp/ip 协议配置,快速回收socket资源,默认为0.修改为1。
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

三、接口测试

1、测试脚本编写

1、在windows系统下编写,注意客户端与服务端的版本最好一致
2、http请求注意勾选keep-alive
3、生成的jmx上传到测试服务器,可在服务器上直接编辑修改并发数量等数值

2、运行

jmeter -n -t after_call.jmx -l result_1000.jtl

-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

四、结果分析

1、运行结果

summary = 640000 in 00:06:17 = 1697.4/s Avg:  1722 Min:     6 Max: 43033 Err: 16807 (2.63%)

summary:总数
00:06:17:时间6分17秒
1697.4/s:qps为1697.4/s
Avg:1722 : 平均响应时间为1722ms
Min:最小响应时间
Max:最大响应时间
Err:错误数量
(2.63%):错误率

2、jtl文件

可以导出在windows上的jmeter中打开,查看结果树、聚合报告,在文件名后面的浏览按钮点击打开

你可能感兴趣的:(性能测试,jmeter,接口)