Fork me on GitHub

SpringBoot学习之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)添加线程组:

1533370431

(2)添加http请求:

1533370936

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

1533371145

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

1533371428

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

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

同时启动1000个线程:

1533373120

### JMeter 自定义变量

新建http请求,添加token:

1533377588

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

1533378489

还能看到返回的数据

1533378668

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

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

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

1533380011

1533380223

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

## Linux下使用JMeter压测

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

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

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

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

redis 压测

看一下redis服务是否在运行

1
2

ps -ef | grep redis

执行:

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

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

看一下其中的一个结果

1533382163

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

再看这条命令:

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

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

1533382655

只测试某些命令的性能

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

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

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

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

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

本文标题:SpringBoot学习之Windows和Linux下的JMeter压测和redis压测

文章作者:WilsonSong

发布时间:2018年08月04日 - 15:08

最后更新:2018年08月16日 - 20:08

原始链接:https://songwell1024.github.io/2018/08/04/JMeter/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------