zoukankan      html  css  js  c++  java
  • LoadRunner(2)

    一、性能测试的基本概念

      1、并发和在线的区别:并发的压力是一种瞬时压力,一般针对同一类型业务;在线的压力是一段时间的压力,没有并发那么集中。
        规律:一般20用户并发产生的压力相当于200用户在线的压力(近似1:10的比例)
        制定性能测试计划,作为参考,比如设计的在线用户数最多10000个,建议最多测试1000~2000用户的并发。
        (并发测试)
        对比:两种常用性能测试策略(面试题)
        并发测试:严格的并发、瞬时压力 1000~2000人并发
        在线综合场景测试:日常在线的压力 10000人在线

      2、请求响应时间 = 客户端时间 + 网络时间 + 服务器时间
        被测系统 SUT
        __________________________________
        Client --网络-- Web Server --网络-- DB Server
        请求Request ---1--> 处理 ---2---> 增删查改 SQL
              响应Response <--4--- <---3----
        常用方法:排除法
        Internet: 互联网/广域网
        Intranet: 内联网/局域网 一般速度更快
        建议1:可以通过内网测试规避掉网络的问题,客户端一般不会成为性能瓶颈(客户端性能问题一般出现在JavaScript程序--Web前端动态技术,比如客户端验证等),所以大部分情况下,如果请求响应时间长,性能瓶颈出现在服务器端;
        建议2:Web服务器和数据库服务器最好分开部署(分布式),既可以让负载(压力)更加均衡,又可以便于LR对系统资源的监控。

      3、事务响应时间:用户完成某个具体操作(动作)所需的时间。 Transaction Response Time
        事务也称为交易
        比如:登录、订票、转账、抢红包 都可以是一个事务
        一个事务范围内很可能包含多个请求,包含了若干个请求响应时间的综合效果。

      4、点击率:Hits Per Second 越大,对服务器压力越大
        含义:每秒钟用户向Web服务器提交的HTTP请求数。
        不是指鼠标点击的次数,比如:点击一个超级链接,服务器返回一个页面,页面中包含了5个图片,则当前发起的点击数(请求数):1+5 = 6个 Http请求
        因为:<img src="图片的资源路径名"/>
        自动向服务器发起请求,获取图片的响应

        目前录制脚本使用:Web[HTTP/HTML] 协议
        Web: 就是使用浏览器访问服务器的一种方式、技术 B/S
        采用HTTP协议通信、在响应返回结果中带有HTML源代码

        HTTP: 超文本传输协议
        HTML: 超文本标记语言 网页语言、浏览器解释的语言
        形式:*.html 或 *.htm 文本文件
        编辑文本、标签(标记)等表示页面的元素
        <html> 根标记 头
          <head> 头
          <title>浏览器标题</title>
          </head>
          <body> 主体 浏览器正文部分
            文本、其它标签表示不同页面元素
          </body>
        </html> 根标记 尾

      5、吞吐量:Throughput
        含义:用户在任意给定一秒从服务器获取的全部数据量,单位是字节Byte,累计时间的全部数据量。
        吞吐率:吞吐量 / 测试时间 单位:Byte/sec 体现效率
        每秒字节数
        TPS: Transaction Per Second 每秒事务数
        比如:一般系统TPS达到50个、100个 不错了
        好的系统天猫双十一 峰值TPS:
        2016: 12万
        2017: 25万

      6、请求和响应:都遵循Http协议
        Http Request: 客户端向服务器发请求
        Http Response: 服务器向客户端返回响应(应答)

      7、系统资源利用率:一般指系统中CPU、Memory内存、Disk磁盘、Network网络等主要资源的使用情况。
        CPU中:%Processor Time CPU忙的时间的百分比
        CPU使用率 70~80%
        (yu4)阈值:超过该值容易出现性能瓶颈

    二、熟悉三大组件基本协作关系
      需求:测试用户登录在8个用户访问时的性能情况
      关注性能指标:平均事务响应时间、TPS、点击率...
      <3秒
      其它:脚本:login 账户:jojo和bean
      VU数:8个
      用户加载方式:每隔2秒加载1个VU
      运行持续时间:所有VU运行完脚本


      1、使用VuGen录制login
        对脚本进行增强:添加事务 login
        录制、调试、回放通过才能使用
        D:workscriptday02login
        注意:如果脚本修改过了,一定要保存并编译,才是最新版本!

      2、使用Controller 设置场景 Scenario
        开始 -> 所有程序 -> HP LoadRunner -> Applications-> Controller
        默认使用场景类型:手工场景 Manual Scenario
        将Use the Percentage Mode to... 去除打钩
        目的:VU数量的分配目前不用百分比方式,采用具体人数
        -> Browse按钮 选择脚本 day02login -> OK
        -> 场景设置界面:
        -> 设置8个VU: Run Mode中选择Basic Schedule
          将Quantity 改为8 VU数量
        -> 设置VU的行为:
          1)Initialize: VU初始化,默认运行前初始化
            好比:运动员的热身活动
          2)Start Vusers: VU的加载方式,何时启动VU
            Start all Vuser simultaneously 同时
            默认同时加载8个VU
        需求:每隔2秒加载1个VU 递增效果
        双击 -> 改为:1 Vusers every 00:00:02(HH:MM:SS)-> OK
        关注Schedule Graphics 计划预览图
        横坐标:Time 测试时间 纵坐标:Vuser 虚拟用户数
        锯齿状:每隔2秒加载1个VU
        虚线:运行时间 不确定
          3)Duration: 运行持续时间
            <1> Run until completion 运行直到结束(脚本结束)选择
            <2> Run for __ days and __(HH:MM:SS) 具体运行多久
            <3> Run indefinitely 无限运行,直到手工停止
              建议及时保存场景文件: ctrl+s
              C:workscenarioday028VU_login *.lrs Scenario

            说明:目前暂时忽略Windows Resources 系统资源监控
              后续统一添加

        设置好场景,可以运行场景:Start Scenario 按钮
        -> 从Desion视图 切换到 Run视图
        设计 运行

        如果运行场景出错,要查看错误信息 Details 详细描述:
          脚本 12行 错误 连接服务器失败
          Action.c(12): Error -27796: Failed to connect to server "localhost:1080": [10061] Connection refused 连接被拒绝
        原因:服务器未开启 或 服务器停止运行

      3、点击控制台Run视图中,倒数第3个按钮
        打开Analysis 结果分析器
        Report 报告
        Summary Report 总体报告
        重点分析事务:
          Transaction Name Minimum Average Maximum
          Std. Deviation 90 Percent Pass Fail Stop
          事务名 最小 平均 最大 标准方差 90%时间 通过 失败
          login 0.409 0.512 0.811 0.142 0.811 8 0 0
          重点关注平均事务响应时间:0.512s
          如果性能需求中规定时间不能超过3s,目前符合需求
          最小、最大值作为参考
          Std. Deviation 标准方差:0.142 查看稳定性的依据
          规律:越接近于0,说明不同结果值越接近,说明系统运行越稳定。
          90%时间:绝大部分VU在该时间内完成,辅助分析
          通过率:100% 功能不能模拟实现,性能结果无法生效
          事务错误率一般控制在0.3%以内:
          1000个事务,如果出错了3以内,可以接受

          HTTP响应状态码:(面试题:列举出常见的)
          Response Status Code
          不同响应码表示不同的响应状态
          2xx 成功
          3xx 重定向(正常)
          4xx 客户端错误
          5xx 服务器端错误

          200 OK 表示服务器成功返回响应
          302 重定向响应(是一种正常的技术手段)
          404 客户端问题:资源找不到 比如访问地址不对
          500 服务器问题:服务器端程序有错误、异常
          Error 错误
          Exception 异常 XxxException
          ArrayIndexOutOfBoundsException
          数组下标越界异常
          int[] arr = {1,2,3,4,5}
          0 1 2 3 4
          arr[-1] arr[5] 正常下标 0~4

          Graphs 图表
          Running Vusers 正在运行的虚拟用户数
          Hits per Second 点击率
          Throughput 吞吐量
          Transaction Summary 事务摘要
          Average Transaction Response Time 平均事务响应时间

          技巧:合并图比较 右击A图 -> Merge Graph -> 选择B图
          练习:将点击率 和 吞吐量 合并
          规律:趋势相当,点击率是起因,吞吐量时结果,点击率提高了,在正常范围内吞吐量也会提高,如果达到了性能瓶颈,就难以提高。使用拐点分析法找到性能的瓶颈,比如达到多少点击率时,吞吐量无法继续上升。

          如何获取TPS? 添加新选项-> 新的图
          右击Graphs -> Add New Item -> Add New Graph
          -> 事务中 -> Trnasaction per Second 0.121

          建议将结果文件保存:ctrl + s
          D:work esultday028VU_login_r1 *.lra analysis
          后续可以打开分析

        练习题:熟悉LR三大组件的基本运行
        测试计划:针对9个VU各完成一次购票操作
        效果:9个VU为jojo账号一共订到9张票
          1)使用VuGen录制buy脚本:关键有login、buy事务、录制完成了
          2)使用Controller加载buy脚本
        设置脚本组:组名默认、脚本路径、VU数 9个
        VU行为:默认运行前初始化
        每隔1s加载1个VU
        运行直到结束
        使用Run视图运行并监控,获取结果报告
          3)使用Analysis关注几个重要性能指标:
        平均事务响应时间、TPS、点击率

    归纳:
      1、脚本基本组成、读懂脚本和业务流程的对应关系
      2、熟悉常见的概念:
        事务、点击率、吞吐量、TPS...
      3、熟悉LoadRunner三大组件基本协作关系
        VuGen -> Controller -> Analysis
        脚本 场景 结果

  • 相关阅读:
    华为花了100亿,为员工造了12个欧洲小镇,幸福到爆棚
    Qt5.9 官方发布的新版本亮点的确不胜枚举(而且修复2000+ bugs)
    详尽分析世纪之战:360VS腾讯是两个阶层的抗争
    c#
    PhantomJS
    bootstrap table
    Linux 入门
    多路搜索树
    网站性能优化工具
    NetCore上传多文件
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8977164.html
Copyright © 2011-2022 走看看