浅谈网站性能测试
作者:pigleis blog 发布时间:[ 2017/3/17 13:56:57 ] 推荐标签:软件测试 网站 性能测试
查看压测结果
以下是执行 wrk 后的输出结果:
Running 10s test @ http://localhost:8080/hello/piglei
5 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 336.28ms 651.93ms 1.72s 81.42%
Req/Sec 657.74 547.89 3.47k 72.81%
Latency Distribution
50% 28.88ms
75% 38.64ms
90% 1.71s
99% 1.72s
33320 requests in 10.00s, 4.10MB read
Requests/sec: 3331.92
Transfer/sec: 419.74KB
在一次压测结果中,有很多有用的指标:
· 吞吐率 Requests/sec: 服务吞吐能力,也是一秒钟平均处理多少请求数。它通常是压测结果中重要的指标。
· 数据传输速率 Transfer/sec: 数据传输速率,压测响应结果较大的页面时,请尤其注意该值有没有达到网络瓶颈。
· 响应时间 Latency: 有关响应时间有很多不同值,请不要只关注平均响应时间,更需要注意小值、大值、百分位值、标准差等等。
· 错误请求数: 当并发数过高,或服务处理能力不够时。请求可以发生错误。你的服务可以多承受多少并发而不产生错误?这是需要重点关注的指标之一。
可能影响压测结果的因素
1. HTTP 响应是否开启 Gzip 压缩
如果目标服务处在 Nginx 等支持 gzip 压缩的服务后,而刚好请求响应体又比较大。那么是否开启压缩会较大程度影响到压测结果。每个工具开启压缩的方式都不一样,一般情况下,你需要手动添加 Accept-Encoding: gzip, defalte 请求头来开启 Gzip 压缩。
2. 测试机器与目标服务之间的网络质量
测试机器和目标服务之间的网络状况会很大程度影响压测结果。所以,好保证测试机与目标服务处在同一网段。同时关注压测结果中的数据传输速度(Transfer/sec)是否接近网络速率极限值。
3. 负载均衡器
如果你的目标服务前面有配置负载均衡器,那么它可能会对测试结果产生影响。
比如,使用 Nginx 的 proxy_pass 配置的后端服务,极限 RPS 在几千左右。如果后端服务的吞吐率非常高,那需要考虑负载均衡器会不会成为你测试的瓶颈所在。
4. 是否开启了 HTTP 长连接
较现代的 HTTP 服务器基本都支持持久化连接(以前俗称 keep-alive),在测试过程中,请确定你的测试工具与服务端是否都开启了 HTTP 长连接选项。
因为每次压测通常要产生非常多次请求,客户端的连接是否可以复用对结果影响非常大。可以的话,请将开启或关闭长连接作为两种情况分开测试。
结束
以一个测试外行身份谈了一些 HTTP 服务测试相关的内容,如有错误,敬请指正。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南