导图社区 LoadRunner术语、组件、性能测试流程知识框架笔记
QTP 和 LoadRunner 的区别: 1) QTP: 功能测试工具 (自动化) LR: 性能测试工具 可以测多用户 2) QTP 关心的是界面(UI),关心的是对象(对象库的概念); LR 只关心客户端和服...
网店详情页排版方法分享~包括中心页面组成,优质详情必备,详情页的排版参考方法。感兴趣的小伙伴可以看看哦~
喷绘色彩基础培训方案,内容涵盖色彩基础,喷绘写真。框架清晰,内容丰富,希望对小伙伴有所帮助哦~
酒窖营销计划方案,包括结果目标,过程目标。框架清晰,内容丰富,有需要的小伙伴可以看看哦~ 可供大家参考,借鉴,交流。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
LoadRunner术语、组件、性能测试流程知识框架笔记
LoadRunner专业术语
并发数
理解:和系统产生了交互操作的用户,在LR中就是虚拟用户数
扩展概念
注册用户数
系统中全部注册用户的数量
在线用户数
在相同时间段内都登录了系统的用户数量,但是不一定登录了的用户都会产生交互操作
Transation(事物)
理解:可以理解为在一个业务流程中执行一个或者多个操作索花费的时间
事物是度量一个服务器性能的重要标准,这个时间越小越好
事物又开始就要有结束
事物函数
响应时间
理解:
系统平均完成客户端用户请求的一个交易的总时长
响应时间的计算
TPS(Transactions per Second)
理解:就是系统每秒钟所能处理的交易或者事物的数量
衡量系统处理能力的重要标准,TPS越高,系统处理能力越好,
TPS基于事物统计出来的
吞吐量
返回了多少数据,LR中指服务器返回的数据量
Hits per Second(点击率)
理解:运行场景过程中虚拟用户每秒向 Web 服务器提交的 HTTP 请求数
点击率更多的反应客户端侧的一个请求状况,一般情况下点击率是比较平稳的,如果出现大的浮动,有可能是编写的脚本有问题或者是网络存在问题
系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在
点击数:一段时间内点击的次数
思考时间
理解:两个操作的间隔时间
PV(page view)
理解:页面浏览量,就是一个访问者打开了你网站的几个页面
UV(unique view)
理解:第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数
LoadRunner三大组件
VUG
脚本开发的步骤
创建脚本--选择对应协议--设置录制选项--录制脚本--停止录制--优化脚本(去掉无用的东西)--强化脚本(参数化、检点点、事物、关联)--调试脚本(多次迭代并看最终结果,不能单纯以log日志做判断)
Run time setting
run logic
设置迭代次数
Log
调试中打开扩展日志
脚本优化
事物封装
事物里面只放跟业务相关的代码、请求,把要把思考时间等的无关的东西放在事物里面,影响统计出来的数据
事物有开始就有结束,
检查点设置
检查点的目的:检查某个东西是否存在与HTML中,如果检查的东西不在HTML中的话是检查不出来的
检查点函数
web_reg_find()
检查点函数属于是注册函数,注册函数是放在实际提交请求之前
参数化设置
为了模拟不同用户操作诞生的
文本参数化
参数化设置步骤:open parameter list---new--create table--edit
参数化设置的策略
select nest row(选择下一行的策略)
sequential
按顺序选择
radom
随机选择
unique
每次只选择这一行数据
update value on(值得更新策略)
Each iteration
每次迭代,就是每迭代一次取一个值
each
每次碰到,就是每遇到一次被参数化的对象,换一行数据
once
一旦用过就不会再去用了,直接丢弃(用这个策略时一定要准备足够多的数据)
参数化设置注意点
在编辑参数化数据时,必须保证最后一个参数后面有且只有一个空行
参数化的对象是实际存在于业务中的
参数化的对象出现在检查点函数中的话,检查点函数中也需要做参数化设置,否则如果有多次迭代的话,后续的迭代中检查点函数就失效了
数据库参数化
参数化设置步骤:open parameter list---new--data wizard
参数化的sql语句:select id from d_book
关联设置
关联的目的:关联是获取服务器返回的数据中某些指定的值
When--什么时候用关联
1、服务器返回的数据中存在动态变化的值,但是不一定所有变化的值都需要做关联,是那种每次都需要和服务器端做校验的,就是没有这个动态变化的值就没办法执行下一步操作,才会考虑用到关联
2、后续的操作需要用到之前的数据
3、运行脚本是没有出现报错,但是有没有产生相应的操作记录
How--如何判断是否需要设置关联
录制两次脚本,对比两个脚本中的不同之处,对于服务器返回值中的不同值进行关联;
查看脚本中是否存在不规则字符,如value = 110044.7895425dsufxicugbdxvcg;
运行录制的脚本查看是否有错误提示,可以才报错的地方添加关联;
常用函数总结
lr_output_message()
lr_eval_string()
atoi()
Controller
场景设置的步骤
新建脚本-->添加脚本--->设置schedule--->设置压力机--->设置run time setting--->运行观察
集合点设置
集合点使用的场景
集合点在类似于秒杀的场景,可以设置集合点
为了找到某个可能存在性能问题的模块或者接口的性能瓶颈时,可以使用集合点策略进行施压,方便找到瓶颈问题
集合点的设置及策略
设置集合点策略之前需要在脚本中先添加集合点函数
设置集合点时,需要将集合点函数放置在事物外面
设置集合点的目的是:当所有用户到达集合点之后再执行后续的操作
集合点的策略
release when---表示当虚拟用户数中的x%到达集合点之后释放
就是在指定百分比的虚拟用户到达集合点之后才能释放虚拟用户数,去执行后续的操作;
release when---表示 当所有正在运行的虚拟用户中的x %到达集合点时释放
即仅当场景中指定百分比的、正在运行的虚拟用户到达集合点时,才释放虚拟用户
release when---表示 当x 个虚拟用户到达集合点时释放
即仅当指定数量的虚拟用户到达集合点时,才释放虚拟用户。这个很好理解,当我用百分比不太好衡量集合点的虚拟用户数,当然可以设置具体的用户数
Timeout between Vusers (虚拟用户之间的超时)
假如设置了集合10用户并发,结果9个用户已经集合到位,还剩1个虚拟用户,左等右等就是等不来。那总不能一直等下去吧。设定了个时间,假如30秒还不来,那就不管它了。超时的时长默认是30秒,我们可以根据具体的被测应用进行调整。
压力机的设置
run time setting
controller中的run time setting设置与VUG的设置选项完全一起,但是VUG中的run time setting只适合调试脚本不适合跑场景,故需要重新再controller中中设置run time setting,且controller中的run time会覆盖掉VUG中的run time
run time setting--preference--options设置
需要将http-request connect/receive timeout跟step download timeout设置长一些,避免场景运行时出现timeout的错误提示(备注:由此导致的错误并不影响性能测试,LR本身运行机制的问题导致)
Analysis
分析流程
LoadRunner性能测试流程
LoadRunner性能模型