【性能测试一】性能测试概述

news2024/10/7 16:26:04

目录

🌟一、性能测试的基础概念

🌈1、生活中软件相关的性能问题?

🌈2、性能测试的概念

🌈3、性能测试与功能测试的区别?

🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?

🌈5、哪些因素会影响到软件的性能?

🌈6、为什么要进行性能测试?

🌟二、性能测试常见专业术语以及衡量指标(重要)

🌈1、常见专业术语

🌈2、性能测试的分类

🌈3、性能测试如何展开?


🌟一、性能测试的基础概念

🌈1、生活中软件相关的性能问题?

比如:双十一预售活动淘宝服务器崩溃;抖音崩溃。

常见的性能问题:系统内部及软件的代码实现

(1)资源泄露,包括内存泄露;

(2)CPU使用率达到100%,系统被锁定;

(3)线程死锁,阻塞等造成系统越来越慢;

(4)查询速度慢,或者列表的效率低;

(5)受外部系统影响越来越大。

🌈2、性能测试的概念

性能测试:测试人员借助性能测试工具模拟系统在不同情况下性能指标是否正常。

🌈3、性能测试与功能测试的区别?

(1)功能测试:只是是验证软件的特性是否实现;

(2)性能测试:保证在一些极其恶劣的环境下能否正常使用:比如用户人太多,流量使用大的情况下。

性能测试是在功能测试完成后执行。

🌈4、什么样的软件属于性能好?什么样的软件属于性能不好?

 

🌈5、哪些因素会影响到软件的性能?

(1)硬件方面:服务器CPU,服务器内核数量,内存,磁盘,网络带宽;

(2)软件方面:编程语言(C++,Java),算法;

(3)用户:用户数量,用户操作频率(比如1s,向服务器发送10w个HTTP请求,服务器可能会崩溃)

🌈6、为什么要进行性能测试?

(1)获取系统性能的指标,作为性能指标的基准

