news 2026/2/7 22:55:54

如何测试效能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何测试效能


除了功能方面的测试外,我们还要测试那些"服务质量"。如效能测试、负载测试、压力测试。我们在本章前面讲到了这三种测试。在Stone项目中,以产品搜索为例,这三种测试的区别如下:
效能测试:在100个用户的情况下,产品搜索必须在3秒钟内返回结果。
负载测试:在2000个用户的情况下,产品搜索必须在5秒钟内返回结果。
压力测试:在高峰压力(4000个用户)持续48小时的情况下,产品搜索的返回时间必须保持稳定。系统不至于崩溃。
我们可以举一个现实生活中旅客乘坐列车的例子来做对比。
效能测试:在80%上座率的情况下,期望:列车按时到达,并且乘客享受到优质服务。乘务员不要太累。
负载测试:在100%上座率的情况下,期望:列车大部分按时到达,乘客享受到基本服务。乘务员的疲劳在可恢复范围内。
压力测试:在高峰压力是200%上座率,全国铁路系统增加20%的列车,持续15天的情况下,期望:列车能到站,乘客能活着下车,系统不至于崩溃。乘务员也能活着下车。
说一句题外话,飞机如何做压力测试?波音公司在早期是用沙袋或铅块压在飞机机翼上的不同部位,来模拟飞机在各种激烈运动中各个部位的受力,受力的上限一般是平常水平飞行受力的7倍。当然,现在的飞机设计公司都有一系列完备的模拟和测试工具(如风洞和计算机模拟工具等)。效能、负载、压力这些方面的测试会产生很多数据,这些数据最好保存在数据库中,以便于日后跟踪分析。这些数据将为以后做网站容量规划(CapacityPlanning,又称能力规划)提供重要的依据。在VSTS中,效能和压力测试都可以用"LoadTest"来实现,LoadTest牵涉到许多因素,因此我们需要按部就班地设置,如图 所示。

负载测试的一个核心概念是"场景",这与软件设计的场景有所区别,它主要包含负载测试的各种参数。
1.停顿时间(ThinkTime):在每次请求之间和一批测试之间的停顿。
2.负载模型(LoadPatter):模拟的用户量是恒定在一个数值的(如:总是30个用户),或者是分级进行的(如:开始是5个用户,每
分钟增加10用户,直到最高50个用户)。
3.测试混合模型(TestMix):此次负载测试要运行多少种测试,每种测试所占的比例是多少。
4.浏览器混合模型(BrowserMix):各种浏览器的选择及比例。
5.网络混合模型(NetworkMix):各种带宽的网络及比例。
设置好场景后,下一步要决定我们收集什么样的效能数据
(Performance Counter),这时,我们可以收集代理机器(Agent,模拟的服务请求从这里发出)和控制机器(Controller)的效能数据,更重要的是收集网络服务器的效能数据(如图 所示)。

这些效能数据会反映在负载测试中。最后一步是设置运行负载测试中的各种参数。图13-7是某次网络负载测试的运行结果。

网络应用的负载测试比较复杂,要下一番苦功才能掌握。一般来说,我们会将所有数据都保存到数据库中,以便将来做分析。至于这次测试的目标:确认网络服务器能否在规定时间内处理用户的请求,服务器上有没有出现错误。这两种数据都能立即得到。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 9:15:20

Axure RP 中文界面终极指南:5分钟实现完整汉化

Axure RP 中文界面终极指南:5分钟实现完整汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包,不定期更新。支持 Axure 9、Axure 10。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Ax…

作者头像 李华
网站建设 2026/2/6 4:08:04

群晖NAS百度网盘极速部署终极方案:告别繁琐操作的高效指南

还在为群晖NAS与百度网盘之间的数据同步而烦恼吗?本方案将彻底改变你对NAS云存储的认知,通过全新的部署思路让你在30分钟内完成百度网盘客户端的完美整合,享受前所未有的文件管理效率! 【免费下载链接】synology-baiduNetdisk-pac…

作者头像 李华
网站建设 2026/2/3 14:51:52

Dify + Python自动化提取DOCX图片(完整代码+避坑指南)

第一章:Dify DOCX 图片 提取在处理文档自动化任务时,从 DOCX 文件中提取嵌入的图片是一项常见需求。Dify 作为一个支持多模态数据处理的平台,提供了灵活的接口能力,结合 Python 的 python-docx 库,可以高效实现 DOCX 中…

作者头像 李华
网站建设 2026/2/1 11:30:31

Dify Charset配置实战(从原理到部署的完整解决方案)

第一章:Dify响应Charset配置的核心意义在构建现代化的Web应用时,字符集(Charset)的正确配置是确保数据完整性和用户体验的关键环节。Dify作为一款支持多语言、高扩展性的AI应用开发平台,对Charset的响应机制进行了深度…

作者头像 李华
网站建设 2026/2/7 3:17:27

百度网盘macOS版SVIP功能技术实现与下载性能优化方案

百度网盘macOS版SVIP功能技术实现与下载性能优化方案 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 针对百度网盘macOS版本存在的下载速度限制问题&am…

作者头像 李华