了解了我们前面说的性能测试负载模型,那么我们在该模型基础上怎么开展测试呢?
截下来我们在之前介绍的负载模型基础上说一下性能测试策略。
性能测试策略就是根据不同的测试目的、不同的关注点来选择不同的测试类型进行测试。
回顾一下我们前面描述的测试模型的公式M=F{L,O,T}和场景的定义场景即系统运行的剖面。所谓的测试类型就是指选择不同的剖面运行不同的时间段。如下图所示:
在模型章节中我们提出的三维模型,我们提出这样一种假设:随着时间的变化,用户不断均匀的增加。
在这种假设中,系统运行的模型如上图所示,在上图中我们分别取了3个剖面,S1、S2、S3。
S1剖面是指从零点开始,随用户量增加,场景重合度逐渐增加,缓存的资源重用率增加,因此随着用户量增加,系统的平均性能表现随用户量的增加而增加的更快;
S2剖面是指继续随用户量的增加,场景的重合度已经增加到极限,继续增加用户因此导致的资源耗费开始随用户增加线性增加,系统的平均性能表现随用户量的增加而增加变缓,但是此时系统可支持的用户量还可以继续增加;
S3剖面是继续增加用户量,系统的容量已经增加到极限,此时,继续增加用户,此时开始出现资源征用,开始出现频繁的等待而导致的系统的平均新能表现随用户的增加开始出现下降,系统的容量也开始达到极限不再增加。
注:系统的平均性能表现是指性能指标(如响应时间)的“增加”率;
--------------羞--------耻--------的--------分--------割--------线------------
负载测试,就是指关注性能测试模型中的负载量属性,即M=F{L,O,T}中,变化量为L。O和T保持不变。
对应于我们上面的三个剖面,就是负载测试分别在S1、S2、S3三个场景即剖面下运行相同的一段时间,评估系统的性能表现和不同的负载量下的系统性能变化曲线。(或有更多场景,但至少包含S1场景作为初始测试目标、S2场景作为系统预期目标、S3场景作为测试终止目标)
具体场景设置如S1场景下运行半小时,然后负载量增加到S2剖面的负载量,在此场景下继续运行半小时,然后继续将负载量增加到S3剖面的负载量,在此场景下再次运行半小时。
基于此,一般需要确认系统的容量(S3剖面)、确认系统的最佳性能表现(S2剖面)等此类测试目的,或者有如TPS预期达到100,或者系统支持500用户在线使用系统等明确预期目标的,一般都需要进行负载测试。
压力测试,就是指负载量为最大,即此时的属性L为最大值保持不变,O保持不变,变化的为T,即运行时间变化。
对应于我们上面的三个剖面,就是指系统在S3剖面的负载量下运行。T小于等于2的情况下,就是我们常说的压力测试;当T大于等于8的情况下,就是我们常说的负载测试。
压力测试主要关注系统的稳定性,即系统在可能的最大负载下连续运行一段时间是否可以平稳的运行而不出现异常。
对于稳定性有要求的测试目的,在确定测试策略时需要选择进行压力测试。
并发测试,就是关注的对象为负载对象,即M=F{L,O,T}中,O为变化量,每一轮测试只关注某一个测试对象,在某个负载下的性能表现。
在一个比较严密的并发测试过程中,一定是会进行多轮,即每轮测试关注对象O都由其原本的节点变化为其直接下级的节点,以更深层次的定位问题。
由此,也引出了我们选择进行并发测试的关键字,定位更深层次的问题。如资源争用、资源泄漏等问题。一般在测试目的需要针对某一个功能或者组件进行测试,都需要选择进行并发测试。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。