LoadRunner(1)

性能测试:HP LoadRunner11


一、初步概念:
  1、功能测试:测试产品的功能是否满足功能需求。
    如:ATM取款(在线取款)是否成功或转账操作是否成功
    -- 一个用户


  2、性能测试:测试产品的性能是否满足性能需求。
    包括指标:时间、多用户共同使用
    如:ATM取款(在线取款)耗时30分钟
    十万人同时转账,系统崩溃了,都属于性能问题。

    结论:性能测试基于功能,其要求高于功能
    测试基本流程:功能测试、安全测试、性能测试

    招聘的需求:
      A. 功能测试(手工、自动化) 代码要求高
      B. 性能测试(只能自动化) 协议和业务的理解、脚本的增强、硬件、操作系统、网络、服务器、数据库、软件结构、算法
      C. 手机测试(手工、自动化)

 

二、性能测试的课程安排
  1、性能测试的基本概念
    如何掌握一门技术?3W1H法
    What? 是什么? 核心概念
      数组:用来保存一组相同类型数据的载体、容器、数据结构
    Why? 为什么? 优势 好管理
    Where? 在哪儿用? 应用场合 面试的问题有针对性
    How? 如何使用? 使用步骤、注意事项 -- 结合项目描述

    哪些行业、软件需要进行性能测试?
      1)对性能要求较高的:通讯、银行、金融、证券、保险、互联网应用(电商、社交软件、搜索引擎...)
      2)对性能要求较低的:单机软件、少量用户的系统
      比如:计算器、用户量少的员工管理系统

 

  2、性能测试工具:HP LoadRunner11 份额:60%,其它工具:JMeter 20%
    1)LoadRunner的初级部分:三大组件的基本运行
      a. 脚本生成器:录制、调试、增强性能测试脚本
      b. 控制台:好比总指挥部
      c. 结果分析器:分析性能测试结果数据,获取性能测试报告
    2)LoadRunner高级部分:三大组件深入掌握

 

  3、性能测试的高级部分:制定性能测试计划(难点),遇到性能问题(瓶颈),如何定位、定性、进行性能调优。

    需求 测试计划制定 执行 性能分析和优化

    并行:多任务占据各自资源一起运行
    并发:多任务抢占少量资源“一起运行”

    奥运门票系统分析: 需求预估不足,导致测试通过,但不能满足实际的压力。
    压力激增--瞬时压力:并发压力(并发测试)
    系统瘫痪-- 宕机(down机) dang4

    C S
    客户端 服务器
    北京------> 上海 网络平均延迟:0.2秒
    上海------>

 

三、性能测试的概念
  1、性能测试: 比喻成“攻坚战” 测试机 攻打 被测系统
    严阵以待、想方设法、放马过去、方知厉害
    模拟真实的生产环境,制定性能测试计划,模拟不同用户使用不同压力去访问被测系统,根据计划中的性能指标分析系统是否满足性能需求。
    常见性能指标:
      <1> 平均事务响应时间 比如<3秒
      <2> 最大并发用户数 比如达到1000
      <3> TPS 每秒事务数 比如达到100 系统效率体现
      <4> 系统资源特性:CPU使用率... 比如:70%
      ...

    功能的问题:缺陷 bug
    性能的问题:瓶颈 影响性能的原因、位置

 

  2、注意:性能测试之前要做好系统备份!


  3、性能测试首先看性能需求,如果没有需求,要和客户交流,根据被测系统相关资料,结合测试经验,编写性能测试计划(设计),测试计划是后续展开性能测试的重要依据。

 

  4、负载测试和压力测试的区别?(面试题)
    1)共同点:都是在测试过程中逐步加压(递增测试)
    2)负载测试 Load Testing
      是在正常范围内测试,满足性能需求、正常运行;
      -- 见好就收
    3)压力测试 Stress Testing
      可以在极端范围内测试,测试系统的性能极值;
      -- 使劲折腾
    4)举例:性能需求中要求系统支持100用户并发
      负载测试:20 40 60 80 100 比如分为5个节点
      压力测试:100 200 300 ...

 

  5、影响性能的因素:
    1)数据库:60%以上的性能问题和数据库有关
    2)硬件配置:好的系统可伸缩 增加、去除设备改变性能
    3)操作系统:Linux/Unix 一般和系统配置有关
    4)其它:网络、网络协议、客户端等

    网络协议: Protocol 网络通信的语言、规范、规则、标准
    比如:HTTP TCP UDP FTP
    结论:分析协议是性能测试的关键。

    TCP/IP协议有几层? (TCP/IP协议簇 cu4)
      从上到下有四层: 使用的协议:
      应用层 HTTP FTP DNS Telnet SSH ...
      传输层 TCP UDP
      网络层 IP
      物理层 底层比特流 bit 二进制 0 1

    TCP和UDP的区别? HTTP基于哪种?TCP
      TCP: 传输控制协议 可靠的协议,效率偏低
      原理:传输数据时需要进行确认
      建立连接时需要三次“握手”,断开连接时需要四次“握手”
      --- 相见时难别亦难
      适用于:文件传输、网页传输等可靠获取信息
      UDP: 用户数据报协议 不可靠的协议,效率偏高
      只管发,不管确认
      适合于:视频点播、流媒体
      A 我特别能吃苦! --> B

    HTTP协议:超文本传输协议
    是互联网中最基本、最重要的协议
    http://www.baidu.com
    特点:简单的(格式)、无状态(不保存用户状态)的协议
    Http Request: 客户端向服务器发送Http请求
    Http Response: 服务器向客户端返回Http响应(应答)
    一次请求,一次响应就是一次交互

    常见的系统架构:C/S B/S
    Client --网络-- Server
    客户端 服务器
    Browser
    浏览器 是一种特殊客户端
    客户端浏览器

 

  6、被测系统 SUT
    SUT (System Under Test) 系统
    AUT (Application Under Test) 应用
    EUT (Environment Under Test)环境
    就是:Web服务器、数据库服务器、网络的统称
    Web应用典型三层架构: 常用B/S架构
    被测系统 SUT
    ___________________________________
    Client --网络-- Web Server --网络-- DB Server
    客户端浏览器 Web服务器 数据库服务器
    部署Web应用 管理表和数据
    1.请求 Request --> 2. 接收并处理 --> 3.查询 select
    6.响应 Response <-- 5.继续处理 <-- 4. 结果

    业务流程:用户登录
      Username: Tom
      Password: 123
      Login

 

