性能场景设计


摘要:性能测试是指在一定硬件条件下,获取软件系统在不同的业务背景下的各种性能表现,本文根据笔者最近所做的几次性能测试,就业务场景设计方面进行总结分析,希望能起到一定的借鉴作用。

1测试过程中出现的问题

最近一段时间,我们的团队连续承担了几个基于J2ee架构的分布式系统的测试工作。在测试过程中,我们多次发现一个问题,就是我们在测试环境中得到的性能指标与生产环境中的性能指标差距较大,理论上应该是测试环境的性能指标优于生产环境的指标,但实际结果是生产环境的性能指标大大优于测试环境下的性能指标。经过不断摸索、总结,我们发现出现以上问题的原因是测试需求分析不到位,导致业务场景设置不合理、不全面,因而出现问题。在这里我们就场景设计方面谈一些自己的看法。

2业务场景分析

性能测试中涉及的基本场景有两种,即单一业务场景和混合业务场景,这两种业务场景缺一不可,缺少任何一种都不能准确评估系统性能,定位系统瓶颈。如果只做单一业务场景,得到的结果与实际生产环境差距较大,没有实际指导意义;如果只做混合业务场景,不能快速定位系统性能快速降低的原因,起不到定位瓶颈、系统调优的作用。只有两种场景互为补充,才可以获取最符合客户要求的测试结果。下面分别就两种测试场景的具体设计方法结合一个论坛系统进行讨论,一个论坛系统包含三个主要单一业务流程,即用户登陆、发表文章、阅读文章。该论坛支持100人同时在线,支持20人同时发表文章,阅读文章。

3单一业务场景

单一业务场景主要针对单一业务流程而设计,主要考察某一项单一业务在各种情况下的响应时间,系统资源占用,事务成功率等指标。对于响应时间这个指标,目前国内国际上还没有明确的标准,业界普遍采用的评价准则是2/5/10标准,即2秒以内优秀,5秒以内可以接受,10秒是极限。但是在实际当中,并不仅限与这个标准,例如邮件系统的登录功能可以遵守这个标准,因为只是一个登录功能;但是针对上传附件这个功能,如果附件本身较大,响应时间自然会比较长,所以我们应该灵活掌握标准,以实际需要为准则,确定预期响应时间。事务成功率这个指标,业界采取的一般标准是90%,但是对于一些精密程度要求较高的系统,如金融、证券、银行等系统,事务成功率要求更高,应该达到98%以上,部分功能甚至要求达到100%。下面我们就单一业务场景在标准、极限、超载三种情况下的设计进行讨论。

3.1标准场景

设计标准场景的目的是验证系统单一业务是否达到所承诺的性能指标,此时系统应该表现良好,响应时间短,事务成功率高,资源利用率合理,如果不能达到以上要求,则说明系统存在瓶颈,应进一步确定瓶颈,并进行系统调优。但是在实际测试过程中,我们往往片面的认为标准场景就是标准用户数,而忽略了操作对象、操作频率也是非常重要的场景内容,如果这样我们设计的操作场景将会如下(以发表文章为例):

这个场景初看起来没有任何问题,但是我们如果更深入的考虑一下,就会发现一些问题。例如,发表文章,文章的大小对系统的压力是否有影响呢?发表一个1K的文章,和发表一个1M的文章是否有区别呢?一个用户是否会持续不断的发文章呢?如果不是,发文章的频率是多少呢?这需要我们进一步在测试需求中明确,这样设计出来的场景才是真正的标准情况下的测试场景,新的测试场景如下

新的测试场景增加了标准的迭代时间和标准大小的操作对象,这样的测试场景才是真正的标准测试场景,获得的各项性能指标才具有实际指导作用。

3.2极限场景

