测试|性能测试相关理论

测试|性能测试相关理论(了解)

文章目录

  • 测试|性能测试相关理论(了解)
    • 1.什么是性能测试
      • 生活中遇到的软件性能问题:
      • 性能测试定义:
      • 性能测试和功能测试有什么区别:
      • 性能好坏的评价指标
      • 影响一个软件性能因素有哪些
    • 2.为什么要做性能测试(了解)
    • 3.性能测试的常见术语及性能测试衡量指标☆☆☆☆☆
      • 并发用户数
      • 响应时间/平均响应时间(RT /ART)
      • 事务响应时间&每秒事务通过数
      • 点击率&吞吐量&资源利用率
      • 思考时间
    • 4.性能测试分类☆☆☆(会区分即可)
      • 1.基准性能测试
      • 2.负载性能测试
      • 3.压力性能测试
      • 4.可靠性测试
    • 5.性能测试执行流程
    • 6.如何确定性能测试的需求(了解)

1.什么是性能测试

生活中遇到的软件性能问题:

软件崩了eg.淘宝崩了,抖音崩了【服务器崩了】

性能测试定义:

测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期。

性能测试和功能测试有什么区别:

对于一个产品,我们一般考虑它的功能,界面,易用,兼容,性能,安全,网络,中断几个维度,其中功能和界面相关我们一般使用手工测试,也可以使用自动化测试,而性能测试一般是使用工具完成。

自动化测试(UI自动化测试,接口自动化,单元自动化)一般都是指功能的自动化测试。

  • 功能测试依靠人工执行,而性能测试依靠工具完成
  • 功能测试不管在什么场景下,只要能够正常运行即可,而性能测试需要软件在一些极端的情况下也能够正常运行

性能好坏的评价指标

  • 系统/事务的平均响应时间
  • 事务处理效率TPS(transaction per second)
  • 吞吐率
  • 每秒点击次数
  • 服务器资源占用情况,内存和CPU使用率
  • 软硬件配置是否合适

DAU:day active user,日活跃用户数

12306(并发量太大):减少并发数,软件算法优化,服务器升级

影响一个软件性能因素有哪些

  1. 硬件:服务器CPU利用率,CPU核心数,内存,磁盘操作频率,
  2. 软件:算法,编程语言
  3. 用户:用户数量,用户使用时长,用户访问频率

2.为什么要做性能测试(了解)

  1. 系统正常工作的情况下最大容量
  2. 发现系统的性能瓶颈,内存泄漏等问题
  3. 帮助运维部门能更好的规划硬件配置
  4. 验证系统性能指标是否达到要求
    • 应用程序是否能满足系统要求的各种性能指标
    • 应用程序是否能处理预期的用户负载并有盈余能力
    • 应用程序是否能处理业务所需要的事务数量
    • 在预期和非预期用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验

3.性能测试的常见术语及性能测试衡量指标☆☆☆☆☆

性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备 。

并发用户数

并发用户数&在线用户数&系统用户数区别:

系统用户数:即系统注册用户数。可以是活跃用户也可以是僵尸用户数

在线用户数:成功登录系统的用户数

并发用户数:大量用户访问系统,区分业务层面和后端服务器层间

业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量

一般来说,一个业务的完成可能会向服务器发送好几个请求

并发用户数即大量用户同时访问系统。并发用户对系统造成压力。

响应时间/平均响应时间(RT /ART)

