1) 性能:系统的性能测试是一个很大的概念,覆盖范围非常广。
2) 软件系统性能:包括:执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。
3) 性能测试:是为描述测试对象与性能相关的特征并对其进行评价而实施的一类测试,主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
4) 通常把性能测试、负载测试、压力测试总称为性能测试。
如果把软件系统看做一个“孩子”,那么开发群体就是“父母”,每个“父母”都希望孩子既“聪明”、“漂亮”又“健康”。
1)聪明:体现在,系统的性能表现良好,系统响应速度准确、快速;
2)漂亮:系统体现为功能强大,易用性、兼容性等方面突出;
3)健康:体现在,系统能够持续、稳定运行;
1)人工
(1)人力、物力和时间严重损失。
(2)手工操作的延迟问题。
2)工具:loadrunner等工具
(1)一台机器可以模拟成千上万的虚拟用户(前提满足协议即可)。
(2)设置不同操作场景,模拟更加真实。
(3)强大的结果分析能力。
1) 吞吐量(throughput):指单位时间内处理的客户端请求数量。直接体现软件系统的性能承载能力。
2) 并发数量(concurrency):多个同事并发的业务操作。如:100个用户谈事点击登录界面的“登录”按钮操作。
3) 思考时间(think time):录制脚本过程中,每个请求之间的时间间隔,即操作过程中停顿的时间。
4) 响应时间:指用户从客户端发起一个请求开始,到客户端接受到服务器端返回结果的响应结束,结果信息展现在客户端整个过程所耗费的时间。
5) 点击数:它是统计根据客户端向Web服务器发了多少次HTTP请求计算的。
6) 性能计数器(counter):是描述相关服务器、操作系统、中间件等性能的一些数据指标。如:Windows系统的内存数(memory inusage)、进程时间(total processtime)都是常见的计数器。
7) 资源利用率:资源利用率通常是指系统各种资源的使用情况,一般用“资源使用量”/“总的资源可用量”× 100%。
8) 网络吞吐量:指在网络工作正常的情况下,单位时间内通过的数据数量。该指标用于衡量系统对于网络设备或链路传输能力的需求。
9) 错误率:指系统在负载的情况下,失败交易的概率。错误率= 失败交易次数/交易总数×100%。
10) 系统稳定性:用户提出的重要指标,如:稳定运行时间7*24等。
1)性能测试过程包括分析、执行、总结三个部分,具体可拆分如图所示:
图1-1
loadrunner是一款性能测试软件,通过模拟真实的用户行为,通过负载、并发和性能实时监控以及完成后的测试报告,分析系统可能存在的瓶颈,loadrunner最为有效的手段之一应该就是并发控制,通过在控制台的设置,已达到用同一个业务同事模拟成千上万的用户进行操作。它最初是Mercury公司产品(2006年之前),之后被HP收购。
Loadrunner最新版为12
实际运用过程中Vugen、Controller、Analysis相互关联相互影响,分析三者之间的关系,如图所示
图2-1
1)VuGen(Virtual UserGenerator)虚拟用户生成器
用于捕获最终用户业务流程和创建自动性能测试脚本 (也称为虚拟用户脚本)。
2)Controller (控制器)
用于组织、驱动、管理和监控负载测试。
3) Analysis (分析器)
统计运行后数据,查看、分析和比较性能结果。
最主要的功能就是用于创建虚拟用户,从而模拟现实生活中的人,它不仅可以录制脚本,还可以运行和调试脚本。
1.录制原理:VuGen在录制过程中会录制客户端和服务器之间的相关交互活动,自动生成模拟真实情况的API函数。
2.录制过程:
(1)选择协议:支持单协议、多协议
(2)系统架构:C/S架构、B/S架构
(3)查看模式:脚本模式、树形模式
(4)迭代次数:
vuser_init:中的脚本只执行一次
Action :中的脚本执行多次
vuser_end:只执行一次
3.脚本回放:
(1)运行时设置【Run-time Setings】
(2)Run(F5)或逐步执行【Step by Step】(F10)
(3)【Tools-Recording Options 】 录制选项
4.脚本优化:
(1)插入事务:开始和结束事务(必须成对出现)
(2)插入集合点:对系统压力较大
(3)参数化:模拟真实用户名、密码
(4)设置检查点:支持文本和图片
(5)思考时间:停留时间
5.脚本调试:
(1)断点
(2)单步跟踪
(3)日志输出
(4)脚本编译
(5)注释
controller用来管理和维护场景,可以在一台工作站控制一个场景中的所有虚拟用户。
1.手动场景:手动场景设置可以设置不同的业务组用户数量,编辑计划制定相关的运行时刻、虚拟用户加载策略等。
参数:
(1)用户总数
(2)持续时间
(3)增长比例
1)目标场景:面向目标的场景中,可以定义要实现的测试目标,loadrunner会根据这些目标自动构建场景。
目标类型:
(1)虚拟用户数
(2)每秒单机次数
(3)每秒事务数
(4)每分钟页面数
(5)事务响应时间
2)场景执行完后需要对运行过程中收集到的数据进行解析,analysis应用提供了丰富的表格信息,可以帮助用户准确的确定系统的性能,并提供事务及Vuser相关信息。
(1)丰富的图标
(2)各种角度分析
(3)比较两者的结果差异
(4)报告导出功能支持多种格式
1)场景执行完后需要对运行过程中收集到的数据进行解析,analysis应用提供了丰富的表格信息,可以帮助用户准确的确定系统的性能,并提供事务及Vuser相关信息。
(1)丰富的图标
(2)各种角度分析
(3)比较两者的结果差异
(4)报告导出功能支持多种格式
1)系统:华安云报警系统
2)架构:B/S
3)场景:登录模块
4)用户数:100
1)启动Loadrunner,点击【create/EditScripts】按钮进行录制脚本
图3-1
2)录制结束后,命名login进行保存,如下所示
图3-2
3)点击【Run Load Tests】打开选择文件,把录制的脚本进行添加,点击Ok
图3-3
4)设置虚拟用户数及间隔时间,如图所示
图3-4
5)点击【Analyze TestResults】打开Analysis,选择允许结果文件,生成报告即可
图3-5
总结:利用loadrunner性能测试工具,通过对警视云实际项目进行性能测试,采用100、200逐步加压的方式,利用analysis分析测试结果,汇总有效的测试数据,根据上述测试结果和测试情况,并反馈给研发人员,从而达到对警视云项目的优化警视云负载和并发控制。