(2)验证系统的性能指标是否达到要求(性能需求

  • 应用程序能否能够满足系统要求中的各项性能指标
  • 应用程序是否能处理预期的用户负载并有 盈余能力;
  • 应用程序能否处理业务所需要的事务数量
  • 在预期和非预期的用户负载下,应用程序是否稳定
  • 是否能确保与用户在真正使用软件的时候获取舒服的体验。

(3)发现系统的性能瓶颈,内存泄露等问题

(4)系统正常工作的情况下的最大容量

(5)帮助系统运维部门更好的规划硬件配置


🌟二、性能测试常见专业术语以及衡量指标(重要)

🌈1、常见专业术语

(1)并发:软件在运行过程中,有大量的用户同时访问

(2)并发用户数:大量用户,请求系统,此时的用户数量就是并发用户数量。

(3)并发请求数:大量用户,请求系统,此时服务器接收的请求数量。

(4)用户数

  • 系统用户数:简单地说就是该系统的注册用户数;
  • 在线用户数:登录系统的用户数量;
  • 并发用户数:同时对系统发起请求对应的用户数量。

系统用户数>在线用户数>并发用户数(在系统限制用户登录成功才能访问系统的条件下)

(5)响应时间:越短越好

  • 用户响应时间:从N1+A1+N2+A2+N3+A3+N4的过程时间。用户从发起请求到接收到响应花费的时间。
  •  请求响应时间:服务器接收到请求到服务器发出相应的时间段:A1+N2+A2+N3+A3

 (6)事务

  • 事务:此时的事务是针对一个业务单位来定义的。
  • 事务响应时间:服务处理一个事务花费的时间。每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
  • 每秒事务通过数:TPS 是指每秒系统能够处理的事务数。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。

 (7)点击率每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。

(8)吞吐量:指一次请求,用户和服务器之间的数据传输量。直接体现软件系统的性能承载能力。

 程序1:10s处理数据10M;

 程序2: 1h处理数据100M;

不能说明程序1快。因此吞吐量并不能衡量一系列的问题。

吞吐率:size/time。数据的吞吐量/时间。

吞吐率越低表示软件性能越好,吞吐率越大证明软件性能越不好。

(9)思考时间:指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。

(10)资源利用率:不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。

🌈2、性能测试的分类

(1)基准性能测试:让系统在正常情况下运行,观察系统的性能指标是否正常。

        为什么要进行性能测试?因为要拿着前一个版本的性能指标和当前软件的性能指标进行对比。

(2)负载测试

让系统背负一定的压力,让系统运行一定时间,观察系统是否存在性能拐点。

(3)压力测试

让系统处于极限或者饱和状态,观察系统的性能指标(压力测试会将系统搞崩溃)。

(4)可靠性测试

将系统进行持续运行,观察系统性能是否出现异常。比如系统先运行1天,看有没有异常现象,再看一周观察,再看一个月,最后看一年。用4个9或者5个9来表示系统的可靠性高。

🌈3、性能测试如何展开?

(1)功能测试流程:

需求分析——>测试计划——>测试开发——>测试设计——>测试执行——>测试评估

(2)性能测试流程:

需求分析(分析的是性能需求)——>测试计划(确定一个性能测试工具)——>测试开发(性能测试脚本的编写)——>测试执行(跑脚本)——>测试评估(产生一个测试报告,将性能问题写在测试报告中,优化方案是什么)

性能测试的时候发现的问题不叫bug,叫做性能瓶颈;

性能测试的时候,开发进行的修复不叫修复,叫优化。


 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/679503.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建Vue项目以及项目的常见知识

前言:使用脚手架搭建vue项目,使用脚手架可以开发者能够开箱即用快速地进行应用开发而开发。 搭建 #创建一个基于 webpack 模板的新项目 vue init webpack my-project #选择所需要的选项如图: cd my-project npm run dev访问localhost:808…

分布式数据库架构

分布式数据库架构 1、MySQL常见架构设计 对于mysql架构,一定会使用到读写分离,在此基础上有五种常见架构设计:一主一从或多从、主主复制、级联复制、主主与级联复制结合。 1.1、主从复制 这种架构设计是使用的最多的。在读写分离的基础上…

SpringBoot源码分析(三):SpringBoot的事件分发机制

文章目录 通过源码明晰的几个问题Spring 中的事件Springboot 是怎么做到事件监听的另外两种注册的Listener 源码解析加载listenerSpringApplicationRunListenerEventPublishingRunListenerSimpleApplicationEventMulticaster判断 listener 是否可以接收事件Java 泛型获取 整体流…

【前端|HTML系列第1篇】HTML的基础介绍与初次尝试

大家好,欢迎来到前端入门系列的第一篇博客。在这个系列中,我们将一起学习前端开发的基础知识,从零开始构建网页和Web应用程序。本篇博客将为大家介绍HTML(超文本标记语言)的基础概念和标签,帮助你快速入门。…

Git进阶系列 | 6. 交互式Rebase

Git是最流行的代码版本控制系统,这一系列文章介绍了一些Git的高阶使用方式,从而帮助我们可以更好的利用Git的能力。本系列一共8篇文章,这是第6篇。原文:Interactive Rebase: Clean up your Commit History[1] 交互式Rebase是Git命…

数据结构:二叉树经典例题(单选题)-->你真的掌握二叉树了吗?(第二弹)

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关二叉树的经典例题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…

百度开源,一款强大的压测工具,可模拟几十亿并发场景

优点 性能强大统计信息详细使用场景丰富性能 HTTP 每秒新建连接数HTTP 吞吐HTTP 并发连接数UDP TX PPS测试环境配置统计数据开始使用 设置大页编译 DPDK编译 dperf绑定网卡启动 dperf server从客户端发送请求运行测试开源地址 dperf 是一款基于 DPDK 的 100Gbps 网络性能和负载…

小白快速自建博客--halo博客

小白快速自建博客–halo博客 前言:如何快速地搭建属于个人的博客,以下就推荐一个可以个性化的定制属于个人的专属博客–halo博客。 Docker安装 关于docker安装,可以查看文章:Linux下安装docker Docker相关指令 docker相关指令…

网络套接字基本概念

文章目录 1. 认识IP地址2. 认识端口号2.1 理解 "端口号" 和 "进程ID"2.2 理解源端口号和目的端口号 3. 认识TCP协议和UDP协议4. 网络字节序5. sockaddr结构 1. 认识IP地址 IP协议有两个版本,IPv4和IPv6。没有特殊说明的,默认都是指…

第五章 作业(149A)【计算机系统结构】

第五章 作业【计算机系统结构】 前言推荐第五章 作业148 补充910 最后 前言 2023-6-24 10:43:46 以下内容源自《【计算机系统结构】》 仅供学习交流使用 推荐 第三章 作业(7BF)【计算机系统结构】 答案参考: https://www.docin.com/p-8…

HTML 教程:学习如何构建网页||HTML 简介

HTML 简介 HTML 简介 现在您可以通过如下的一个 HTML 实例来建立一个简单的 HTML 页面&#xff0c;以此来简单了解一下 HTML 的结构。 HTML 实例 <!DOCTYPE html> <html> <head> <title>页面标题(w3cschool.cn)</title> </head> <…

中国电子学会2023年05月份青少年软件编程C++等级考试试卷四级真题(含答案)

1.怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗&#xff0c;专门以珠宝为目标的超级盗窃犯。而他最为突出的地方&#xff0c;就是他每次都能逃脱中村警部的重重围堵&#xff0c;而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天&#xff0c;怪盗基德像…

混频器【Multisim】【高频电子线路】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、测试输入输出波形&#xff0c;说明两者之间的关系 2、测试输出信号的频谱(傅里叶分析法) 3、将其中一个二极管反接&#xff0c;测试输出波形&#xff0c;并解释原因&#xff1b;将两个二极管全部反接&am…

PID相关参数讲解:1、比例系数Kp与静态误差

PID的结构与公式 来研究静态误差的同学&#xff0c;应该是对PID的原理有一定理解了&#xff0c;简单的概念也不用过多重复。 比例控制时PID控制中最简单的一个&#xff0c;很多能用代码编写PID代码的同学&#xff0c;也不一定理解这个比例系数Kp的意义&#xff0c;以及比例控制…

C++进阶—多态

目录 0. 前言 1. 多态的概念 1.1 概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.4 C11 override 和 final 3. 抽象类 3.1 概念 3.2 接口继承和实现继承 4.多态的原理 4.1虚函数表 4.2 变态选择题分析多态调用 4.3 多态的原理 4.4 动…

透过小说中的境界划分,看看你的能力处于哪个水平

文章目录 1. 写在前面2. 散修3. 练气期4. 筑基期5. 结丹期6. 元婴期7. 化神期8. 练虚期 1. 写在前面 当我们某天开始走出校园&#xff0c;踏入社会的时候&#xff0c;是否也会感到一丝恐惧与焦虑&#xff1f;当我们各自奔走加入到江湖大大小小的门派中&#xff0c;为了企业与老…

EL标签-给JSP减负

https://blog.csdn.net/weixin_42259823/article/details/85945149 安装使用 1. 通过命令行创建maven项目 2. 安装jstl包 <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version> </depen…

仙境传说RO:服务器外网架设登陆教程

仙境传说RO&#xff1a;服务器外网架设登陆教程 大家好我是艾西&#xff0c;今天跟大家说一下自己编译的仙境传说RO服务端怎么开启外网让小伙伴和你一起玩。 目前开放的现成端有以下版本&#xff1a; 仙境传说ro守护永恒的爱 仙境传说ro爱如初见 仙境传说ro黑色派对 仙境…

docker-compose把微服务部署到centos7

前言 这里主要记录以下微服务使用docker、docker-compose部署遇到的一些问题&#xff0c;大佬可以绕道去看看自动化集成这篇文章 部署之前你需要准备一些内容 微服务 这里feign-api是用来做服务之间相互调用的&#xff0c;单独抽离成了一个模块&#xff0c;gateway是服务网关&…

中国电子学会2023年05月份青少年软件编程C++等级考试试卷三级真题(含答案)

1.找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 【输入】 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&#xff0c;用空格分开。 【输出】 如果存在某两个元素的和为k&#xff0c…