rt:response time art:average response time

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wY0yO1eT-1690898710795)(https://ts1.cn.mm.bing.net/th/id/R-C.f672e6c2dc6a827823fe5c9d2f011b65?rik=YYsSU9746pSCNw&riu=http%3a%2f%2fimg2.sycdn.imooc.com%2f5aceffc10001f67206490188.jpg&ehk=rc7NwnfFdvDa6o9rBmK8gYeD6MlVx0%2bdZV9dnop1gi8%3d&risl=&pid=ImgRaw&r=0)]

1.用户响应时间(前端性能评估)

N1+A1+N2+A2+A3+N3+N4

即应用系统从发起请求开始,到客户端接收完所有字节数据,并渲染前端页面所耗费的时间

2.请求响应时间(服务器端性能评估)

A1+N2+A2+A3+N3

即web服务器,应用服务器,数据库服务器等各种服务器之间通信和处理请求的时间。

3.影响软件响应时间因素

  • 数据库性能
  • 网络带宽
  • 服务器处理性能
  • 软件算法
  • 用户设备

事务响应时间&每秒事务通过数

358定律:

每秒事务通过数:每秒系统能够处理的事务数

点击率&吞吐量&资源利用率

点击率:Hit Per Second ,用户每秒向web服务器提交的HTTP请求数点击率越大,服务器压力越大。(不是点击量)

注:这里的点击不是鼠标的一次点击,一次点击可能有多次HTTP请求。

吞吐量:Throughput ,用户一次请求和服务器之间的数据交互量(network size)

资源利用率:cpu、内存、硬盘、网络等不同系统资源的使用情况。

思考时间

思考时间:用户在进行操作时,每个请求之间的间隔时间

4.性能测试分类☆☆☆(会区分即可)

以下为常见性能测试

1.基准性能测试

即让系统在正常情况下运行观察软件性能指标

应用场景:软件刚上线时进行性能摸底

2.负载性能测试

即验证软件在一定压力情况下运行,观察性能指标是否出现了拐点

3.压力性能测试

即系统处于饱和情况下,观察系统性能指标。

往往会把系统搞崩溃。

4.可靠性测试

验证系统在一个持续时间段内运行,观察系统各项性能指标是否正常。(4个9,5个9)

(通常会使用工具)在一定压力下。

持续1天—>持续运行1周—>持续运行1个月—>一个季度—>1年

若崩溃了,会不会影响后边的业务。

5.性能测试执行流程

功能测试执行流程:需求分析–>测试计划–>测试设计–>测试执行–>测试评估(测试报告)–>上线

性能测试执行流程:需求分析–>测试计划–>选择一款性能测试工具–>性能测试脚本编写–>产出一个性能测试报告

性能测试中出现了不符合预期的情况,不叫它bug,叫性能瓶颈

性能测试中,出现性能瓶颈,开发修复的过程,叫优化
性能测试是在功能测试完全通过的前提下进行的。

6.如何确定性能测试的需求(了解)

1.关键性能指标分析

需要明确而量化的性能指标,只有这样才具备可测试性,可验证性。

一组清晰定义的预期性能指标量,是性能测试的基本要素。

如果是一个全新的应用系统,无法确定具体的性能指标怎么办?
(1)可以通过“基时准测试”,获取性能指标数据 (2)从业务,用户体验,竞品的的性能指标信息来定义性能指标的数据 。

2.关键业务分析

如果在某一些业务功能上不出现性能问题,那么系统就不会出现性能问题,而
这些业务功能就是系统性能测试的关键业务所在。 根据帕雷托法则(pareto Principle),系统中各个功能的使用频率是不相同的,有20%的功能是常用的
功能,用户80%以上的时间都在使用这些功能,这些功能就是性能测试当中我们测试人员需要关注的。

所以,要确定性能测试的关键业务要从业务功能的使用频率,功能的计算量和资源的消耗程度来决定,确定好关键业务之后,我们在进行性能测试的时候只要对关键的业务进行测试用例的设计系统的性能测试脚本就会基于这些关键的业务进行开发 。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis安装部署(基于windows平台)

redis简介 键值对存储数据库是NoSQL数据库的一种类型,也是最简单的NoSQL数据库。顾名思义,键值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有Redis、Tokyo Cabinet/Tyrant、Voldemort以及Oracle BDB数据库。 Remote Diction…

一起学算法(二维数组篇)

1.概念定义 1.矩阵的定义 矩阵A(nm)的定义时按照长方形排列的复数或实数集合,其中n代表的是行数,m代表的是列数。如下所示,代表的是一个4x3的矩阵 在Java中,我们可以用A[n][m]来代表一个n*m的矩阵,其中A[i][j]代表的是…

2023年的深度学习入门指南(23) - ChatGLM2

2023年的深度学习入门指南(23) - ChatGLM2 在《在你的电脑上运行大模型》这一节,我们曾经介绍过ChatGLM模型,它是当时最好的中文大模型之一。现在,它又更新到了第二代,即ChatGLM2。 当时,我们的技术储备还不足&#…

upload-labs详解------持续更新

目录 注: 搭建: pass-01(前端绕过) pass-02(后缀绕过) pass-03(黑名单绕过) pass-04(Apache解析漏洞\.htaccess文件绕过) 注: 本项目提供的…

Halcon学习之一维测量实战之测量矩形(一)

一、采集图像 (1)测量充电器 测量充电器的引脚,然后每次旋转充电器,让测量矩形都跟着它转,这就是定位+测量, (2)测量钥匙 (3)测量瓶盖 我们后面还会涉及到拟合的问

【Python】Web学习笔记_flask(1)——模拟登录

安装flask pip3 install flask 第一部分内容&#xff1a; 1、主页面输出hello world 2、根据不同用户名参数输出用户信息 3、模拟登录 from flask import Flask,url_for,redirectappFlask(__name__)app.route(/) def index():return hello worldapp.route(/user/<uname…

IDEA中连接虚拟机 管理Docker

IDEA中连接虚拟机 管理Docker &#x1f4d4; 千寻简笔记介绍 千寻简笔记已开源&#xff0c;Gitee与GitHub搜索chihiro-notes&#xff0c;包含笔记源文件.md&#xff0c;以及PDF版本方便阅读&#xff0c;且是用了精美主题&#xff0c;阅读体验更佳&#xff0c;如果文章对你有帮…

阻塞队列BlockingQueue详解

一、阻塞队列介绍 1、队列 队列入队从队首开始添加&#xff0c;直至队尾&#xff1b;出队从队首出队&#xff0c;直至队尾&#xff0c;所以入队和出队的顺序是一样的 Queue接口 add(E) &#xff1a;在指定队列容量条件下添加元素&#xff0c;若成功返回true&#xff0c;若当前…

Flask简介与基础入门

一、了解框架 Flask作为Web框架&#xff0c;它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的&#xff0c;是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序…

webScoket

webScoket是什么&#xff1f; 支持端对端通讯可以由客户端发起&#xff0c;也可以有服务端发起用于消息通知、直播间讨论区、聊天室、协同编辑等 做一个简单的webScoket 客户端配置&#xff1a; 1、新建一个页面叫web-scoket.html <!DOCTYPE html> <html lang"…

【CSS】ios上fixed固定定位的input输入框兼容问题

需求 &#xff1a; 实现一个简单的需求&#xff0c;上方是搜索框并且固定顶部&#xff0c;下方是滚动的内容list 问题 : 若如图上方使用固定定位, 下方用scroll-view, 在安卓上是没有问题的, 但是发现ios上会出现兼容问题 : 问题1: 当content list滚动到中间时再去搜索, 展…

maven引入本地jar包的简单方式【IDEA】【SpringBoot】

前言 想必点进来看这篇文章的各位&#xff0c;都是已经习惯了Maven从中央仓库或者阿里仓库直接拉取jar包进行使用。我也是&#x1f921;&#x1f921;。 前两天遇到一个工作场景&#xff0c;对接三方平台&#xff0c;结果对方就是提供的一个jar包下载链接&#xff0c;可给我整…

明明已经安装字体,但IDEA、CLION无法找到思源黑体/Source Hans Sans的问题解决

IDEA、CLION的Jetbrain系列软件不支持非TrueType的中文字体&#xff0c;而Adobe官方给出的字体却不是TrueType的&#xff0c;所以便会导致Jetbrain系软件无法找到已安装的中文字体&#xff0c;因此我们需要安装TrueType的字体 请在以下Github链接中下载&#xff1a; TrueType思…

java实现钉钉群机器人@机器人获取信息后,机器人回复

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…

使用Three.js创建旋转的立方体

使用Three.js创建旋转的立方体 在本篇技术博客中&#xff0c;我们将介绍如何使用Three.js创建一个简单的场景&#xff0c;其中包含一个旋转的立方体。我们将学习如何设置场景、摄像机、立方体和渲染器&#xff0c;以及如何使用OrbitControls和gsap库来实现立方体的旋转动画和交…

基于Spring Boot的美食分享网站设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的美食分享网站设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java springboot…

HawkEye设备智能维保平台:助力制药行业设备管理实现数字化转型

随着科技的不断进步和市场竞争的日益激烈&#xff0c;制药行业的设备管理的数字化转型已经成为一个不可逆转的趋势。尤其是在疫情时代&#xff0c;制药企业肩负着重大的社会责任&#xff0c;致使其设备管理的数字化转型之路迫在眉睫。 设备管理的数字化不仅可以提高企业的生产效…

iOS开发-实现热门话题标签tag显示控件

iOS开发-实现热门话题标签tag显示控件 话题标签tag显示非常常见&#xff0c;如选择你的兴趣&#xff0c;选择关注的群&#xff0c;超话&#xff0c;话题等等。 一、效果图 二、实现代码 由于显示的是在列表中&#xff0c;这里整体控件是放在UITableViewCell中的。 2.1 标签…

leetcode 135. 分发糖果

2023.8.1 这道题只从前向后遍历会出各种问题&#xff0c;所以最后决定向前向后各遍历一次。 先定义一个饼干数组biscuits&#xff0c;记录每个孩子的饼干数量&#xff0c;初始化每个孩子饼干数量为1。 然后从前向后遍历、从后向前遍历&#xff0c;使其满足“相邻两孩子评分更高…

【CSS】视频文字特效

效果展示 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"container"&g…
最新文章