初见Jmeter测试

 

在写了两个简单的HttpServer之后, 这两个分别是单线程和多线程的, 想测试一下,他们的性能差别怎么样.

我们使用的工具是Jmeter.

这个我以前没用过, 这次是第一次用, 使用起来很方便.

JMeter官网: https://jmeter.apache.org/

下载下来解压. 在bin里面打开jmeter.bat就行 (但是需要Java环境)

测试机器的硬件

cpu.png

内存为8G的DDR3

添加线程组

添加线程组

Number Of Threads(users):用户的线程个数

Ramp-up period: 线程启动的速度. 如果10个线程设置100秒, 那么每10秒启动一个线程.

Loop Count: 每个线程运行的次数. 如果选择infinite那么将一直运行下去.

添加监听器

结果监听器

添加具体的监听器

这里我添加的是Aggriate Report 和 Graph Result

开测

设置测试线程个数为4

单线程中测试结果如下 single.png

qps大概在4200

多线程设置线程个数为5, 测试结果如下

Multi.png

qps大概在4600

这个…… 这个….. 这个…. 竟然是菜鸡互啄的这种结果!

难道是测压压力不够大?

好的. 加!

但我把测试线程组的个数设置为8

然后单线程如下. 还在在4200左右.

Single8.png

多线程如下, 跑到了5100左右.

Multi8.png

好, 再提高一下线程测试组的线程数到达12个来看看. 这次我们就测试, 多线程的Server, 因为单线程的已经到达瓶颈了.

m12.png

WOW, 又提到了5400左右.

看来可以接着轰! 再把线程测试组的线程个数提到16个来看看.

m16.png

哈哈哈哈, 5200, 到瓶颈了, 不升反降.

情况.png

CPU压榨到100%

也就将多线程server的最大数设置为了5. 没有往上面加, 感兴趣的可以试下.