性能测试入门

性能测试

  • 性能测试导学
    • 性能测试的定义
    • 功能测试VS性能测试
    • 判断程序性能好坏
    • 影响软件性能因素
    • 性能测试存在的意义
    • 性能测试常见术语
    • 事务响应时间【358定律】
    • 点击量/点击率
    • 吞吐量/吞吐率
    • 思考时间
    • 资源利用率

性能测试导学

性能测试是软件测试比较深层次的一类测试,想要学会性能测试,首先需要有一定的测试基础,要明白性能测试针对的是什么?原理是什么?而对于一个程序来说性能测试是为什么是必要的。

性能测试的定义

首先我们来认识一下性能测试在软件测试中的重要性,也就是定义。测试人员借助性能测试工具,模拟系统在不同环境下对应的性能指标是否达到预期指标,然后根据其产生的效果尽量排除软件在使用过程中或者程序运行时存在的潜在性问题。

一些性能问题:系统在高压环境下崩溃、软件在某些场景无法正常使用、在大量用户同时使用程序时,无法正常使用一些功能等等。

而性能测试主要发现软件性能问题,优化软件性能,从而提升用户体验。

功能测试VS性能测试

功能测试与性能测试看起来也许相关,其实也存在一些差别:

  1. 功能测试依靠人工执行,性能测试依靠工具
  2. 功能测试评价指标是由需求实现和体现的,关注每个细节功能。性能测试对功能要求高,要在功能测试正常的情况下做性能测试,然后让产品在一些极端的情况下,是否能够正常响应用户请求。

要知道,功能测试是只针对功能实现,不对其他有要求,意味着只要能够实现这个功能,可以定义为功能测试通过

判断程序性能好坏

上面我们说了,对一个程序的性能判断是非常抽象的,性能测试的指标在不同环境是有不同的预期,那么对于性能测试什么被称为好的性能测试?

性能好:

响应速度快,系统在不同环境可以正常运行。

性能不好:

响应速度慢,系统在不同环境下产生系统崩溃。

解决方法

  1. 减少并发数量

    比如在登录页面中勾选同意条款

  2. 优化软件算法

    采用效率更高,时间复杂度低的算法

  3. 提升硬件设备

    购买硬件设备,总体提高软件性能

影响软件性能因素

硬件设备:

服务器CPU利用率、内存占用率、磁盘操作频率、CPU的配置、带宽传输网络……

软件设备:

算法效率、编程语言……

用户:

访问程序的频率、用户在线数量、用户连续使用时长……

性能测试存在的意义

  • 获取性能性能的指标,作为性能指标的基准!

    例如:当一个程序在一个功能使用的时间效率低于前一个版本就代表着这个软件不符合预期

验证性能指标是否达到预期(要求):

  • 应用程序是否能满足用户需求
  • 应用程序是否能处理完用户负载后还存在盈余能力去处理其他突发事件
  • 应用程序是否能够处理当前业务需要处理的事务数量
  • 在预期和非预期的用户负载下,应用程序是否可以正常运行
  • 应用程序是否可以确保提供用户在真正使用软件时获得舒服的体验

预防突发意外解决办法:

  • 发现系统性能瓶颈问题,如内存泄漏……
  • 得到系统正常工作时能够容纳的最大用户数,然后根据这个数据对以后的升级作为对比数据。
  • 帮助系统运维部门更好的规划硬件设备

性能测试常见术语

并发:在同一时刻。系统能够同时处理多个请求或任务。

用户数:

  • 系统用户数

    ①系统注册用户

  • 在线用户数

    ②在某一个时间段中,此时登录在线的用户数量

  • 并发用户数

    ③在同一时刻中,使用了同一个功能的用户数量

    系统用户数>在线用户数>并发用户数

响应时间

性能测试入门_第1张图片

  • 用户响应时间

    ①:数据库响应时间+服务器响应时间+返回响应时间

    t1+t2+t3+t4+t5+t6+t7

  • 请求响应时间

    ②:服务器收到请求返回响应给用户的时间

    t2+t3+t4+t5+t6

影响响应时间的因素:数据库性能、网络带宽、服务器处理性能、软件算法效率、程序的逻辑、程序的编程语言。

事务响应时间【358定律】

358定律是在计算机系统中,对每一个程序而言,收到需求并返回响应需要等待的平均时间为3.58毫秒

每秒事务通过量 (sum)= 处理的事务数量/事务花费的时间

当sum越大说明这个软件性能越好

点击量/点击率

点击量无法衡量性能指标,一般是使用点击率。

每一时刻的点击率代表用户每秒向服务器发送的请求,点击并不是代表鼠标的一次点击,而是点击后产生的数据量。

吞吐量/吞吐率

用户产生一次请求,服务器返回的数据量,这个是用于判断服务器的容量,而吞吐率是每一时刻数据除以时间得到的,就像在同一单位时间可以处理的请求越多表示机器性能越好。

思考时间

用户在对软件进行操作时,两个操作中间的间隔时间,时间越短说明性能越好。

资源利用率

指一个程序在系统中运行时使用资源的情况,比如:CPU,内存,硬盘。这些硬件资源的利用率越低,说明软件性能越好。

以上的关键词也是我们需要对测试性能时关注的点,需要知道对于性能测试时,那些指标是至关重要的,也应该清楚的区分那些测试是性能测试。

你可能感兴趣的:(java,单元测试,测试工具)