带你入门软件性能测试 之 掌握性能测试流程 、性能测试指标

ananmy 2021-09-05 原文

软件性能测试流程

一、性能测试、负载测试、压力测试的概念

1.性能测试用一定的技术,使用的工具(LR、jmeter),找出验证某些性能指标的测试 —–模拟N多个usert同时在使用软件,软件的性能。手工是无法实现的,只 能通过工具。(性能测试 比 功能测试、自动化测试的时间长)

找出:在项目、接口从来没有做过性能测试时,要获取性能指标作为基准值

验证:在项目、接口之前的性能测试指标的基础上,进行对比,查看性能是优化了还是变得更差了。

 

软件性能测试:指的是通过接口,向服务器发送请求,测服务器的性能情况。

 

性能测试什么时候介入? —— 完成功能测试以后

 

2.广义软件性能测试:

  负载测试:逐步增加用户并发数,发起请求,找到系统的拐点区间

  关键字:逐步加压   (没有时间要求

       举例:系统做并发测试,60并发,ok;70并发,ok;90并发,ok;100并发的时候,系统出现异常

                 那么系统的拐点区间就是90-100之间。可以一个一个用户阶梯形式增加用户数,找到拐点,就是最大并发数。

                 用最大并发数,(去做性能测试),即就可以得出应的性能指标:响应时间、吞吐量、、、、、

 

 注意:增加用户并发数,在jmeter里面就是增加线程数 来增加压力,向服务器发起请求,找出服务器各项性能指标,找到性能指标的瓶颈范围(负载测试只能找出一个范围

 

  压力测试:通过一定的并发用户数,持续比较长的时间请求,查看服务器的稳定性

       关键字:比较大的压力+持续长的时间(X*24)

       举例:30并发持续运行X小时(以前标准:一般都是24小时的倍数;现在企业迭代速度很快,一般是小时的倍数,晚上进行测试,12小时,当然可以依据项目情 况,进行压力时间的加长)

 注意:压力测试主要是测试系统的稳定性,刚开始做压力测试,可以选取最大并发数的40%以下的并发数,运行24小时;稳定的话,可以选择最大并发数的40-50%,作为并发数,运行较长时间;验证系统的稳定性。

           所以,压力测试,一般不会去选最大并发数去运行较长时间,这个并发数,系统很容易宕机。(好比:淘宝也不是天天双11,所以稳定性测试,也是根据平时用户的访问量进行压力测试,不会用双11的最大并发数)

 

 

负载测试,压力测试、跟性能测试的区别:

性能测试:找出或者验证某个值,对应的性能指标值

负载测试:找的是并发用户数的区间范围

压力测试:不是找指标,是找稳定性

 

测试步骤:先负载测试,找出最大并发数,再进行性能,再进行压力测试。

 

企业中所说的:

压测:负载测试(得出并发区间)+性能测试(得出性能指标),最后得出性能测试报告。

性能测试:负载测试+性能测试  —>测试报告

负载测试:负载测试+性能测试  –>测试报告

生产环境,服务器不稳定,宕机时有发生,让做的压力测试:是指负载测试+性能测试+压力测试—>测试报告

 

性能测试怎么做?

   企业中真正的性能测试分三个阶段:负载测试—性能测试—(不稳定再做)压力测试

 

二、性能测试的前提

1.性能测试的必要性研究—-关键项评估

   有监管、生命财产安全、大型系统、核心系统业务、架构调整——–>项目的关键项评估出优先级

2.可测性—可以量化为性能指标值   

3.性能测试的基本原则:

  ①首先 单接口 再多接口

  ②然后,多接口构成业务/模块

  ③然后,多业务混合

  ④然后,再系统

  ⑤然后,全链路

 4.独立服务器

     性能测试有不稳定性,如果功能、性能都在一个服务器,性能测试出现宕机,功能测试就无法正常进行。

5.独立网络(有线)

    性能测试,大量数据传输会占用带宽,如果不是独立网络,占用比较高,别人就无法正常使用网络。

    如果是共享的网络,响应时间会相会影响

    wiFi、VPN等会导致网络问题→数据丢失→测试结果没有任何参考价值

 

 

性能测试的指标

1.并发 :同时向服务器发起请求

   狭义:同一时间做相同的事情

  广义:同一时间做不同的事情,混合场景

 

并发数:单位时间内向服务器发起请求的用户数 Virtual user

并发用户数:用于模拟真实用户向服务器发起请求的性能测试虚拟用户数

    –系统用户数:只要访问过系统的用户,可能含一次性访问的用户

    –在线用户数:当前正访问系统的用户,不一定有压力(只在线(挂机),不操作 /,在线并操作才是并发用户数

并发用户数,一定是在一个时间点,发起请求。

 

注意:性能测试 一定是多用户并发(单用户,反复请求,都不算性能测试),多并发可以是统一请求,也可以不同请求

 

响应时间:从发起请求到收到请求的响应时间 = t1 + t2 + t3 + t4

   —网络传输时间 t1,t4

   —服务器处理时间 t2,t3

 

性能测试中,尽可能无穷小t1+t4,即减少网络传输的时间—->有线网络,带宽越宽越好

                      t2+t3统一看成服务器的时间,反映服务器处理的能力

 

 

TPS (Transaction per second) :表示服务器每秒处理的事务数   —最主要的性能指标,是服务器的一个综合能力的体现

服务器处理事务数

qps:querys per second 每秒查询率

事务 是 包含查询的(查询数据库,查询缓存等等)

 

吞吐量: 事务/s

吞吐率:KB/s            ——吞吐量、吞吐率是衡量网络的重要指标

即网络传输的速度、速率是多少。

吞吐量 —事物数

吞吐率—数据量

 

一个事务:可以是一个接口,也可以是多个接口完成某一个功能/业务,叫做一个事务。

jmeter中默认一个接口就是一个事务,也可以定义多个接口为一个事务(一个事务控制多个接口)。

 

扩展理解:

事务/s,事务的 英文:Transaction ,Transaction/s,就是上面的TPS??怎么理解?

如果  网络没有瓶颈,每秒传输了多少数据(吞吐量: 事务/s ),服务器都能处理掉,就传递多少数据,这个时候TPS=吞吐量

 

资源利用率—靠监控

资源:cpu、内存、磁盘、i/o

 cpu,内存一般不超过XX%,

磁盘的读写

I/O 网络的IO

 

posted on
2020-09-22 17:28 
ananmy 
阅读(285
评论(0
编辑 
收藏 
举报

 

版权声明:本文为ananmy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ananmy/p/13710982.html

带你入门软件性能测试 之 掌握性能测试流程 、性能测试指标的更多相关文章

  1. 2018 学习 之 混合开发

    混合开发HybridAPP 小杂种APP,混合APP 对比现在流行的三种APP:WebAPP,NativeAP […]...

  2. SAP接口编程 之 JCo3.0系列(03) : Table参数

    Table参数作为export parameter BAPI_COMPANYCODE_GETDETAIL是一个 […]...

  3. 树莓派 之 连接显示器

    可选:HDMI输出,3.5mm视频输出,其它转接方式,以及官方显示屏 HDMI最方便,直接连接即可 用3.5m […]...

  4. asp.net core mvc 之 DynamicApi

      这段时间闲赋在家,感觉手痒,故想折腾一些东西.   由于之前移植了一个c#版本的spring cloud […]...

  5. 机器学习技法 之 深度学习(Deep Learning)

    前面学习了基础神经网络算法,可以得知神经网络基本结构中:神经元(Node)的个数,层数(Layer),以及激活 […]...

  6. java 之 观察者模式(大话设计模式)

    观察者模式,笔者以前做校验订单时用过一次,只是不知道有这个模式,当时使用观察者省略了N多if else 在笔者 […]...

  7. swupdate 之 readback handler

    背景 使用 swupdate 作为 OTA 方案 ,有项目要求在写入数据到分区之后需要再次读出校验。 初步实现 […]...

  8. [阿里DIN] 深度兴趣网络源码分析 之 整体代码结构

    Deep Interest Network(DIN)是阿里妈妈精准定向检索及基础算法团队在2017年6月提出的 […]...

随机推荐

  1. wechat4j开发-中文乱码

    微信接口返回内容的编码格式是UTF-8,中文乱码的出现是因为本地编码不是UTF-8导致的 具体解决方法如下: […]...

  2. git commit后如何取消commit

    在git使用中要如何取消commit但是还未push的操作? 通常,我们对修改的文件会先git add .,然 […]...

  3. Java-数据类型

    (1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。 (2)分类:  A:基本数据类型:4类8 […]...

  4. SQLSERVER数据库死锁与优化杂谈

    死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行;所以,即时去捕捉数据库 […]...

  5. 【Python】【微信】+操作电脑版微信

    https://www.cnblogs.com/ken-yu/p/12531168.html...

  6. Naive RNN vs LSTM vs GRU

    Naive RNN vs LSTM vs GRU 0 Recurrent Neural Network 1 N […]...

  7. ES6学习笔记(一)-变量的解构赋值

    变量的解构赋值种类 解构(Destructuring):ES6 允许按照一定模式,从数组和对象中提取值,对变量 […]...

  8. 负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两

    负载均衡在实际项目操作过程中,有硬件负载均衡和软件负载均衡两...