导图社区 LoadRunner
这是一篇关于LoadRunner的思维导图,主要内容有性能测试概念、测试流程。喜欢小伙伴们可以点赞收藏哦!
编辑于2022-07-16 10:55:43LoadRunner
性能测试概念
性能测试
压力测试
负载测试
并发数
响应时间
在线用户
PV
吞吐量
业务成功率
系统资源耗用
CPU
内存
网络带宽
磁盘
测试流程
性能测试需求分析
没有明确需求时如何开展性能测试
用户频繁使用,并且存在大量用户使用的
系统关键功能点,并且存在大量数据操作
与外部系统存在接口的,有互相调用的关系,大量数据流转
确定测试点以后,需整理测试点提交给上级做评审
要求对系统相当熟悉
系统架构
组网图
业务流程
功能重点
测试指标提取
并发数(预期值)
通常情况下,影响系统性能的一个重要指标就是并发数,当大量的用户在同一时间点上向服务器发起业务请求的话,服务器需要消耗大量的资源进行处理。所以,并发数越大,相对来说服务器所承受的压力也就可能越大,基于此,我们在做性能测试工作的时候,并发数这个指标一般都是必须考察的。
业务量
1、客户给出指标
2、项目经理
3、开发经理、测试经理
4、查询系统日志、数据库、网络流量分析
5、自己经验
时间段
计算方法
2/8原则
响应时间
用户操作时间(think time)
服务器处理时间(2,5,8,10)
业务成功率
关键业务(金融、生命财产安全)
100%
用户群体
面向大众
>=95%
面向特定用户
>=98%
系统资源耗用
CPU持续使用率
<20%
>=20%,<=70%
>70%
内存
与CPU持续使用率相同
网络带宽
使用带宽不超过总带宽的50%
磁盘
CPU队列长度
不超过CPU数量+1
吞吐量
TPS
每秒钟处理的事务数
业务模型建立
约束条件
数据约束
参数化
造测试数据
环境约束
关联
业务流程分析
后面action划分做准备
业务流程图
测试方案、用例设计
根据模版填写数据
脚本录制
搭建测试环境
环境要求
硬件要求
软件要求
数据要求
技术要求
工具培训
项目培训
环境调试
协议选取
自己识别
B/S结构常用HTTP协议
C/S结构多用Winsocket协议
未加密
加密
如果是乱码,则需自己写测试代码,前提是必须知道加密算法
问开发
解决常见问题
无脚本内容
选择正确的协议
无法打开浏览器
检查浏览器版本
去掉插件
更改浏览器
脚本内容乱码
utf-8
注意Action划分
最好事先划分好action
切换action应该在提交操作之前完成
脚本优化
注释
增强脚本可读性
提高脚本维护性
集合点
init和end部分是不能设置集合点的
集合点应该在提交请求的动作之前设置
事务点
参数化
什么时候需做参数化
系统对数据有唯一性要求(注册名、流程id等)
系统对同样业务不允许多次操作(对登录,业务流程处理方法)
更真实模拟用户业务行为
怎么做参数化
参数化类型
文件类型
每次迭代
顺序
随机
唯一
每次发生
顺序
随机
唯一
唯一
顺序
随机
唯一
Table类型
唯一数
随机数
时间/日期类型
测试数据制造
Excel表
适用于小范围,不超过1000
编程实现
定义生成数据的变量
循环
输出打印
存储过程
生成数据
导出数据
手动操作
数据正确性高
效率低下
自动化工具
QTP
LoadRunner
参数化步骤
1、分析测试数据
什么地方需要作参数化
2、选择参数类型,设计分配方式
3、查找替换对象
有可能在脚本中多个地方使用了该变量,所以需要全部替换
4、设定参数化并调试
关联
关联概念
将服务器提供动态变化的值存放在变量中,当需要使用该变量时,由LoadRunner自动从服务器响应的信息中获取该值,并在后面使用的过程中进行替换
关联与参数化区别
关联:服务器提供给客户端的
参数化:客户端给服务器端,可控的
什么时候使用关联
1、操作正确或业务流程正确,但实际没有成功。比如LoadRunner结果报告提示Pass,但实际业务没有成功。首先要考虑的是参数化,再考虑关联(可在业务模型建立环节分析到位)
2、系统存在动态变化的值,并且无法模拟,无规律的,或者隐藏在代码中。hidden
3、后面的操作所需的数据是前面操作的输出,比如订票的航班号
关联方法
自动关联
1、录制脚本
2、保存脚本
3、调试与回放脚本
4、使用快捷键Ctrl+F8,搜索关联点
5、根据实际得出的结果分析是否需要做关联,然后选择需做关联的点,点击【Correlate】按钮进行关联
6、调试脚本
手动关联
1、录制两份相同的脚本
2、保存:a、保存的路径不要太深;b、名称不能有空格;c、名称不能有中文;d、名称不能太长;
3、打开tools-compare with scripts,进行脚本比较
4、选择options-view-show inline differences,将真正不同差异点以红色标注出来
5、将真正不同点拷贝出来,进行分析确定哪些是可以控制(可用参数化处理的),如果不能控制,可考虑使用关联
6、在服务器的响应信息中找到需做关联的点,确定其左右边界。在loadrunner的generation log中查找,不能在loadrunner脚本中查找,原因脚本只反映了客户端发送给服务器端的信息,而generation log体现了服务器与客户端交互的完整信息。
7、在脚本中确定插入关联函数的位置,使用alt+insert快捷键,调出web_reg_save_param函数,输入左右边界即可。
8、关联完成后,点击编译按钮进行语法检查,然后再运行调试。
关联函数
1、函数结构
2、参数列表有哪些
3、左边界
4、右边界
5、savelen
保存字符长度
web_reg_save_param("test","LB=outboundFlight value=","RB=>","SaveLen=18",LAST);
6、saveoffset
保存字符的起始位置(偏移量)
7、ORD
表示获取变量值的起始位置
默认从第一次出现符合条件的变量值开始读取
如果选择ALL,则会将所有符合条件的变量值保存在数组中
8、ParamName_count(数组操作)
文本检查点(web_reg_find)
作用
测试过程检查业务的正确性
用法
web_find
界面查找
启用文本检查点(run time setting)
web_reg_find
查找字符串(源文件)
准确定位
左边界
有边界
其他参数
if语句
常用函数
if语句
字符串处理函数
strcmp
strcpy
atoi(将字符串转化为整型)
日志处理
lr_output_message
lr_log_message
lr_message
字符串保存
lr_save_string
lr_eval_string
脚本回放与调试
运行前先检查语法错误
脚本调试过程中常见的错误
Requested form not found
先考虑参数化,再考虑关联
Requested image not found
先考虑参数化,再考虑关联
download timeout
更改超时时间设置,在run time setting中首选项的options中修改,默认是120秒,同时可将“资源下载超时作为一个警告的值改为yes”
场景设计
并发数计算
block的设置
要比在指标提取阶段统计出的每个用户在某时间段内完成的业务量多(可使用的数据要够用)
设计场景执行计划
按场景计划
逐步加压
考察服务器在接收不断施加的压力的应付能力
每5秒或者2秒增加总vuser的10%
持续运行
考察服务器在一定的压力下持续服务的稳定性
持续时间以在指标提取阶段的业务量对应的时间段为准
逐步减压
考察服务器在逐步撤销压力后的资源回收情况,也就是恢复能力
一般情况下与逐步加压方式相同
按组计划
可以设置单个脚本的执行计划,并可以设置脚本之间执行的先后次序
集合点设置
在代码中启用集合点
在init和end部分不能添加集合点
在场景中设置集合点的策略
释放所有vuser的百分比
释放所有正在运行的vuser的百分比
释放具体的vuser个数
设置vuser之间的超时数值
Run time Setting设置
运行时逻辑
有持续时间,则该设置无效,具体迭代次数以实际运行为准
无持续时间,则迭代次数以此为准
Log设置
脚本调试阶段
启用日志,并一直发送日志,开启扩展日志及参数替换过程
场景运行阶段
启用日志,仅选择仅在错误发生时记录日志,并且是标准日志
思考时间设置
极限测试
忽略思考时间
模拟真实用户行为
启用思考时间,并且是使用录制时的思考时间,前提是思考时间在脚本中已经修改过
发生错误时候继续执行
脚本调试阶段(不勾)
场景运行阶段(勾中)
IP欺骗功能使用
使用ip欺骗工具
启用ip欺骗
启用专家模式
使用lr_get_vuser_ip检查是否获得ip
其他的设置
结果目录存放
负载生成器
数据监控
LoadRunner自带监控方法
第三方监控工具
场景执行
如果采用第三方监控工具,则需在场景执行前就开启这些工具进行监控
在场景运行期间必须保证系统资源是独占的!!!
结果收集
LoadRunner结果收集
第二排菜单倒数第三个按钮(收集当前场景的执行结果)
第三方监控工具的统计结果
结果分析
结果摘要
并发数示意图
响应时间
曲线平缓
取avg时间或者90%的时间值
曲线波动很大
取90%的值
包括思考时间
出报告时应指出响应时间中包括了思考时间
不包括思考时间
此处的值就是服务器请求处理速度的反应时间
每秒点击数(请求数)
大:客户端发起了足够多的请求
小:客户端没有起到发出很多请求的作用
脚本是否正确
LoadRunner许可证是否够用
客户端设置是否正确(防火墙、杀毒软件等)
客户端机器配置是否够用
业务成功率
根据通过的事务数或者数据库中的数据记录进行查看,统计成功率
系统资源耗用
操作系统资源
CPU
内存
网络带宽
CPU进程队列长度
Web服务器资源
JVM内存使用率
web服务的CPU使用率
Web服务器连接数
Web服务器缓存大小
数据库服务器
内存使用率
CPU使用率
磁盘数据传输速率
如果出现性能问题
数据库连接数
是否建索引
是否需要迁移表
是否有资源调配机制
网页细分图
吞吐量
每秒吞吐量大
服务器处理能力强
网络带宽大
每秒吞吐量小
服务器处理能力可能差
网络带宽可能不够
TPS
TPS大
服务器处理能力强,能够处理足够多的业务
TPS小
服务器处理能力差,当然也可能是带宽问题
输出性能测试报告