zoukankan      html  css  js  c++  java
  • 性能测试第一章

    一、性能测试的目的?

    1、评估当前系统

      针对从未做过的性能的系统,进行一系列测试,了解知晓当前系统的性能,并作出相关评估

    2、寻找瓶颈,优化性能

      常见的现象为,莫业务操作响应时间长、某系统上线运行一段时间后越来越慢,这些都需要逐步分析定位并调优

    3、预测未来性能

      当用户数和业务量增加时能否及时应对?调整策略时增加应用服务器还是数据库服务器?还是优化代码逻辑?等等····

    二、性能术语与指标详解

    1、并发数

    在理解并发数之前,先提出3个常见的概念,分别是系统用户数、在线用户数、并发用户数;对应的解释如下:

    系统用户数:简单的说就是该系统注册的用户数,他们可以是活跃的也可以是僵尸的

    在线用户数:即登录系统的用户,但在线用户并不一定对服务器产生压力,因为有些用户什么也没干

    并发用户数:是对服务器产生压力的用户,例如:在线用户可能在600,只有20%的用户对服务器产生了压力,这20%的用户就是并发用户数

    并发的概念:一般有两种理解方式,一种为所有用户在同一时刻做同一操作,主要为验证程序或数据库对并发的处理能力;另一种为多个用户对被测系统发起多个请求,也可以是不同的操作,类似于混合场景的概念。

    2、响应时间

    有缓存情况下:开始--->客户端发起请求--->[判断存在缓存]--->读取缓存--->数据处理--->渲染元素---->结束

    没有缓存的情况下:开始--->客户端发起请求--->[判断缓存没有存在]--->【DNS域名解析获得服务器ip---链接服务器---发送请求---等待服务器响应---服务器返回数据HTML】--->数据处理--->渲染元素---->结束

    可总结为:响应时间=网络传输(请求)时间 + 服务器处理(一层多多层)时间 + 网络传输(响应)时间 + 页面前端解析渲染时间

    在实际应用过程中,需要明白响应时间的长短取决于用户的实际需求,而不是盲目设定该指标。

    3、每秒通过事物数(TPS)

    TPS是指每秒通过的事物数,直接反映系统性能的指标,该值大时,系统性能会比较好,当然每个系统都有它的上限,不可能无限大,将它与平均响应时间进行对比,可以分析事物数量对响应时间的影响。

    例如:当压力加大时,TPS曲线如果变化缓慢或有平坦的趋势,很有可能时服务器开始出现瓶颈了。如果环境没有发生变化,对于同一系统会存在一个最大处理事物能力,他并不随着

    并发用户的多少二改变。就好像地铁口检票机一样,只有两台机器,一次机器只能通过一个人,不论人数是100还是1000

    4、每秒点击数

    每秒点击数代表用户每秒向Web服务器提交的HTTP请求数。但这里需要注意的是提交一个登录请求,对于用户来说感觉是一个请求,但对于后端服务器来说也许是多个请求,所以点击一次不代表就是一个请求。例如:点击一个链接,该操作返回的页面上有6张图片,因为下载每张图片都需要一个HTTP请求,所以这个页面下载完成之后的点击数应该是7。每秒点击数从侧面可以反映客户端的状况。每秒点击数不正常,一般可能是网络问题或脚本导致的,需要进一步具体分析

    5、吞吐量

    吞吐量与吞吐率得概念

    吞吐量是指单位时间内系统处理得请求数量,直接反映服务器承受得压力,需要重点关注

    吞吐率是指用户在给定得一秒内从服务器获得的数据量,简而言之就是服务器返回的数据量

    例如:一个食品加工厂的生产效率很高,每天可以生产很多食品,但是工厂只有两辆三轮车在运输,这个时候运输食品的能力就成为了瓶颈,也就是它的吞吐量/吞吐率出现了问题

    6、思考时间

    1、思考时间就是用户进行操作时,每个请求或者操作之间的间隔时间,是为了更加真实地模拟用户的操作场景,因为在实际使用中不太可能会出现不断地发送请求,一般都是一个请求后,等待一段时间,然后发送下一个请求。恶意攻击除外。

    2、关于0思考时间,如果想了解系统的最大承受能力或极端情况下的系统的性能表现,则可以设置0思考时间。如果是预估系统的性能,就应该最大可能地模拟真实思考时间。一般都会加上思考时间,只有在分析时要去掉思考时间。

    例如:某个系统的发帖功能,连续发贴时,系统会提示两次发帖间隔时间不能小于15秒。这时如果要满足业务的特定需求就需要加上思考时间15秒

    7、资源利用率

    重点理解的几个指标

    CPU:它像人的大脑,主要进行判断和处理,能反映出系统的繁忙程度,一般分为系统CPU与用户CPU,其中系统CPU是处理系统本身所占用的资源,用户CPU则是处理程序所占的资源,对象不同。

    Load Average(平均负载):指一段时间内CPU正在处理和等待CPU处理的任务,也就是CPU使用队列的长度的统计信息。这里的平均负载值就好像地铁里等待上车的乘客,乘客越多则负载值也越大。

    Memory:他就像是人大脑中的记忆区域,将各种信息收集起来存放。数据从内存中读取要比从磁盘上读取速度快,而内存经常发生内存泄漏或内存溢出的现象,是需要重点留意的。不过这里需要注意,短时间的可用内存越来越少,不代表一定有内存泄漏或溢出。

    队列:可以理解成地铁进站的排队现象,队列长,说明处理能力达到了极限或者遇到了阻塞

    IO:与磁盘的交互,重点关注交换频率和磁盘队列长度

    网络:重点关注网络的流量,看是否存在网络带宽的瓶颈。

  • 相关阅读:
    Appium+Python之异常自动截图
    Appium+Python之测试数据与脚本分离
    web测试方法总结
    软考之高级信息系统项目管理师资料
    软考之软件设计师资料
    Fiddler用法整理
    Appscan工作原理详解
    Appium+Python之元素定位和操作
    持续集成工具——Jenkins
    接口测试工具——postman
  • 原文地址:https://www.cnblogs.com/sanya/p/12786764.html
Copyright © 2011-2022 走看看