四、LoadRunner的工作原理:录制-回放的工作方式
  1、录制时:LoadRunner根据相关网络协议,记录下客户端和服务器二者之间的对话(请求包、应答包);脚本是自动化执行的依据,先模拟功能的实现,再测性能(增强);
    -- 使用真实的客户端浏览器


  2、回放时:LoadRunner根据相关协议模拟真实的客户端向服务器发起请求,并按照增强后的脚本去验证服务器的应答(检查点)。
    补充说明:有时脚本录不下来,需要自己写脚本,发现测试时通过了,但是实际运行时服务器瘫痪了。
    原因:没有模拟真实的客户端效果,接收也出现问题,导致失败;
    结论:即便是自己写脚本也要模拟真实的客户端效果。

    项目安排?分工

 

  3、LoadRunner的三大组件:各司其职、各尽所能
    1)虚拟用户脚本生成器: VuGen 或 VUG 好比:兵工厂(Virtual User Generator)
      功能:录制、编辑、调试性能测试脚本 脚本好比武器
    2)压力调度控制台(Controller) 好比:总指挥部
      功能:创建场景、运行场景、监控场景,收集测试结果数据
      场景:Scenario 就是一个大型的配置文件
      保存场景界面设置的细节,表示整个测试计划
    3)压力结果分析器(Analysis)
      功能:把收集到的测试数据以各种图表形式展示;便于分析性能情况,得出测试结果报告。

 

