性能测试流程
流程
1. 性能测试需求分析
2. 性能测试计划
3. 性能测试用例
4. 测试脚本编写
5. 测试场景设计
6. 测试场景运行
7. 场景运行监控
8. 运行结果分析
9. 系统性能调优
10. 性能测试报告总结
1 性能测试需求分析
需求分析就是把真正需求搞清楚
例如:
1). 公司需要对所有的功能都进行性能测试;
2). 用户登录响应时间小于3秒钟;
3). 系统支持20万用户并发访问;
2 性能测试计划
1). 性能测试计划是对性能测试过程描述的重要过程;
2). 在对需求文档经过认真分析后,作为性能测试管理人员,需要编写的第一份文档就是性能测试计划;
3). 性能测试计划中,需要阐述产品、项目的背景,将前期的需要测试性能需求明确,并落实到文档中。
3 性能测试用例
性能测试需求最终要体现在性能测试用例设计中,性能测试用例应结合用户应用系统的场景,设计出相应的性能测试用例,用例应能覆盖到测试需求。
提示:
1). 明确哪些功能业务量较大;
2). 明确系统预期的用户规模、并发用户数、在线用户数;
3). 明确系统业务的处理能力要求,如:TPS、响应时间、系统资源利用率等;
TPS :(Transaction per second)事务数/秒
4). 详细的操作步骤及场景的搭建模式
4 测试脚本编写
性能测试用例编写完成以后,接下来就需要结合用例的需要,进行测试脚本的编写工作。
注意:
1). 协议的正确选用;
2). 脚本保证其正确性,去除冗余代码;
3). 注重编码的规范和代码的编写质量。
5 测试场景设计
测试场景设计的一个重要原则就是依据测试用例,把测试用例设计的场景展现出来。
提示:
1). 虚拟用户数量及启动虚拟用户方式
2). 场景的相关设置(如:集合点)
3). 脚本是否存在依赖关系(登录与注册)
6 测试场景运行
测试场景运行是关系到测试结果是否准确的一个重要过程。
注意:
1). 负载的测试机是否能够运行设定的虚拟用户数;
2). 有没有“预热”的过程;
3). 有没有模拟用户的真实环境;
4). 性能用例运行次数是否过少。
7 场景运行监控
场景运行监控,可以在场景运行时决定要监控那些数据,便于后期分析性能测试结果。
1). 应用性能测试工具的重要目的就是可以提取到本次测试关心的数据指标内容;
2). 性能测试工具利用应用服务器取得在负载过程中相关计数器的性能指标。
(计数器:计算、统计性能指标的工具)
注意:尽量搜集与系统测试目标相关信息,无关内容不必进行监控。
8 运行结果分析
性能测试执行过程中,性能测试工具搜集相关性能测试数据,待执行完成后,这些数据会存储到数据表或者 其他文件中,为了定位系统性能问题,我们需要系统分析这些性能测试结果。
提示:
1). 一般使用“拐点分析”方法,利用性能计数器曲线图上的拐点进行分析的方法。
(基本思想就是性能产生瓶颈的主要原因就是因为某个资源的使用达到了极限,此时表现为随着压力的增大,
系统性能却出现急剧下降,就产生了“拐点”现象。)
9 系统性能调优
性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈。
提示:
1). 调优人员(开发人员、数据库管理员、系统管理员、网络管理员、性能测试分析人员)相关人员对系统进行调整;
2). 验证-性能测试人员继续进行第二轮、第三轮...的测试,与以前的测试结果进行对比,从而确定经过调整以后的
系统性能是否有提升。
注意事项:
系统调优由易到难的先后顺序如下:
1. 硬件问题;
2. 网络问题;
3. 应用服务器、数据库等配置问题;
4. 源代码、数据库脚本问题;
5. 系统架构问题。
10 性能测试报告总结
性能测试总结要包含以下内容:
1). 性能测试需求覆盖情况,性能测试过程中出现的问题,如何去分析、调优、解决的;
2). 测试人员、进度控制与实际执行偏差和性能测试过程中遇到各类风险是如何控制的;
3). 经过该项目性能测试后,有那些经验和教训等内容。
性能测试工具-LoadRunner
学习目标
1. 理解基于VuGen的脚本录制
2. 掌握参数化的使用方法
3. 掌握关联的使用方法
4. 掌握检查点的使用方法
5. 掌握事务的使用方法
6. 掌握集合点的应用
LoadRunner介绍
一、LoadRunner简介
LoadRunner是一种工业级标准的性能负载测试工具;可以模拟上千万用户实施测试,并在测试时可实时检测应用服务器及服务器硬件的各种数据,来查找和确认存在的性能瓶颈;
支持多种协议,如:Web(HTTP/HTML)、Windows Sockets、FTP、ODBC、MS SQL Server等协议
二、LoadRunner组成【非常重要】
组成:
1. Virtual User Generator(VuGen)
2. Controller
3. Analysis
提示:
1. VuGen:脚本生成器-脚本录制、编辑
2. Controller:控制器-设计场景、运行、监控
3. Analysis:测试结果分析
三、 理解LoadRunner的三大工具(扩展)
为了更好的理解LoadRunner性能测试三大工具作用,我们先回顾下不使用测试工具时,如果进行性能测试...
需求:
软件系统支持100人同时登录
实施:
1. 找100个员工及100台电脑,每个员工注册账号OK,环境OK,输入账号、密码完成...鼠标放到登录按钮上;
2. 领导拿个大喇叭,高喊:1...2...3
3. 相关人员统计平均登录时间及登录前、登陆后的服务器CPU、内存等使用情况
LoadRunner的执行原理:【重点】
1. VuGen:相当于打开登录页面、输入账号、输入密码、点击登录
2. Controller:手拿大喇叭的领导...
3. Analysis:相当与各个统计数据的相关人员
VuGen-手动编写脚本
目标
1. 掌握C语言的注释方法
2. 掌握基于LR手动编辑脚本的方法
首先科普下C语言中的注释;
1. //:单行注释 如://登录
2. /**/:多行注释 如:/*多行 注释*/
提示:
1). Ctrl + Alt + C 为单行注释快捷键;
2). Ctrl + Alt + U 为取消单行注释快捷键;
一、手动编写脚本
1.1 为什么要手写脚本
- 避免LR由于兼容性导致录制异常或失败;
- 手写脚本无冗余代码,更有利于脚本的增强(插入事务、参数化)和维护
1.2 手动编写脚本使用编写语言
- JAVA
- C语言【推荐】
提示:
1. LoadRunner中虽然默认是使用C语言录制/编写脚本,但我们无需专门去学C语言;
2. 只需注意下基础语法和掌握LR中常用的几个请求函数的用法就可以编写常用的脚本;
1.3 脚本请求 函数
- web_url()
- web_submit_data()
- web_custom_request()
提示:
1. web_url:GET请求使用
2. web_submit_data:GET、POST请求
3. web_custom_request:定制请求(GET\POST\PUT\DELETE)等,接口请求使用此函数
1.3.1 web_url() 函数【重点】
只能做GET请求;
语法:
web_url("request name","URL=http://***",LAST);
1). request name:标记请求名称,比如:首页
2). URL=http://xxx:URL=为固定格式;http://xxx为GET请求地址
3). LAST结束标志;
1.3.2 web_submit_data()函数【重点】
默认设置是POST请求;也可以做GET请求。
语法:
web_submit_data(StepName, Action=http://xxx, <List of Attributes>,
ITEMDATA,<List of data>, LAST);
1). StepName:标记请求名称, 比如:登录
2). Action=http://xxx:Action=为固定格式;http://xxx:为提交地址
3). List of Attributes:其他属性 如:"Method=POST"
4). List of data:其他参数 如:"username=jojo"
5). LAST:结束符
提示:
1. POST提交参数比较多,但我们不需用一个个记,使用插入函数方法,在函数对话框内输入即可;
2. 录制HTML页面时,Mode推荐使用HTML;
1.3.3 web_custom_request() 函数【掌握】
自定义请求方法(GET/POST/PUT/DELETE),用于实现接口测试。
语法:
web_custom_request(RequestName, <List of Attributes>,LAST);
1). RequestName:请求名称
2). List of Attributes:属性列表,如:"Method=POST"
3). LAST:结束符
提示:
一般做接口压测时使用;
练习
手动编写 iWebShop 的登录脚本;
LoadRunner-Controller
目标
- 了解目标场景的搭建
- 掌握手工场景的搭建
- 掌握LR监控服务器硬件资源指标的方法
- 掌握负载机的加载与使用
- 了解服务水平协议的功能和作用及其使用方法
Controller 简述
- LoadRunner 中的 Controller 是用来管理和维护场景的工具;
- 可以在一台工作站(服务器)上控制一个场景中的所有虚拟用户(Vuser);
- 通过模拟多个虚拟用户代替真实的用户操作行为,并支持多机联合测试;
- 充分利用有限的硬件资源,解决了手工操作的不同步和人力、物力资源严重浪费的问题。
LoadRunner-Analysis(分析)
目标
- 理解 Analysis 主要图表的分析
- 了解 Analysis 合并图的应用
- 理解拐点图分析法
Analysis 主要功能 概述
- 提供了丰富的图表信息,可以帮助准确地确定系统性能;
- 支持合并多个负载场景的结果或将多个图表合并为一个图,为性能瓶颈的判断提供依据;
- 自动以图形或表格的形式概括和显示测试的重要数据;
- 支持数据、报告导出功能。