Loadrunner性能测试需求分析、测试计划
yuyutoo 2024-10-13 09:15 3 浏览 0 评论
性能测试需求分析
一、性能测试流程
二、测试环境与生产环境
尽量模拟生产环境,模拟硬件比较难,可以等比模拟,比如生产是4台服务器,测试环境可以有2台服务器;
模拟软件,尽量保证所有的软件版本位数都要一样;
使用负载均衡模拟共享中心的应用 将服务器都放到同一个机房,这样可以最大限度避免网络问题,一般都会在同一个机房。
三、性能负载模型图
随着虚拟用户数量的变化,吞吐量、响应时间、资源利用率的变化如图:
从图中可以看出最佳用户数,之后随着用户数的增加,资源利用率和吞吐量、响应时间趋于平稳,达到最大用户数时,资源利用率偏高、吞吐量下降、响应时间也在变大。
要进行多次负载测试和压力测试可能才能得出最佳用户数,不过也不是绝对的要结合业务和实际情况去得出最佳用户数。
四、性能测试需求分析的目的
1、找出TPS每秒处理事务数、并发数(最佳用户数、最大用户数)、硬件相关指标(CPU、内存、磁盘、网络)
2、分析用户使用行为,分析业务量,为估算做准备,比如双十一零点抢购等业务量爆发等用户行为;或者日常某些时间点用户业务量比较多等
3、分析出测试点,要分析哪些业务要纳入性能测试范围,比如一个订票系统,订票就会比较容易发生集中购买的性能问题,就是找出系统中的哪个业务点是比较容易会用到并且会引发性能问题。
五、被测试系统分析
1)跟产品、运营、开发沟通出性能需求,比如某个模块的响应时间要小于几秒,2-5-8是业界经理理论,2秒是快的,5秒是可以接受,8秒是难以忍受的。
2)与开发沟通系统的处理能力,资源占用率,数据库的访问量等
3)可以拿历史日志和同类产品的分析哪个时间段用户量业务量比较多,哪些业务用户用的比较多,一般系统都会有大数据埋点,通过大数据分析出用户的行为得出哪些业务在哪个时间段会比较集中
4)根据80/20原则进行估算处理能力-TPS每秒事务数:
比如有一个需求是这样的,某邮箱去年全年处理邮件约100万条,考虑到3年后可能递增到每年200万条。假设每年处理量集中在8个月,每个月20个工作日,每个工作日8小时,试问采用80/20原理估算系统服务器高峰期的处理能力应该达到什么水平,就是TPS大概是多少?
采用80/20原则,80%业务会集中在20%的时间完成;
200万条/8个月/20天=1.25万条记录,计算出每天处理的数;
(1.25万条/8小时20%/3600)80%=1.736条记录,8小时*20%是一天中有20%的时间也就是1.6小时会集中处理业务,再除以3600计算出秒数,1.736就是每秒处理的条数;
5、要重点测试哪些模块呢,拿一个洗车业务举例:
用户常用功能,比如登录
数据流转复杂或者频繁的地方,比如购买洗车订单,查看洗车列表,到确认订单,到支付订单,
发生频率非常高,比如查看洗车列表,查看洗车价格
关键程度非常高
资源占用非常严重,比如返回洗车列表,查询数据库
关键的接口,比如洗车列表排序、距离定位等接口
性能测试计划模板
1、项目背景
2、测试目的:要测试什么指标
3、测试计划:人员安排,时间规划
4、测试环境:软件版本、硬件环境
5、测试策略:脚本设计策略、场景设计策略
5.1测试点的提取
5.2并发数与预期指标预估
5.3通过准则
5.4场景用例
6、测试数据准备
7、测试工具说明
8、测试限制与风险
也可以参考:
测试策略
1、日志策略
Loadrunner的日志在调试时可以打开,在执行时只输出错误日志就行。
java日志设置成warn,避免大量打印log对性能结果的影响,不过也要根据实际的程序去设置,以免在测试时是warn级别,到生产上是info级别或者debug级别。
2、前台缓存策略
性能测试时要模拟没有缓存的情况,所以要设置每一次都是新用户,清除缓存
3、场景设计策略
先单场景,后混合场景,确保每个性能瓶颈都得到调优;
单场景可以详细到某个页面,某个接口等;
在单场景优化完后,按照一定比例对各场景进行组合,测试整个应用系统的总体性能表现。
监控
linux服务器想在loadrunner中监控需要安装rpc,如果不在loadrunner中监控,可以在linux中安装nmon监控工具,性能测试时使用nmon监控linux服务器就可以了。
测试报告模板
相关推荐
- jQuery VS AngularJS 你更钟爱哪个?
-
在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...
- Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0
-
在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...
- 如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例
-
要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...
- 编程技巧:Jquery实时验证,指定长度的「负小数」
-
为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...
- 一篇文章带你用jquery mobile设计颜色拾取器
-
【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...
- 编程技巧:Jquery实时验证,指定长度的「正小数」
-
为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...
- jquery.validate检查数组全部验证
-
问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...
- Vue进阶(幺叁肆):npm查看包版本信息
-
第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...
- layui中使用lay-verify进行条件校验
-
一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...
- jQuery是什么?如何使用? jquery是什么功能组件
-
jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...
- django框架的表单form的理解和用法-9
-
表单呈现...
- jquery对上传文件的检测判断 jquery实现文件上传
-
总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...
- Nodejs之MEAN栈开发(四)-- form验证及图片上传
-
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...
- 大数据开发基础之JAVA jquery 大数据java实战
-
上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...
- 推荐四个开源的jQuery可视化表单设计器
-
jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)