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

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

性能测试场景通常包括单业务基准测试、单业务压力测试、单业务负载测试、综合业务基准测试、综合业务压力测试、综合业务负载测试、综合业务稳定性测试等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个线程为基准,执行业务量测试。

根据上述分析数据,设计本次测试的四个场景:登录模块并发测试场景、登录模块业务量测试场景、随机购买并发测试场景、随机购买业务量测试场景。登录业务并发基准测试场景用例登录业务量基准测试场景用例随机购买并发量基准测试场景用例随机购买业务量基准测试场景用例

至此,本次测试所需的场景全部设计完成。接下来,可进行测试脚本的设计。

编写jmeter测试用例_Jmeter性能测试系列-场景用例设计相关推荐

  1. 编写jmeter测试用例_Jmeter性能测试系列篇(十)--批量用例执行结果检查设置

    1.在jmeter图形界面中,所有用例的执行可以通过"监听器"中的[察看结果树]来汇总每个接口的测试用例的执行结果.同时可以设置将执行的结果保存到指定的目录上. 2.因为结合ANT ...

  2. 编写jmeter测试用例_Jmeter | 实现接口自动化设计说明

    一.变量定义规则 1.全局变量:各个项目组负责人负责统一规划本项目的全局变量.用"配置元件"中的[用户定义变量]来设置,并置顶在所有线程组的最前方: 2.HTTP消息头:各个项目组 ...

  3. 编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决

    一.BeanShell Sampler使用JS函数生成的日期月份小于10时是个位数 开始用的是: "baseDate": "${__javaScript((new Dat ...

  4. jmeter 登录用户并发压力测试案例_测试模型构建及场景用例设计

    确定需求及对应指标后,测试工程师可针对被测业务分析及业务模型,便于测试场景及脚本的设计. 登录业务操作过程: 打开首页--输入用户名及密码,登录--退出系统 商品浏览购买操作过程: 打开首页,输入用户 ...

  5. 常见测试场景用例设计(1):登录页面测试用例

    申明:目前学习资料和观点 均受网络资料影响,如有侵权,请及时联系. 简单的登录页面主要包括:用户名text,密码text,以及登录按钮 (有些登录页面也包含了验证码,滑块等登录页面控件) 目录 主要测 ...

  6. 基于用户登录测试用例设计产生一点对用例设计的理解

    为个人博客项目的用户登录设计测试用例的过程中,让我发觉用例是越写越多,更多的用例覆盖率会越高,但是也慢慢发现这可能是一个没有穷尽的测试,同时测试的周期或长.衡量下来什么才算是好的测试用例? 特此贴上用 ...

  7. jmeter constant timer 如何添加_JMeter性能测试入门篇

    导读 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌 ...

  8. 性能测试系列:Jmeter使用记录

    1.做接口测试,服务器是10台docker,目标是把10台docker的cpu压满.我有三台压力机,windows Server操作系统,4c8g配置. 经过尝试,每台压力机发起700vu,压力机cp ...

  9. jmeter性能测试_JMeter性能测试,接口测试,最全的JMeter资料,共计3.16G

    前言 JMeter是Apache组织开发的基于Java的压力测试工具.JMeter 可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能.另外,JMeter能够对 ...

最新文章

  1. git获取管理员权限 windows_win10不兼容git2.7.3+版本
  2. ios uitableview 去掉多余的空行
  3. 【剑指offer】面试题68 - I:二叉树的最近公共祖先(Java)
  4. Ubuntu设置root登录
  5. 在线js拼接html代码,关于js拼接html元素?
  6. SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)
  7. arguments对象
  8. java recordset_连接数据库返回recordset
  9. NOIP2011题目简析
  10. CSS文件在jsp 文件中应该放的位置
  11. 【我的开源】股票软件简介+源码(蜗牛股票软件)
  12. 基于扩展卡尔曼滤波的slam
  13. 秦九韶算法以及大数取余应用
  14. 人工蜂群算法python_python如何实现人工蜂群算法 python实现人工蜂群算法代码示例...
  15. 色彩大全,色彩配色大全
  16. 【广州芯享家】服务器维护过程中,你需要了解的5个小常识
  17. 康青老师--产品开发IPD流程和研发项目管理--流程建设和流程优化-沪师经纪刘建
  18. ODBC数据源:没有ORACLE用户DSN,也没有驱动程序?
  19. 比利时一年中遭受加密货币骗局损失近1000万欧元
  20. 移动端,JS判断滑到页面顶部下滑进行操作

热门文章

  1. 水族箱设计师 Aquarium Designer Bubbling Volcano 官方中文 免安装【7.25G】
  2. Backbone基础
  3. ESP32-C5 简介:乐鑫首款双频 Wi-Fi 6 MCU
  4. 新房交接需要注意的事项
  5. 【渗透测试】渗透测试实施一般步骤
  6. ignore文件的配置
  7. 【效率】Docker:从入门到实战过程全记录
  8. android自定义seekbar样式,自定义SeekBar样式
  9. 学软件测试路上最好的几本书,这8本书能帮你很多
  10. 推荐一本电子书《深度学习入门》