zoukankan      html  css  js  c++  java
  • 性能测试学习第一天-----概念、环境、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目录下,修改 OAWEB-INFclassesjdbc.properties 文件中的用户名和密码,设置为 mysql 的用户名和密码

      4. 双击运行 apache-tomcat-7.0.6instartup.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条相同数据
    功能说明:每次都取参数文件中的第一条数据进行赋值

          

  • 相关阅读:
    txt文件按行处理工具类(可以截取小说、分析日志等)【我】
    java正则表达式取出匹配字符串
    svn客户端更改用户名
    Spring集成MyBatis完整示例
    redis的list取出数据方式速度测试
    处理大量数据的性能优化一例【我】
    unity3d结合轮廓显示,实现完整的框选目标(附Demo代码)
    Unity3dPro 和免费版的区别
    unity3d 射线扫描 忽略图层
    Unity3D角色攻击范围判定和攻击判定
  • 原文地址:https://www.cnblogs.com/qingyuu/p/11182290.html
Copyright © 2011-2022 走看看