zoukankan      html  css  js  c++  java
  • 性能测试-loadrunner

    一、基础概念

    性能测试:在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求
    负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。
    压力测试:指被测系统在一定资源(cpu、内存)饱和的情况下,系统的运行情况。
    可靠性测试:被测系统在长时间运行下的运行情况。
    配置测试:通过调整被测试系统软硬件的不同配置,找到一个最适合被测系统的配置或者获得被测系统正在不同配置下的运行情况。

    性能测试概念

    是指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求。
    性能测试是一种“正常”测试,主要测试使用时系统是否满足要求,同时可能为了保留系统的扩展空间而进行的一些稍稍超过“正常”范围的测试(比如:当前系统使用用户100人,可能未来人数会增多到300人,所以要让系统能够在300人情况下正常运行)
    三、负载测试

    是通过逐步增加系统负载,测试系统性能的变化,并在满足最终确定性能指标的情况下,系统所能承受的最大负载量的测试 
    性能指标:是系统应该满足的,比如请求响应时间等 
    负载测试是正常范围的测试

    通过负载测试得到系统的负载模型,找到“性能拐点”和“有效峰值”
    四、压力测试

    逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。

    压力测试是为了得到非正常情况下的数据,如失效点,这样可以对系统负载进行监控,防止系统出现瘫痪。

    五、压力测试与负载测试两者区别 
    相同点:都是性能测试 
    负载测试强调系统正常工作情况下的性能指标 
    压力测试的目的是发现在什么条件下系统的性能变得不可接受,发现应用程序性能下降的拐点。

    举例:工人建桥,桥身上表明,该桥的最大负重量为60吨。—负载测试 
    该桥的内部建筑资料中,表明该桥的最大载重量为70吨。这个数据是给内部建桥工程师掌握的。—压力测试

    无论使用测试工具还是模拟,本质上市通过一个程序去测试另一个程序。
    负载测试一般包括5个阶段:规划、创建脚本、定义场景、执行场景和分析结果

    影响系统性能的主要因素

    硬件:CPU、内存、硬盘、网卡以及其他网络设备
    操作系统
    网络
    中间件(也叫应用服务器,如Jboss、websphere、weblogic等)
    数据服务器
    客户端
    编程语言、程序实现方式、算法

    1、并发与并行
    2、并发用户数和在线用户数。并发,操作的,对系统造成压力的。在线的,有可能只是挂着系统,但是没有实际操作,对系统几乎没有压力。
    3、TPS(Transactions Per Second)和响应时间
    TPS每秒事务数
    响应时间 = 客户端 + 服务器端 + 网络(性能工具拿到的是后两个数据)
    4、点击数(点击数不是鼠标点击次数,是发送的请求数)
    5、吞吐量:单位时间内被测系统处理的业务或者请求的数量
    6、资源使用率
    7、PV和UV:
    PV:访问一个URL,产生一个PV(Page View,页面访问量),每日每个网站的总PV量是形容一个网站规模的重要指标。
    UV:作为一个独立的用户,访问站点的所有页面均算作一个UV(Unique Visitor,用户访问)

    性能测试的常用术语 
    1、并发:指多用户在同一时刻,共同执行某一操作;并发测试要求比较严格,着重考察系统的瞬间压力 
    在线:多用户在一段时间内对系统执行操作(是指多用户在线去循环操作某一动作) 
    对一般系统而言,多用户并发和多用户在线对AUT的压力是10:1,即50用户并发相当于500用户在线 
    2、请求响应时间

    是指从客户端发送一个请求开始计时,到客户端接收到从服务器端返回的响应结果计时结束。
    在一些工具中,请求响应事假通常称为TTLB(Time to last byte:从发送第一个请求开始,到客户端收到最后一个字节的响应为止所耗费的时间)
    请求响应时间的单位一般为“秒”或“毫秒”

    请求响应时间=客户端时间+网络时间(传输时间)+服务器时间 
    实际的项目测试过程中,经常将被测系统部署到内网环境,这样有充足的带宽,即可规避网络的瓶颈。(因为网络是不可控的,是运营商提供的,不可控的,注意测的是系统,而不是网络,若系统测试,最终测出是网络问题,也是无法解决的。)
    性能测试关心两个词:请求和响应。正常的顺序是请求和应答,先发后收 
    3、事务响应时间 
    用户完成某个具体事务(如跨行取款事务)所需要的时间
    性能测试初探

    性能测试过程中,数据库中不可以为空或者条数很少,这种情况下测试不符合实际的生产情况。一定要根据系统实际的在线情况,插入足够数据(背景数据)后再进行测试
    在性能测试之前,要对被测系统(AUT,application under test)进行备份(数据库的备份)


    性能工具一般是基于协议的,自动化使用的是对象识别技术。
    性能测试不是精准的测试

    性能测试工具选型:
      成本:
        1.工具成本
        2.学习成本
      通信协议:
        1.标准协议
        2.自有协议
      生命力
      跨平台

     性能测试工具:Loadrunner、jmeter、Gatling(加特林)、IBM RPT、SILK PERFORMER、WAS

    lr四大组件:Virtual User Generator(虚拟用户生成器)录制最终用户业务流程并创建自动化性能测试脚本,即Vuser脚本,简称VuGen
    Controller(组织,驱动、管理并监控负载测试)
    Analysis用于查看、剖析和比较性能结果
    Load Generator通过运行Vuser产生负载

    使用环境干净、操作系统干净、浏览器干净、关闭杀毒和防火墙,必要时可以使用虚拟机
    LoadRunner的安装ISO大于4G,需要NTFS分区上,安装不建议使用汉化,最好是英文的。
    Loadrunner目前在Linux平台只有负载生成器

    如何选择协议?
    1.问开发等项目组相关人员
    2.自身的经验
    3.看项目文档分析
    4.使用协议探测器(一般用不到)

    选择协议,选择的是与压力模拟直接交互的中间件或者服务器,和后面的无关

  • 相关阅读:
    【爬虫】python+urllib+beautifusoup爬取花瓣网美女图片
    Django urls.py报错: raise TypeError('view must be a callable or a list/tuple in the case of include()
    python国内豆瓣源
    python pip使用报错:Fatal error in launcher: Unable to create process using '"'
    warning: refname 'HEAD' is ambiguous解决方法
    twisted.internet.error.DNSLookupError: DNS lookup failed: address "'http:" not found: [Errno 11001] getaddrinfo failed.解决办法
    react + iscroll上拉加载下拉刷新分享
    盘点网页图标几种解决方案
    宽度自适应布局
    jqueryUI
  • 原文地址:https://www.cnblogs.com/dongye95/p/11111905.html
Copyright © 2011-2022 走看看