性能测试学习第一天~~概念、环境、LR录制&参数化

1.性能测试的概念:

  通过一定的手段,在多并发情况下,获取被测系统的各项性能指标, 验证被测系统在高并发下的处理能力、响应能力、稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户的体验。

2.什么样的系统需要做性能测试:

  用户量大,PV比较高的系统

  系统核心模块/接口

  业务逻辑/算法比较复杂

  促销/活动推广计划

  技术选型

  容量评估

  新项目、新系统

3.性能测试指标

  TPS/QPS    每秒处理的事务数  TPS越高,吞吐量越大,正比例关系。    TPS=1s/响应时间*并发数=并发数/响应时间

  响应时间     网络传输的总时间+各组件业务处理时间                   

                          

      平均响应时间

  TOP响应时间:将所有请求的响应时间从大到小排序,计算指定比例的请求都是小于某个时间。
    tp90:90%的请求响应时间临界值,都小于它。
    tp95:95%的请求响应时间临界值,都小于它。
    tp99:99%的请求响应时间临界值,都小于它。

  并发数/虚拟用户(Vuser)

  成功率:

  PV(page view)/UV(unique visitor):页面、接口的访问量/页面、接口的每日唯一访客(用户日活量)

  吞吐量:  网络中上行和下行的流量综合,吞吐量代表网络的流量

  总结:在系统达到瓶颈之前,TPS和并发数策划那个正比关系,和响应时间呈反比关系。

4.性能测试流程

  需求调研:项目背景、测试范围、业务逻辑&数据流向、系统架构、配置信息、测试数据量、外部依赖、系统使用场景,业务比例、日常业务量、预期指标、上线时间

  测试计划:项目描述、业务模型及性能指标、测试环境说明、测试资源、测试方法及场景设计原则(基准测试、单交易负载测试、混合场景测试、高可用性测试、异常场景测试、稳定性测试、其他特殊场景)、测试进度安排及测试准则

  环境搭建:原则--测试机器硬件配置尽量与线上一致,系统版本与线上一致,测试环境部署线上最小单元模块,应用、中间件、数据库配置要与线上一致,其他特殊配置

  数据准备:业务接口---适合数据表关系复杂的,优点:数据完整性比较好,存储过程---适合表数量少,简单,有点:速度快,脚本导入---适合数据逻辑复杂,自由度比较高,注意数据量级:测试数据+基础数据

  测试脚本:选择工具、协议、参数化、关联、检查点、事物判断

  压测执行:分布式执行,监控(linux、中间件、数据库),收集测试结果,数据分析,瓶颈定位

  调优回归:性能调优、反复尝试、回归验证、监控工具、全链路排查、日志分析、模块隔离

5.常用工具

  loadrunner---功能强大、重量级、商业软件收费

       jmeter----小巧灵活、轻量级、开源

  Ngrinder--平台级产品、开源

6.入门学习环境搭建(以一个web项目OA系统为例子练习)

  1.安装VirtualBox,下载winXP虚拟系统快照文件(已装LR11);

        2.启动VirtualBox,新建32位XP系统虚拟机--选择已有文件,设置共享文件夹E:\\share--新增固定分配位置;

   3.开启虚拟机,从我的电脑-网络驱动器-共享文件里拷贝出jdk、mysql(typical-standard-密码123456)、navicat、apache-tomcat,然后在32位XP系统安装好,配置jdk环境变量,向数据库中导入oa系统sql,讲oa项目代码移动至tomcat下webapps目录下,修改 OA\WEB-INF\classes\jdbc.properties 文件中的用户名和密码,设置为 mysql 的用户名和密码

  4. 双击运行 apache-tomcat-7.0.6\bin\startup.bat

  5. 在浏览器里打开 http://localhost:8080/TestOA/userAction_loginUI.action

  6. 在登录页输入用户名/密码:admin/1234,即可登录成功。

7.LR三大组件

  virtual user generator:脚本生成器,录制编写脚本

  controller:调度压力机、场景管理、展示性能图表、监控等

  analysis:对测试数据进行分析

8.脚本录制和回放

  新建script---options设置recording:HTML-base script--》advance脚本类型修改为第二项urls only ---advance:utf-8----开始录制。完成后回放

              

tools-generation options-display--勾选第一项,可展示浏览器运行过程。

9.参数化

   随机数:random number,例如:编辑内容

   唯一数:unique number,全局唯一,分block块儿,例如:user1-user10,长度依次取0-10%,10%-20%......默认设置start:1,block:100,那么第二个值从101开始取

        文件: file.dat   最常用,例如:登录账号、id之类的  

参数化组合结果 Sequential Random Unique
each iteration  
结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
 
结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进行赋值
 
结果:分别将15条数据写入数据表中
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次。结果:在执行第16次迭代时会抛异常,异常日志可在LoadRunner的回放日志(replayLog)中看到

each occurance

 
结果:分别将15条数据写入数据表中
功能说明:每迭代一次取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取
如:如果参数化文件中有15条数据,而迭代设置为16次,那执行结果中,参数化文件第一行的数据有两条
 
结果:表中写入15条数据,但可能有重复数据出现
功能说明:每次从参数化文件中随机选择一行数据进行赋值
 
结果:分别将15条数据写入数据表中
功能说明:第一次迭代取参数化文件中的第一条数据,第二次迭代取第二条数据,以此类推。
注:如果设置迭代次数为16次,而参数化文件中只有15条数据,明显数据不够。此时可以设置“when out of values”属性来判断当数据不够时的处理方式
Abort Vuser:中断虚拟用户
Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。
Countinue with last value:继续用最后一条数据
once  
结果:表中写入15条一模一样的数据。
功能说明:每次迭代都取参数化文件中第一行的数据。
结果:表中写入15条相同数据
功能说明:第一次迭代时随机从参数化文件中取一行数据,后面每次迭代都用第一次迭代的数据。
 
结果:表中写入15条相同数据
功能说明:每次都取参数文件中的第一条数据进行赋值

  

 

 

 

 

 

 

 

 

  

 

 

      

 

猜你喜欢

转载自www.cnblogs.com/qingyuu/p/11182290.html
0条评论
添加一条新回复