设计极限场景的目的是为了验证系统单一业务否达到承诺的极限情况,在极限的情况下,能否正确完成相应的工作,并保证客户数据安全,响应时间在可接受范围内,资源利用不超标。根据标准场景的分析,我们可以指导极限场景的设计应包括以下部分,即虚拟用户极限,并发用户极限,迭代时间极限,操作对象极限;持续时间极限属于疲劳强度测试,这里不进行讨论。得到的极限测试场景如下:

以上得到共计15种极限情况,由于实际测试过程中资源有限,不可能进行如此全面的测试,可以根据实际情况进行取舍,以用户要求为主导,选择需要的测试场景进行测试。在加压过程中,如果响应时间明显加长,资源利用率异常上升,吞吐量没有随用户增加正比增长则说明系统已到达瓶颈,可以停止测试,转而进行瓶颈确认、系统调优等工作。

3.3超载场景

设计超载情况测试场景的目的是为了验证系统单一业务在超载的情况下,何时出现性能拐点,何时系统失效,失效对数据库已有数据是否有影响。根据标准场景的分析,我们可以指导超载场景的设计应包括以下部分,即虚拟用户超载,并发用户超载,迭代时间超载,操作对象超载。得到的超载测试场景如下:

以上得到共计15种超载情况,由于实际测试过程中资源有限,不可能进行如此全面的测试,可以根据实际情况进行取舍,以用户要求为主导,选择需要的超载测试场景进行测试。在加压过程中,如果响应时间明显加长,资源利用率异常上升,吞吐量没有随用户增加正比增长则说明系统已出现拐点;如果出现响应时间超长,资源利用率长期超标,吞吐量逆向减少,说明应用系统已失效,可以停止测试。

4混合业务场景

混合业务场景针对模拟系统真实生产环境而设计,主要为了测试整个系统在各种情况下的响应时间,系统资源占用,事务成功率等指标。下面我们就混合业务场景在标准、极限、超载三种情况下的设计进行讨论。

4.1标准场景

标准情况下的混合场景是测试场景中最贴近实际运行环境的场景,可以全面有效的反应被测系统在真实环境下的性能表现,验证系统是否达到所承诺的各项性能指标,并对未来系统扩展、调优提供支持。我们可以得到如下的测试场景:

测试场景中各个业务所分配的用户比例是按照用户要求设计的,有时用户不能明确自己的测试需求,需要测试人员使用日志分析工具分析系统在实际运行情况下的日志得出相关数据,指导测试场景的设计。

4.2极限场景

设计极限场景的目的是为了验证系统在贴近真实环境下能否达到承诺的极限情况,在极限的情况下,能否正确完成相应的工作,并保证客户数据安全,响应时间在可接受范围内,资源利用不超标。通过以上单一业务场景的极限情况分析,我们知道会有极限场景共15个;而混合业务又包含多个单一业务,这个例子中包含三个单一业务,那么极限测试场景会有4125个,这个数量显然是我们无法接受的,我们只能从中挑选重要的极限场景或用户指定的极限场景,并配合正交排列方法选择。我们选择如下的混合业务极限测试场景:

当然,以上极限测试场景未必是最合理的,因为以区区六种测试场景取代4125种测试场景肯定不能达到全面体现系统性能的目的,只能是在一定程度上对系统性能进行度量。

4.3超载场景

设计超载情况测试场景的目的是为了验证整个系统在超载的情况下,何时出现性能拐点,何时系统失效,失效对数据库已有数据是否有影响等。通过以上缓和业务场景极限情况的分析,我们同样可以得出超载场景的数量也是4125个,同样根据用户测试需求、系统自身特点等约束条件,我们进行筛选,得到需要的超载场景,这里就不展开描述了。混合业务流程的超载测试场景的结果对于系统调优的指导意义是比较大的,因为系统在这种场景下失效的可能性是最大的,系统的弱点暴露的也最完全。

5结语

性能测试中的场景设计是实施性能测试的基础,只有合理的设计测试场景才能获得有价值的测试数据,为接下里的确认瓶颈、系统调优打下基础。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容