浅谈性能测试

负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。通过逐步增加系统负载,确定在满足性能指标的情况下,系统所能承受的最大负载量。
  很久没有做接手项目性能方面的测试,感觉陌生了许多,由于这次一个简单的web页面的压力测试,突然觉得知识的积累不够深刻,不能学着学着就丢了,如何积累成为自己的才是最重要的,凡是最后忘记的了那只能说明还是认识和学习不深刻。性能测试一直都是测试行业的一个难点,更是重点,可能我们都想做好它,但是不见得都有信心做好它,性能测试是一个带着诸多非常不确定因素进行的,因为没有标准答案,只能靠综合技术能力来分析,当然经验是最重要的,所以就需要不断去探索、积累,甚至于周围的同事进行讨论,吸取多方的经验。
  关于性能,我想大多数人对这个三个概念都很模糊,感觉都差不多。网上相关的说明确实很多,不过看完之后很容易忘记,而且真正做项目测试的时候还是分不清楚,这就是所谓不确定性。所以我想通过动手记录的方式来加深印象,至少还是需要深入理解才行。性能测试、压力测试和负载测试是我们最常接触的测试,关于这三种测试先来看看一个有趣的故事,可以帮助我们直观地去理解,故事描述得很形象,具体如下:
  有一个农夫决定买一匹骡子,他认为这个骡子至少 得能扛动3袋大米,他才会决定买这匹骡子(这相当于用户提出的性能需求)。结果他来到农贸集市上,试了好几头骡子,都不合适,最后终于有一头骡子能够比较轻松的扛动这3袋大米,而且还潇洒的走了几步(这相当于于性能测试通过)。 然后农夫高高兴兴地牵着这头骡子回家,而且给它扛了4袋大米(相当于让系统超负荷运行),因为他跑了太远才买到了这匹不可多得的骡子,他想看看它到底能有多强,所以农夫决定, 让这匹骡子就扛着这四袋大米走回家试试看,这匹骡子真的很厉害,刚开始的时候还一颠一跑的,可是后来实在路太远了,骡子越驮越费劲(在超负荷情况下检验系 统能正常运行多久,这相当于压力测试),快到家的时候,已经是走两步歇一步了。终于到家了, 农夫非常自豪地叫出自己的老婆,说:”老婆子,快来看看,看我买到了一头多么厉害的骡子啊!”,老婆来后,农夫把他和骡子在一路上的经历都告诉了老太 婆,谁知这个老太婆却说:”你真蠢,这么大老远的路,也不让骡子驮着你,竟然和这头傻骡子一样走回来!”,农夫听了,觉得非常后悔,说:”那好吧,既然在 路上它没有驮我,那就让它现在补上,也算是对我的补偿。”,骡子还没有反应过来,就看那老农夫一个箭步,跳到了骡子背上(这相当于容量测试的极限点),可怜的骡子,无论如何也不会想到,这狠心的农夫竟然在它走了这么久之后,不但没有帮 它卸掉身上的重担,更没有给它喝口水,竟然变本加厉的跳到了它那本已弯曲的背上。可怜的骡子啊,就这么一命呜乎了!就看见那个骡子、农夫和4袋麦子一起轰然倒地。(相当于已经到了系统的最大拐点,造成了系统瘫痪,无法使用,容量测试结束)。
  性能测试(Performance Test)
  通常收集所有和测试有关的所有性能,通常被不同人在不同场合下进行使用。测试软件在系统中的运行性能,度量系统与预定义目标的差距。
  关注点:how much和how fast
  负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。通过逐步增加系统负载,确定在满足性能指标的情况下,系统所能承受的最大负载量。
  关注点:how much
  压力测试(Stress Test):压力测试是一种高负载下的负载测试,也就是说被系统处于一个负载的情况,再继续对他进行加压,形成双重负载,知道系统崩溃,并关注崩溃后系统的恢复能力,以前再加压的一个过程,看看系统到底是否已经被彻底破坏掉了。
  有个很形象的说法就是:你能够承担100千克的重量,而且也能走,但是你能否承担100千克的重量行走1个月。
  我觉得有一句话描述的很好:外部的负载叫压力,内部的压力叫负载。负载注重关注内部的以及系统自身一些情况;而压力更关注系统外部的表象。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-31 01:40:30

浅谈性能测试的相关文章

