使用Loadrunner进行性能测试
一、确定性能测试的范围、要求、配置、工具等
- 明确测试的系统:
本文档主要指的是web应用。
- 明确测试要求:
用户提出性能测试,例如,网站首页页面响应时间在3S之内,主要的业务操作时间小于10s,支持300用户在线操作等相关语言描述。主要指标涉及到到并发量,响应时间,TPS,服务器CPU、内存使用占比等
- 明确服务器配置:
web服务器,数据库服务器,包括内存、CPU等,同时对于数据库版本、中间件版本都需要明确好
- 明确测试工具和环境:
确定压力测试工具,服务器的监控工具等(本次使用的是loadrunner作为负载软件,nmon作为服务器监控工具)
二、确定测试的方式,业务占比
根据系统的实际业务场景,来测定测试的方式,可以多选。
- 压力测试
选择场景做一次性并发,观察那个时间点的连接处和TPS结合来判断系统所能承受的最大压力场景。
- 容量测试
采用阶梯式加压的形式来判断系统所能承受的性能节点,一般在场景设置中配置,举例:每2分钟增加20个虚拟用户,每次持续2分钟,还是结合TPS,每秒事务总数,每秒连接数来辅助判断系统拐点(指标出现明显的下降等)。
- 稳定性测试
容量测试可以得到系统的最高承受力或这是性能最优点,可以用容量测试的结果或者*80%来做稳定性测试,设定时间为8小时或者是24等。
三、测试计划,(规范性比较强的会做要求,例如银行)
野路子的我是不需要计划的【哈哈哈】,不过有时候公司会让提供,此处列一个基本的目录供参考(一般像银行也会让你提供一份)。
四、搭建测试环境
测试系统环境:windows7
测试工具:LoadRunner11
测试浏览器:火狐浏览器24
【这块没啥说的,网上教程很多,目前破解的只有LoadRunner11,而11只能在window7-旗舰版上使用,而且支持录制的,只有IE8和火狐24】
四、录制脚本
第一步点击创建/编辑脚本【注意启动都是用管理员启动】
这里的参数需要说明一下:
应用程序类型:分为Internet 应用程序,w32应用程序,web测试默认Internet 应用程序就可以了。
要录制的程序:此为浏览器的应用程序地址,这里使用的火狐24
url地址:要测试的服务地址
工作目录:lordrunner的bin目录
注意:此处可以分离对应的操作,比如说初始是登录,则简历对应登录操作存放登录相关事件脚本
录制脚本过程相对简单,傻瓜式,这里就不描述了,主要是录制的脚本需要调整,主要通过Script进行调整,录制后的脚本查看请求响应情况可以通过Tree进行查看,类似页面F12的效果。
五、脚本增强
1、事务
模拟用户的一个相对完整的、有意义的业务操作过程,例如登录、查询、交易、转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务。对于业务逻辑性比较强的系统来说,一个事务可能是一系列请求的合集,比如说一个保存事务,一直到保存这一步,可能包括了,获取新增界面信息、获取客户信息、获取清算信息、计算、然后才是保存。
这一块就要具体业务具体分析了,要注意,集合点中不要设置集合点,思考时间,不然会影响实际的结果。
至于事务的设置,可以使用右键新增,要注意这是一个前后呼应的函数,开始和结尾必须都存在,事务名称一致。
2、集合点
集合点,顾名思义,就是虚拟用户的集合点,相当于大量的用户集合某一个点,并等待其他用户集合,达到释放的标准后,同一时间对服务器访问形成并发,来对服务器形成更大的压力。
操作方式如下:
3、思考时间
用户访问某个网站或软件,一般不会不停地做个各种操作,例如填写表单,用户需要时间输入信息,并检查等等,也就是说用户在做某些操作时,是会有停留时间的,我们在做性能测试时,为了更真实的模拟用户的操作,需要给代码加入思考时间。
使用方式如下:
4、参数化
为了更真实的模拟现实环境,我们进行性能测试的时候登录用户也不能是同一样,此时可能需要预设成千上百的用户,又或者一些系统本身就是单点登录的系统,一个用户在使用时,其他人无法使用。针对这些场景,参数化就派上用场了。
以用户名、密码为例,点击记事本编辑,出现以下格式文件编辑界面,如果量比较大,可以使用excel编辑好,复制进来,用户名我们一般按照列名来取,
而用户名的选取方式
选择下一行的时间:
Sequential :顺序的,按照参数化的数据顺序,从上往下一个一个的来取;
Random: 随机取,参数化中的数据,每次随机的从中抽取数据;
Unique :唯一,唯一的向下取值,只能被用一次;
Same line as *:和*列取同一行的值,(行相同)步调一致;
更新值得时间:
Each iteration :每次迭代时取值;
Each occurrence :每次遇到该参数时取值;
Once :取值仅一次,脚本运行过程中只取值一次值的是:一次选择,一直不变;
我一般采用Sequential + Each iteration的模式,具体要结合实际的业务场景来选择。
而密码需要和用户名对应,所以选取方式使用用户名同一行的数据。
5、补充
5.1 附件需要存在对应脚本根目录才可以上传
六、设置
运行时设置十分重要,一定要记得设置,性能测试的原理是使用若干得虚拟用户来同时执行一个脚本,而运行的一些方式则由此设置决定。
打开按钮如下图,这里可以设置运行的逻辑,包括迭代次数等,执行顺序等,最常用的就是登陆完成后,循环做业务操作,来做性能测试。
日志设置,执行脚本阶段,应该选择仅在出错时发送消息,因为并发时候日志量级太大,根本看不出来,只需要关注错误信息即可。
设置中默认是忽略思考时间的,为了更好的模拟实际情况,应该启用思考时间,但是脚本多了,而且是录制的,可能有些思考时间太长,影响到测试的效率, 需要针对实际情况进行限制,比如说下图就是限制了不超过1s。
另外的设置我关注比较少,后面如有需要我再继续补充。
七、场景设置及监控指标
脚本设置完毕后,点击打开场景设置,这里设置的主要是测试的策略,包括用户启动的速度,执行时间,集合策略等等。
这里主要说明以上几点:
设置vuser数量和增长频率
设置执行时间
设置集合策略
切换到运行tab页,可以选择监控的相关指标,包括 vuser数量、响应时间、每秒通过事务数、系统吞吐量等。
八、编写报告
报告这块,还是给大家一个目录作为参考,只要把结果描述清楚,是否满足最开始的指标需求(这个过程中如果不满足,就需要根据实际情况进行调优了,测试人员可以给开发人员建议,此块可以参考另外一篇博客(基于web网站项目的性能测试结果分析)
使用Loadrunner进行性能测试的更多相关文章
- Loadrunner进行性能测试的步骤
Loadrunner 11是一款免费的性能测试工具,他包含三个大模块 •使用VuGen:创建脚本•运用Controller:设置方案•查看Analysis:分析测试结果 结合软件测试的流程可以知道使用 ...
- Loadrunner做性能测试的主要步骤
Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...
- [转][LoadRunner]LR性能测试结果样例分析
LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...
- LoadRunner做性能测试 从设计到分析执行
项目简介:像百度知道系统类似的系统性能测试,是公司的自己产品. 对最近这个系统的性能测试进行总结下: 系统功能介绍: 前台用户可以根据自己的需要对不同的区域提问,提问包括匿名和登陆用户提问 后台不同区 ...
- [LoadRunner]LR性能测试结果样例分析
R性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源. ...
- 【Loadrunner】性能测试:通过服务器日志获取性能需求
性能测试:通过服务器日志获取性能需求 接触过性能测试的童鞋都知道,想要做好一个项目的性能测试,性能需求的获取至关重要~!如果公司有做过性能测试还好,大家可以拿之前的性能测试数据作为参 ...
- LoadRunner性能测试执行过程的问题
LoadRunner做性能测试 从设计到分析执行 执行测试并分析调优: 测试中报错的信息解决: 1. Failed to connect to server "域名:80": [1 ...
- 《软件性能测试与LoadRunner实战教程》新书上市
作者前三本书<软件性能测试与LoadRunner实战>.<精通软件性能测试与LoadRunner实战>和<精通软件性能测试与LoadRunner最佳实战>面市后,受 ...
- 性能测试从零开始-LoadRunner入门
写在前面 又到了公司每月的读书会,经过上个月的试运行后,公司把读书会纳入每月的绩效考核中,听到这个消息,当时我的内心是崩溃的,不过从另一方面来讲,对于我来说也一件好事儿,这样可以督促自己养成读书的习惯 ...
随机推荐
- 数据分析second week(7.22~7.28)
描述性统计Python实现 这周学习时间也就几个小时,由于python也正在学习,Anaconda也有,所以那些安装啥的就偷懒下不写了,直接贴出python代码 数据是随机生成,计算是调用库里的函数. ...
- 00-java语言概述
1.基础常识软件:即一系列按照特定顺序组织的计算机数据和指令的集合.分为:系统软件 和 应用软件 系统软件:windows , mac os , linux ,unix,android,ios,... ...
- Android SQLite轻量级数据库的删除和查找操作
今天主要是补充昨天的内容,本打算合成一章的,但是毕竟一天一天的内容写习惯了. 就这样继续昨天的,昨天只讲了创建以及增加和查询, 其实用法都差不多,今天学长也是在原有的基础上写的,还顺便融合了Share ...
- python1.2元组与字典:
#定义元组(),元组与列表类似但元素不可以更改a=(1,2,3,4,5,6,"a","b","c","d"," ...
- 在IntelliJ IDEA中多线程并发代码的调试方法
通常来说,多线程的并发及条件断点的debug是很难完成的,或许本篇文章会给你提供一个友好的调试方法.让你在多线程开发过程中的调试更加的有的放矢. 我们将通过一个例子来学习.在这里,我编写了一个多线程程 ...
- -bash: !": event not found
在linux环境下执行一下代码时 printf "The first '%s,%s!' \n" Hello world 返回结果为“-bash: !”: event not fou ...
- Ternary weight networks
Introduction 这两天看了一下这篇文章,我就这里分享一下,不过我还是只记录一下跟别人blog上没有,或者自己的想法(ps: 因为有时候翻blog时候发现每篇都一样还是挺烦的= =) .为了不 ...
- PyTorch上路
PyTorch torch.autograd模块 深度学习的算法本质上是通过反向传播求导数, PyTorch的autograd模块实现了此功能, 在Tensor上的所有操作, autograd都会为它 ...
- 微信公众号添加zip
微信公众号添加zip的教程 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众号添加 ...
- Faiss流程与原理分析
1.Faiss简介 Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库.它包含多种搜索任意大 ...