再次系统的整理一下深入一下性能测试
一,查看结果树
二,聚合报告
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个线程跑的结果,
含义
这个重点理解一下,比如192/s
就是说按照这个性能,一秒可以处理192个请求,
计算
是怎么算出来的:是使用1000/平均值*线程数,
- 第一步,我们知道了平均值是25毫秒,
- 第二步:那么一秒之内可以处理多少个呢,就是1000/平均值,这就是一秒可以处理这样的请求多少个,
为什么是1000,因为我们平均值是毫秒, - 第三步:我们是5个线程运行的,所以是1000/25*5 = 200
注意
- 1,吞吐量差不多,但是统计有差异,因为jmeter的取样是有时间延迟的,不是最新的,
- 2,注意这个吞吐量,我们再实际测试的时候,不能使用图形化界面,因为这个界面也会消耗一些资源的,
测试计划就是xml格式的文件,
/jmeter .sh -n -t 文件名.jmx -l 文件名.jtl
这种方式会30秒刷新一次报告,就是聚合报告的几个字段,
并发和tps的关系
并发增加,tps是上升的,但是并发一直增加到一个临界值,tps就不会变大了,如果并发再大,就还是有error了,所以是一个先上升,然后不变,然后报错的关系,
比如一个场景:
你启动python服务,然后用5个并发执行,吞吐量是200/s
当你加并发数到6的时候,会出现error,所以并发5个就是一个临界点了,超过这个就会报错了,tps是200,就是一秒
对比性能
可以使用python启动一个服务,
然后使用docker 运行一个Nginx启动一个服务,然后看看性能是否有提升,可以访问Nginx的静态网页,
nginx可用来做:静态HTTP服务器、反向代理服务器、负载均衡、虚拟主机、邮件代理服务器。
这样就可以看到Nginx部署之后的性能提升情况,
经过测试很明显,Nginx的处理性能,比纯python的要好多了,因为Nginx是一个专业的静态资源web服务器