浅谈Python中copy()方法的使用

  这篇文章主要介绍了浅谈Python中copy()方法的使用,Python中的拷贝分为潜拷贝和深拷贝,本文只是简单介绍用法,需要的朋友可以参考下 copy()方法返回字典的浅拷贝. 语法 以下是copy()方法的语法: ? 1 dict.copy() 参数 NA 返回值 此方法返回字典的浅拷贝. 例子 下面的例子显示了copy()方法的使用. ? 1 2 3 4 5 6 #!/usr/bin/python   dict1 = {'Name': 'Zara', 'Age': 7};   dict

浅谈document.write()输出样式

  这篇文章主要介绍了浅谈document.write()输出样式,十分的简单实用,有需要的小伙伴可以参考下. js中的最基本的命令之一:document.write(),用于简单的打印内容到页面上,可以逐字打印你需要的内容--document.write("content"),这里content就是需要输出的内容;当然还有一种情况,需要输出JS之中比如变量等等变化的东西,那么就需要用document.write(+variable);当然variable就是你想要输出的变量. 既然可

图标字体化浅谈[转]

在做手机端Web App项目中,经常会遇到小图标在手机上显示比较模糊的问题,经过实践发现了一种比较好的解决方案,图标字体化.在微社区项目中,有很多小的Icon(图 标),如分享.回复.赞.返回.话题.访问.箭头等,这些Icon(图标)一般都是纯色的.开始制作时考虑用双倍大小的Sprite图,通过CSS样式设 置只显示二分之一尺寸,这样在Retina屏上显示的大小是正常的,一旦放大屏幕后图标又变得模糊不清,测试的效果不是很理想,后来又考虑多套图标适配方 案.SVG矢量图等,都因为种种原因放弃掉了(

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

前言:PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection).现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容.PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变.本文将分别

浅谈算法和数据结构 十一 哈希表

在前面的系列文章中,依次介绍了基于无序列表的顺序查找,基于有序数组的二分查找,平衡查找树,以及红黑树,下图是他们在平均以及最差情况下的时间复杂度: 可以看到在时间复杂度上,红黑树在平均情况下插入,查找以及删除上都达到了lgN的时间复杂度. 那么有没有查找效率更高的数据结构呢,答案就是本文接下来要介绍了散列表,也叫哈希表(Hash Table) 什么是哈希表 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值. 哈希的思路很简单

浅谈关于JavaScript API设计的一些建议和准则

  这篇文章主要介绍了浅谈关于JavaScript API设计的一些建议和准则,文中列举了许多知名的JS API进行辅助说明,极力推荐!需要的朋友可以参考下 设计是一个很普遍的概念,一般是可以理解为为即将做的某件事先形成一个计划或框架. (牛津英语词典)中,设计是一种将艺术,体系,硬件或者更多的东西编织到一块的主线.软件设计,特别是作为软件设计的次类的API设计,也是一样的.但是API设计常常很少关注软件发展,因为为其他程序员写代码的重要性要次于应用UI设计和最终用户体验. 但是API设计,作为

浅谈在openSUSE下ASP.NET 4开发环境配置(1)

浅谈在openSUSE下ASP.NET 4开发环境配置(1)

浅谈ASP.NET MVC 3中如何使用Model

昨天博客发了新文章,讲一下我对如何使用MVC中的Model的看法,不是什么大技术,当是一个技术讨论^^ 原文地址:http://www.youguanbumen.net/Article.aspx?id=79 原文: 前两天写了个文章ASP.NET MVC 3 -- Model远程验证,主要记录了一下ASP.NET MVC 3中新增的RemoteAttribute类的使用,得益于这个类,我们可以在模型中为属性配置客户端远程校验的业务,文章中给了出一个简单的实体类MyUser_Add,举了一个最常见

“IT列国”之“毛遂自荐”--浅谈一个优秀项目经理的基本素质

素质|项目|项目 "IT列国"之"毛遂自荐"--浅谈一个优秀项目经理的基本素质 0.前言 说起毛遂,大家可能并不清楚,可是成语"毛遂自荐",几乎没有人不知道.毛遂在关键时候自己站出来,不但自我推荐,而且解决了大问题,成就千古佳话. 在IT行业,也有很多像毛遂一样的人,他们也为了公司.为了整个IT行业,不断重演毛遂自荐的一幕. 1. 形势危急 话说三秦科技集团最近在市场上攻城略地,与冀赵高科公司几次正面竞争连连获胜.虽然换掉了精明能干的经理白起,却