再次系统的整理一下深入一下性能测试

一,查看结果树

java jemeter 压测qps jmeter压测结果_java jemeter 压测qps

二,聚合报告

java jemeter 压测qps jmeter压测结果_java jemeter 压测qps_02

Label:

就是请求名称

Samples:

总线程数,值 = 线程数 * 循环次数

Average:

单个请求的平均响应时间,单位是毫秒,值 = 总运行时间 / 发送到服务器的总请求数,
比如运行一次,时间4毫秒,就是4/1 = 4

Median、90%line、95%line、99%line

分别代表50%的用户响应时间、90%的用户响应时间、95%的用户响应时间、99%的用户响应时间,也就是有百分之多少的请求小于这个值。其中,90%line是性能测试中比较重要的一个衡量指标。

Min,Max,Error%:

Min:最小响应时间,单位是毫秒
Max:最大响应时间,单位是毫秒
Error%:错误率,发生错误的请求 / 总请求数

Throughput:

吞吐量,表示每秒完成的请求数。这是一个重点

比如这是5个线程跑的结果,

java jemeter 压测qps jmeter压测结果_java jemeter 压测qps_03

含义

这个重点理解一下,比如192/s
就是说按照这个性能,一秒可以处理192个请求,

计算

是怎么算出来的:是使用1000/平均值*线程数,

  • 第一步,我们知道了平均值是25毫秒,
  • 第二步:那么一秒之内可以处理多少个呢,就是1000/平均值,这就是一秒可以处理这样的请求多少个,
    为什么是1000,因为我们平均值是毫秒,
  • 第三步:我们是5个线程运行的,所以是1000/25*5 = 200

注意

  • 1,吞吐量差不多,但是统计有差异,因为jmeter的取样是有时间延迟的,不是最新的,
  • 2,注意这个吞吐量,我们再实际测试的时候,不能使用图形化界面,因为这个界面也会消耗一些资源的,
    测试计划就是xml格式的文件,
/jmeter .sh -n -t 文件名.jmx -l 文件名.jtl
这种方式会30秒刷新一次报告,就是聚合报告的几个字段,

java jemeter 压测qps jmeter压测结果_python_04

并发和tps的关系

并发增加,tps是上升的,但是并发一直增加到一个临界值,tps就不会变大了,如果并发再大,就还是有error了,所以是一个先上升,然后不变,然后报错的关系,

比如一个场景:
你启动python服务,然后用5个并发执行,吞吐量是200/s
当你加并发数到6的时候,会出现error,所以并发5个就是一个临界点了,超过这个就会报错了,tps是200,就是一秒

对比性能

可以使用python启动一个服务,

然后使用docker 运行一个Nginx启动一个服务,然后看看性能是否有提升,可以访问Nginx的静态网页,
nginx可用来做:静态HTTP服务器、反向代理服务器、负载均衡、虚拟主机、邮件代理服务器。

这样就可以看到Nginx部署之后的性能提升情况,

经过测试很明显,Nginx的处理性能,比纯python的要好多了,因为Nginx是一个专业的静态资源web服务器