五、关注SUT,并进行脚本的录制和回放。
  1、熟悉SUT:LR自带的B/S架构的系统 WebTours
    航空订票系统
    先启动Web服务器:Xitami 小型服务器软件
    打开浏览器,访问:URL 地址 统一资源定位
    回环地址
      http://127.0.0.1:1080/WebTours/
    本地主机 IP
      http://localhost:1080/WebTours/
    协议名 主机名 端口号 应用名
    常见默认端口号:
      Tomcat默认8080 Oracle: 1521 Mysql: 3306
      HTTP:80

    用户名:jojo
    密码:bean
    系统功能介绍:
      1)Login: 用户登录 只有用户登录成功了,才称为在线
        此时用户具有访问系统的某种权限
      2)Sign Off: 退出登录 用户离线,放弃权限
      3)Flights: 订票
      4)Itinerary: 查看订票记录
      5)Home: 主页
      6)其它:注册等

 

  2、LR使用前的注意事项:
    1)使用LR之前,修改浏览器配置(默认IE)
      <1> 工具 -> Internet选项 -> 常规 -> 设置-> 每次访问此页时检查
        原因:当脚本更新时,能够及时适应
      <2> 工具 -> Internet选项 -> 程序 -> 重置Web设置
        原因:恢复录制时自动打开的浏览器为IE
      <3> 工具 -> Internet选项 -> 高级-> 去除 启用第三方浏览器扩展
        原因:避免录制时的干扰


    2)由于当前环境,导致LR三大组件运行缓慢
      解决方法:禁用本地连接
      右击 网上邻居 -> 属性 -> 右击 本地连接 -> 停用
      说明:在真实测试项目中不能禁用!
      因为需要用本机作为测试机 联网 访问其它服务器主机;而目前测试机、被测系统主机 都在本机 localhost访问。

    3)如果WebTours中Flights功能无法显示:
      原因:和Oracle中Perl服务资源冲突
      解决方法:删除以下两个目录 前提:先关闭perl.exe进程
      D:\oracle\product\10.1.0\db_1\perl\5.6.1\bin
      删除 MSWin32-x86目录
      D:\oracle\product\10.1.0\db_1\perl\5.6.1\lib
      删除 MSWin32-x86目录
    4)要求打开LoadRunner任何一个组件,都从开始 -> 所有程序中打开,不能使用快捷方式。
    5)当录制时,如果被测系统网页无法自动打开(浏览器),因为系统某些服务产生的影响,比如:java.exe,建议关闭所有无关的、有影响的服务:
      java.exe、杀毒进程、ApacheXxx、oracle、mysql、sqlserver、TNSLSNR、TomcatXxx、perl、电脑管家...
      技巧:先对进程列表按照进程名称排序,便于合并查找

 

  3、案例:录制并回放用户登录脚本
    使用:VuGen
      开始 -> 所有程序 -> HP LoadRunner -> Applications-> Virtual User Generator
      点击New 新建脚本 -> 选择录制的协议:
      使用默认的 Web[HTTP/HTML]-> Create 创建
      填写的信息:
      1)软件架构类型: Internet Applications (B/S) 默认Win32 Applications (C/S)
      2)选择浏览器类型:默认IE
      3)URL Address: 被测系统首页的网址
        http://localhost:1080/WebTours/
        或
        http://127.0.0.1:1080/WebTours/
      4)Working Directory: LR工作路径 默认
      5)Record into Action: 录制脚本的位置 默认Action(vuser_init 初始化 Action 核心动作 vuser_end 结束)
        -> OK 自动打开浏览器 SUT首页,开始录制
          关注小操作条(录制控制,关注数字的变化 Event 记录事件的步骤,等待数字稳定后才继续操作,避免录制不完整)
        -> 输入jojo和bean
        -> 开始事务(插入事务)名称:login -> OK
        -> 点击Login按钮
        -> 结束事务login -> OK
        -> 切换到vuser_end模式,点击Sign Off 退出
        -> 关闭浏览器 -> 点击Stop 结束录制

      建议新建工作目录:C:\work (目录名使用英文、数字)
      新建三个子目录:
        1)script 存放脚本文件
        2)scenario 存放控制台的场景文件
        3)result 存放结果分析文件
      ctrl+s 将脚本保存在:C:\work\script\day01\login

      修改字体:Tools -> General Options -> Environment-> Editor Comic Sans MS 14 Bold 加粗

      Java编程的基本步骤:
        1. 编辑: Hello.java
        2. 编译: javac Hello.java --> Hello.class 字节码
        3. 运行: java Hello 启动JVM,加载并执行Hello程序

      录制脚本后:
        1)编译:Compile 修改完脚本后一定要编译!
          帮助检查语法错误,并能够保存脚本并生成最新的版本。
          脚本 23行附近 语法 错误 少个;
          Action.c (23): syntax error; found `lr_think_time' expecting `;'
          非法的 字符 中文 的;
          Action.c (23): illegal character `\0243'

          技巧:如何快速提高调试技巧?
          -- 可以将正确的代码故意改错,观察出错的提示
          大部分提示都非常相似,日积月累,积累调试经验

        2)回放:Run
          VuGen模拟1个虚拟用户,执行脚本中的步骤,向被测系统发请求。(没有打开浏览器,工具在模拟协议的发送)

          设置运行后自动出现测试结果: Test Results
          Tools -> General Options -> Replay 回放-> After Replay 选择 Virtual test result 虚拟测试结果

          运行错误提示:
            Action.c(4): Error -27796: 第4行 错误
            失败 连接 服务器
            Failed to connect to server "localhost:1080": [10061] Connection refused
            连接 被拒绝
          原因:服务器已经down机、关闭
          如何解决:重新启动服务器

          学习重要思路:业务 + 技术
          业务:不同行业操作流程,比如银行、物流、保险、电商、电信...
          技术:是通用的,能够解决各行各业的业务问题。

          回放脚步执行顺序:VuGen负责调用
          初始化 核心 结束
          vuser_init 1次 -> Action 默认1次 -> vuser_end 1次
                  可循环多次

          每段脚本中都有类似结构:C语言的函数的定义
          vuser_init() //默认返回int 可以不写
          {
            return 0; // 返回0表示正常结束 -1 错误退出
          }

          函数function/ 方法method:对一段代码的封装
          定义函数:代码的封装
          调用函数:代码的复用(重复使用)
          函数声明 三要素:
          返回值类型 函数名(参数表, ...)
          比如:
            形式参数
            int add(int a, int b)
            { //函数体 对函数的步骤实现
              return a+b;
            }
            调用函数: 实际参数
            int n1 = add(1, 2);
            int n2 = add(3, 5);


归纳:
  1、性能测试常见的概念
  2、性能测试工具LoadRunner基本原理:录制-回放
  3、LoadRunner三大组件:VuGen、Controller、Analysis
  4、录制和回放脚本基本步骤、技巧
  5、调试好测试环境:测试机LR 被测系统 WebTours

转载于:https://www.cnblogs.com/KalosOwen/p/8977162.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值