Jmeter性能测试系列-场景用例设计

原文地址:https://zhuanlan.zhihu.com/p/35460011

性能测试过程中,首先应该设计测试场景,模拟真实业务发生的情境,然后是针对场景设计脚本。

为了真实的反映被测对象可能存在的性能问题,需要尽可能模拟被测对象可能发生瓶颈的业务场景。测试需求分析过程中已经确定了需要测试的业务类型,在此,则需要设计针对每种或综合业务的测试场景。

性能测试场景通常包括单业务基准测试、单业务压力测试、单业务负载测试、综合业务基准测试、综合业务压力测试、综合业务负载测试、综合业务稳定性测试等7种常用测试场景。

单业务基准测试

测试某个具体业务是否满足系统设计或用户期望的性能指标,如用户期望系统支付接口支持50个用户并发支付,如果满足了,则认为基准测试完成,否则失败。基准测试过程中,性能指标的任何一项均需成功,才认为基准测试完成。基准测试可分为并发基准及业务量基准两种,其目的都在于验证是否满足预期目标设定。

单业务压力测试

测试某个具体业务在最大负载下,持续服务的时长,以此验证被测业务的稳定性。压力测试过程中所设计的负载,是以系统基准负载为标准,如系统基准负载为50个并发用户,则压力测试的负载设为50个,通过运行时长的变化,验证服务器在系统预设负载下持续服务的能力。具体的时长从需求分析、运行日志、系统设计规划等来源获取。

单业务负载测试

测试某个具体业务能够承受的最大负载,验证被测业务能够承受的最大负载数,如系统基准负载为50个,则通过多次测试,逐步加大负载,最终获得被测业务的最佳负载。在最佳负载下,系统仍需满足各项性能指标。

综合业务基准测试

与单业务基准测试类似,但综合业务需考虑业务与业务间的联系,如果相互之间存在资源争用,则需单独组合测试。假设系统需测试的业务有三个:A、B、C,综合业务基准测试是将ABC一起运行,那么加上A、B、C三个基准测试,共计4个基准测试场景,分别是ABC、A、B、C,但A与C存在资源争用,则需单独将A与C组合,构成一个单独的测试场景,则一共为ABC、A、B、C、AC等5个基准测试场景。

综合业务测试中的数据分配,根据实际业务、用户需求、运行日志、运营规划等分析确定。

假设某银行柜员交易系统,1个小时内有4个柜员进行存款操作,6个柜员进行开户操作,10个柜员进行查询操作,则综合业务的负载比例设置为:

存款业务占比:4/(4+6+10)=20%

开户业务占比:6/(4+6+10)=30%

查询业务占比:10/(4+6+10)=50%

综合业务压力测试

与单业务压力测试类似。

综合业务负载测试

与单业务负载测试类似。

综合业务稳定性测试

综合业务稳定性测试通常为核心业务在基准负载的基础上运行相对长的时间,验证服务器持续提供稳定服务的能力。稳定性场景测试的时间由需求方设定,一般为7*24小时不间断执行。

通过上述分析,根据ECShop平台业务模型确定本次性能测试的场景主要为登录并发基准测试、登陆业务量基准测试、商品随机浏览购买并发基准测试、商品随机浏览购买业务量基准测试等四个场景。

场景设计中需设置线程数,当需求未明确指出时该如何确定呢?

以本次测试为例,要求在2小时内支持5万次用户登录,可通过如下计算方法获取线程数。

Total_Thread=BC/(T*60*60/t)

T:考察时间段,如此处的2小时。

t:单用户单次业务消耗时间,即单个用户完成一次业务过程所消耗的时间,尽可能模拟用户的真实行为。

BC:业务量,如此处的5万。

利用Jmeter测试单次业务消耗时间,代入公式即可获得执行2小时5万用户登录所需的线程数。

如上图所示,ECShop用户登录系统单次消耗时间采用90%抽样为:88+135=223毫秒,如果加上模拟用户输入用户名及密码、登录成功后等待返回主页、退出后等待返回主页等操作的思考时间,以5秒、3秒、3秒计算,则单用户访问ECShop登录所消耗时间为:0.223秒+5秒+3秒+3秒=11.223秒。则代入上述公式,获得模拟2小时5万用户登录所需的线程数为:Total_Thread=50000/(2*60*60/11.223)=77.88因线程个数无法为小数,故取整为78个线程数。同样方法,计算用户登录后随机选择商品浏览的消耗时间,然后计算出线程数,具体数据如下:
如上图所示,ECShop用户登录后随机购买商品单次消耗时间采用90%抽样为:40+56+50+100+43+47+106+71+84+75=672毫秒,如果加上模拟用户输入用户名及密码5秒、成功登录等待返回主页3秒、加入购物车5秒、编写收货信息5秒、编写快递及付款方式5秒、退出等待返回主页3秒等操作的思考时间,共计26秒计算,则单用户访问ECShop登录后随机购买商品的时间为:0.672秒+5秒+3秒+5秒+5秒+5秒+3秒=26.672秒。则代入上述公式,获得模拟2小时5万用户登录所需的线程数为:Total_Thread=50000/(2*60*60/26.672)=185.18因线程个数无法为小数,故取整为186个线程数,但该数据已经超过该业务要求100线程并发的基准,故以100个线程为基准,执行业务量测试。根据上述分析数据,设计本次测试的四个场景:登录模块并发测试场景、登录模块业务量测试场景、随机购买并发测试场景、随机购买业务量测试场景。
至此,本次测试所需的场景全部设计完成。接下来,可进行测试脚本的设计。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容