news 2026/6/22 19:59:33

效能测试 (Performance Test)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
效能测试 (Performance Test)

效能测试 (Performance Test)
用户使用软件,不光是希望软件能够提供一定的服务,而且还要求服务的质量要达到一定的水平。软件的效能是这些"非功能需求"或者"服务质量需求"的一部分。效能测试要验证的问题是:软件在设计负载内能否提供令用户满意的服务质量。这里涉及如下两个概念。
1.设计负载首先要定义什么是正常的设计负载。从需求说明出发,可得出系统正常的设计负载。例如,一个购物网站,客户认为正常的设计负载是每分钟承受20次客户请求。
2.令用户满意的服务质量其次要定义什么样的质量是令用户满意的。比如,同一个购物网站,用户满意的服务质量可以定义为:每个用户的请求都能在2秒钟内返回结果。
针对以上两点还可以逐步细化。
1.设计负载的细化上面我们只提到"承受20次客户请求",那么这些客户的请求到底是什么,可以按请求发生的频率来分类。
1)用户登录(10%)。
2)用户查看某商品详情(50%)。
3)用户比较两种商品(10%)。
4)用户查看关于商品的反馈(20%)。
5)用户购买商品,订单操作(5%)。
6)所有其他请求(5%)。
2.服务质量的细化有些请求,是要对数据进行"写"操作,可以要求慢一些,比如"用户下订单,购买商品",对这一服务质量,请求可以放宽为5秒钟,甚至更长。
除了用户体验到的"2秒钟页面刷新"目标外,效能测试还要测试软件内部各模块的效能,这要求软件的模块能报告自身的各种效能指标,通过Perf-mon或其他测试工具表现出来。和别的测试不同,效能测试对硬件要有固定的要求,而且每次测试需要在相同的机器和网络环境中进行,这样才能避免外部随机因素的干扰,得到精准的效能数据。
问:我们以前做效能测试的时候,服务器上都没有任何负载,数据库里也没有几条记录,所以效能都很不错,可是当系统真的运行起来时就不行了。这些效能测试是自欺欺人的,对么?
答:在做效能测试的时候,的确要避免在不现实的环境中测试,例如要避免在没有任何用户、商品记录的系统上做测试;但是也没有必要为了追求真实而过分模拟随机的环境。简单地说,现实的环境有如下两方面。

1.现实的静态数据比如上面提到的数据库的各种记录,如果要模拟一个实际运行的商业网站,除了一定数量的用户和商品记录外,还得模拟在运行一段时间后产生的交易记录。
2.现实的动态数据这就是负载,现实中总会有一些人在同时使用这一个系统。效能测试中要考虑到"负载",可以分为:
1)零负载,即只有静态数据,在这种情况下测试的结果应该是稳定的,可以不断地收集数据进行回归测试;
2)加上负载,根据具体情况可以分负载等级进行测试。
同时,客户会问,"如果我的系统慢了,怎么办,我是增加机器的数量,还是提高每个机器的处理能力?"这是我们要回答的问题。效能测试的结果应该成为"用户发布指南"的一部分,为用户发布和改进系统提供参考。在VSTS中如何进行效能测试,本章后面还会详细讲解。在进行效能测试的过程中,可以得到系统效能和负载的一个对应关系:这时,就可以看到能维持系统正常功能的最大负载是多少。如果负载足够大,或者过分大,那就成了下一个测试的目标-压力测试。

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

如何用Excel实现3D打印自由?FullControl-GCode-Designer完全指南

如何用Excel实现3D打印自由?FullControl-GCode-Designer完全指南 【免费下载链接】FullControl-GCode-Designer Software for designing GCODE for 3D printing 项目地址: https://gitcode.com/gh_mirrors/fu/FullControl-GCode-Designer 还在为3D打印设计软…

作者头像 李华
网站建设 2026/6/12 5:18:52

Anaconda配置PyTorch环境后jupyter not found?重新安装nb_conda_kernels

Anaconda配置PyTorch环境后jupyter not found?重新安装nb_conda_kernels 在搭建深度学习开发环境时,你是否遇到过这样的场景:已经用 Anaconda 创建了一个专用于 PyTorch 的虚拟环境,也安装了 Jupyter Notebook,可一旦启…

作者头像 李华
网站建设 2026/6/19 21:59:37

图解说明Keil5 Debug调试常用按钮与作用

从零搞懂Keil5调试:每个按钮背后都藏着排错的钥匙你有没有过这样的经历?代码编译通过,下载进单片机后却毫无反应。LED不闪、串口无输出,程序像“死”了一样——这时候,光看代码已经没用了。真正能救你的,是…

作者头像 李华
网站建设 2026/6/9 4:53:48

Anaconda配置PyTorch环境后无法识别GPU?检查cudatoolkit版本

Anaconda配置PyTorch环境后无法识别GPU?检查cudatoolkit版本 在搭建深度学习开发环境时,你是否也遇到过这样的场景:显卡驱动已经装好,NVIDIA的nvidia-smi命令能正常输出CUDA版本,可一旦运行torch.cuda.is_available()…

作者头像 李华
网站建设 2026/6/22 4:40:09

如何用NodeGraphQt构建可视化编程环境:终极指南

如何用NodeGraphQt构建可视化编程环境:终极指南 【免费下载链接】NodeGraphQt Node graph framework that can be re-implemented into applications that supports PySide2 项目地址: https://gitcode.com/gh_mirrors/no/NodeGraphQt 在当今数据驱动的时代&…

作者头像 李华
网站建设 2026/6/20 3:17:30

RKNN-Toolkit2深度解析:解锁Rockchip NPU平台的AI部署潜能

RKNN-Toolkit2深度解析:解锁Rockchip NPU平台的AI部署潜能 【免费下载链接】rknn-toolkit2 项目地址: https://gitcode.com/gh_mirrors/rkn/rknn-toolkit2 在AI技术快速落地的今天,边缘计算和嵌入式AI部署已成为行业焦点。RKNN-Toolkit2作为Rock…

作者头像 李华