SpringBoot(17)学习之Windows和Linux下的JMeter压测和redis压测

SpringBoot学习之JMeter压测

JMeter入门

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用。

  

jmeter可以做接口测试和压力测试。其中接口测试的简单操作包括做http脚本(发get/post请求、加cookie、加header、加权限认证、上传文件)、做webservice脚本、参数化、断言、关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等。

JMeter的官方网站:http://jmeter.apache.org/

JMeter的参考手册:http://jmeter.apache.org/usermanual/get-started.html

具体的使用参考官网就可以了。

Windows下的压测

Jmeter-http接口脚本

一般分五个步骤:(1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url、路径、请求方式和参数 (4)添加聚合报告 (5)调用接口、查看返回值

(1)添加线程组:

这里写图片描述

(2)添加http请求:

这里写图片描述

(3)在http请求中写入接入url、路径、请求方式和参数 :

这里写图片描述

(4)添加聚合报告和图形结果或查看结果树:

这里写图片描述

聚合报告只是总体的进行解析压测结果。

(5)调用接口、查看返回值:

同时启动1000个线程:

这里写图片描述

JMeter 自定义变量

新建http请求,添加token:

这里写图片描述

压测之后能够看到自己添加的token,

这里写图片描述

还能看到返回的数据

这里写图片描述

JMeter读取自定义文件模拟多用户

需要在线程组里面添加配置元件-CSV Data Set Config,添加文件和自定义文件中对应的变量名

其中遇到文件结束符再次循环(Recycle on EOF):设置True后,允许循环取值

这里写图片描述

这里写图片描述

引入${userToken},与你定义的变量名相同。

Linux下使用JMeter压测

首先在Windows下创建一个压测,然后存为.jmx文件。上传至Linux下
执行

./apache-jmeter-4.0/bin/jmeter.sh -n -t goods_list.jmx -l  result.jtl

这样就可以得到 result.jtl数据了,可以查看结果

当然也可以直接在Linux下直接测试,我这是为了方便就这么做了。

redis 压测

看一下redis服务是否在运行


ps -ef | grep redis

执行:

redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

-c 100 就是100个并发 -n 100000 就是100000个请求。

看一下其中的一个结果

这里写图片描述

100000个请求在2.38s内完成,有4.12%的请求在1ms内完成,一秒大概完成41963.91个请求。以3字节大小测试。

再看这条命令:

redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100

-q 就是quiet,输出少一些,-d 100是存取数据包为100字节大小的数据包,上面默认是3 字节存取的。看一下输出

这里写图片描述

只测试某些命令的性能

redis-benchmark -t set,lpush -q -n 10000 

-t set,lpush 是只测试set和lpush命令。

只测试某些数据存取的性能:

redis-benchmark -q -n 10000 script load "redis.call('set','foo','bar')" 

只对’set’,’foo’,’bar’该命令做压测。

猜你喜欢

转载自blog.csdn.net/WilsonSong1024/article/details/81535933