性能测试基础知识
1、性能测试的含义
通过自动化测试工具模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求
2、性能测试的目的
◆ 评估系统的能力
◆ 识别系统的弱点
◆ 系统调优
◆ 验证稳定性、可靠性
3、性能测试流程
LoadRunner基础知识
■ LoadRunner的组件
LoadRunner的三大组件
1、Vuser:用户行为模拟器—单脚本测试
2、Controller:性能测试控制台—运行测试场景
3、Analysis:结果统计—找瓶颈
■ LoadRunner在性能测试中的映射
LoadRunner性能测试的过程:
1、制定计划:测试点、测试环境、测试数据、测试方法、etc
2、开发脚本:业务操作、参数化、etc
3、创建运行场景:测试模型、并发数、运行时间、etc
4、执行测试:自动执行
5、监视场景:TPS、响应时间、吞吐量、CPU占用时间、硬盘占用、etc
6、分析测试结果:图表、日志
■ LoadRunner常用术语<基本概念>
1、事务(Transaction):定义事务以获取这一操作的时间
2、思考时间(Think Time):执行两个连续操作间等待的时间
3、集合点(Rendezvous):用以同步虚拟用户以便恰好在同时刻执行任务
4、检查点(Check point):用以验证程序的运行结果是否与预期结果相符
5、场景(Scenario):即测试场景,主要表现为Controller中设计与执行测试用例中的用户场景
■ LoadRunner的协议
PS:建立一个通道(协议通俗说就是一个翻译)
比较重要的三个协议:HTTP、FTP、Socket
Vuser-用户行为模拟器
Vuser用途:通过录制终端用户执行的操作来生成用户操作脚本,以便作为负载测试的基础
脚本开发步骤:
1、录制用户的操作:业务操作
2、增强测试脚本:参数化
3、配置Run-Time setting:设置Think Time响应时间
4、在Vuser中独立运行脚本:单功能(交易)压力测试
5、将脚本集成到Controller:压力测试
录制脚本:
1、协议选择
2、录制选项设置(以web协议为例)
● 选择录制时所用的浏览器
● 录制方式选择:HTML or URL
● 自动关联策略
3、增强脚本
● 插入事务点
● 插入集合点
● 插入检查点
● 插入特殊函数
控制脚本流程:if ··· else
字符串函数:strcmp
输出函数:lr_output_message
LR的标准函数:lr_save_string
4、配置Run-Time setting
Think Time 策略
Log 记录策略
Error 发生时的处理策略
生成虚拟用户的方式
检查点策略
网络情况设置
脚本的迭代控制
在Vuser中运行脚本:保证脚本运行的正确性
1、VU里单用户单循环run(SUSI)
2、VU里单用户多循环run(SUMI)
3、Controller里多用户单循环run(MUSI)
4、Controller里多用户多循环run(MUMI)
Controller-性能测试的指挥中心
1、多进程/多线程方式
用户可以在Controller的run time setting中选择 Vuser的运行方式:多线程/多进程
2、设计测试场景
◆ 手工场景(Manual Scenario):创建虚拟用户组,设置虚拟用户数目以及其他Run-time信息
◆ 面向目标场景(Goal-Oriented Scenario):先定义测试要达到的目标,然后LR自动基于这些目标创建场景,运行过程中,会不断地把结果和目标相比较,以决定下一步怎么走
3、创建手工测试场景
◆ 创建虚拟用户组
◆ 配置虚拟用户
◆ 详细配置虚拟用户
◆ 设置集合点策略
◆ 配置虚拟用户运行时设置
◆ 配置Load Generator
◆ 设置网络带宽配置
◆ 设置方案(Schedule)
4、执行期间查看场景
◆ 查看用户组(Vuser Group)状态
◆ 事务详细信息
◆ 错误详细信息
5、监视场景
◆ 联机监视器
◆ 在Controller中启动监控器
◆ 配置监视器
6、关注的测试结果(Analysis之外)
Analysis-统计结果
从ouput.mdb中读取测试结果数据,进行分析工作
Analysis的功能如下:
◆ 有助于确定系统的性能瓶颈
◆ 方便我们对数据进行进一步处理
◆ 能自动以图形或表格式展现报告