一、性能测试是什么?
1.生活案例:
学校选课系统,就会经常崩溃!!!!
2.性能测试的定义
测试人员借助测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期
3.性能测试和功能测试的区别
功能测试 | 性能测试 |
人工执行 | 测试工具执行 |
不管在什么场景下,只要能跑起来就行 | 软件在极端情况下,是否能正常运行 |
4.什么样的表现是性能好的表现,什么样的表现是性能不好的表现?
软件1:打开首页消耗1ms,软件2:打开首页消耗1s
所以请问那个软件性能好呢?
5.影响一个软件性能因素有哪些?
软件 | 硬件 | 用户 |
算法、编程语言... | 服务器CPU利用路、内存、磁盘操作频率、cpu核心数... | 用户并发数,用使用时长,访问频率... |
二、为什么要做性能测试?
- 获取系统性能的指标,作为性能指标的基准(软件摸底)
- 验证系统的性能指标是否达到
- 发现性能瓶颈,内存泄漏等问题
- 系统正常情况下的最大容量
- 帮助系统运维部门找到更好的规划硬件配置
三、性能测试常见的术语以及性能测试的衡量指标(面试题)
1.并发用户数:大量用户同时发送同一个请求
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量
2.响应时间:
用户响应时间:用户发出请求到接受到响应的这段时间
请求响应时间:服务器收到请求发出响应的这段时间
影响一个软件的响应的因素:数据库性能、网络带宽、服务器处理性能、软件的算法、逻辑、用户设备
3.事务响应时间
4.每秒事务通过的数量
5.点击量
6.点击率:http的请求率
7.吞吐量:用户一次请求的数据交互量
8.吞吐率:吞吐量/时间(吞吐率越高,性能越高)
9.思考时间:用户操作页面时候调用接口的间隔时间
10.资源利用率:不同系统资源的使用的情况,如cpu,硬盘
四、性能测试的分类
基准性能测试 | 让系统在正常情况下,观察软件性能指标 | 场景:软件刚上线进行性能摸底 |
负载性能测试 | 让系统处于一定的压力情况下,观察系统性能指标 | 场景:相当于在瓶颈测试 |
压力测试 | 让系统处于饱和状态下,观察系统性能指标 | 场景:在水快溢出的时候 |
可靠性测试 | 验证系统在一个时间段内运行,在这个运行时间段,观察系统各项性能的指标是不是正常的 |
五、性能测试的流程
功能测试的流程:需求分析-->测试计划-->测试设计-->测试执行-->测试评估-->上线
性能测试的流程:需求分析-->测试计划-->选择性能测试工具-->性能测试脚本编写-->测试执行-->测试评估(产出报告)-->上线
补充:性能测试中出现的不符合预期的情况叫做性能瓶颈,修复的过程是优化
六、LoadRunner学习
1.LoadRunner介绍
LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间、吞吐量, 并发用户和性能计数器等方面来衡量系统的性能表现,辅助用户进行系统性能的优化
2.LoadRunner组成
LoadRunner主要包括三个前台功能组件,分别为VuGen(虚拟用户脚本生成器)、Controller(测 试控制器)和Analysis(结果分析器)。系统会自动调用后台功能组件LG(负载生成器)和Proxy(用户代 理)来完成性能测试工作。
Virtual User Generator | VuGen 是录制与便携脚本的地方。通过录制或编写脚本来模拟用户的行为,录制好的脚本是不同语言表达的文本文件,在LG执行时被解析和执行。脚 本录制和回放过程是在Proxy支持下完成的。 | |
Controller | 设计场景、运行场景,是执行负载测试管理和监控的中心。在这里指定具体的性能测试方案,执行性能测试,收集测试 数据,监控测试指标。监控工具将测试过程中收集到的客户机、服务器和网络性能指标数据显示在监控页面 上,便于测试人员对系统表现进行随时掌握。 | |
Analysis | 对测试过程中收集到的各种性能数据进行计算、汇总和处理,生成各种图表和报 告,为系统性能测试结果分析提供支持。 |
3.下载安装包
Win10下LoadRunner12 下载安装汉化图文教程(含LoadRunner安装包)_loadrunner12下载-CSDN博客
七、自带的系统
1.WebTours学习
1.1启动方式
进入WebTours的目录找到S塔塔Server.bat
启动窗口(包含ip)
1.2配置
找到端口号
成功页面
用户信息(第一行就是密码)
八、脚本录制学习
VSG使用
1.创建
如何确定你要测试的程序用的是什么协议?
找开发问问
2.成功启动
九、脚本加强
1.事务插入
事务的状态默认情况下是 LR_AUTO。一般情况下,我们也不需要修改,除非在手工编写代码时,有可 能需要手动设置事务的状态。可以通过步骤导航器来查看步骤的参数选项。
lr_start_transaction("login");//事务开始函数web_submit_form("login.pl", "Snapshot=t3.inf", ITEMDATA, "Name=username", "Value=test08", ENDITEM, "Name=password", "Value=test", ENDITEM, LAST);
lr_end_transaction("login", LR_AUTO);//事务结束函数
2.插入集合
lr_rendezvous("rendezvous1");
注意:集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不 能插入集合点。
3.插入检查点
对页面上的元素的检查
注意:要放在对应检查的url前面
web_reg_find("Fail=NotFound","Search=All","SaveCount=","Text= Don't forget to sign off when you're done!",LAST);
4.参数化
如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。这些操作都被记录到了脚 本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引 起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。
注意:参数化完成后要调整log的打印还有运行次数
5.打印日志
lr_log_message
lr_ouput_message
十、设计测试场景(Controller)
1.启动
VUG
Controller
设计场景
...