软件测试之性能测试概述

news2024/11/17 19:40:16

1.什么是性能测试

常见软件 的性能问题

1)响应时间过长:软件在执行操作或加载数据时反应迟缓,会给用户造成困扰。响应时间过长可能是由于代码效率低下、网络延迟、资源瓶颈等原因引起的。

2)内存占用过高:过高的内存占用会导致系统变慢、卡顿甚至崩溃。这可能是由于内存泄漏、不合理的数据结构使用、缓存管理不当等引起的。

3)CPU 占用过高:高 CPU 占用可能导致电脑发热、耗电增加,并可能导致系统响应变慢。这可能是由于死循环、复杂计算、非优化的算法等原因引起的

4)并发性能问题:竞争条件、死锁、线程阻塞等问题可能导致性能下降或系统崩溃。通过合理的并发控制、锁管理和线程调度策略可以改善并发性能问题。

5)数据库性能问题:常见的数据库性能问题包括查询优化、索引设计不当、数据库连接管理不当等。通过优化查询语句、建立适当的索引和合理配置数据库参数可以改善数据库性能问题

6)网络延迟:对于涉及网络通信的软件,网络延迟可能成为性能瓶颈。网络延迟可能是由于网络拥塞、高延迟连接或服务器负载过高等原因引起的

性能测试的定义

性能测试是一种软件测试方法,旨在评估系统、应用程序或组件在不同负载条件下的性能和稳定性。它主要关注系统在压力情况下的响应时间、吞吐量、并发用户数和资源利用率等指标。

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

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

目标和关注点

  • 功能测试:关注验证系统是否按照需求规格说明书中定义的功能进行正确实现。确保系统的各项功能正常工作,包括输入、处理和输出等。
  • 性能测试:性能测试关注系统在不同负载条件下的性能和稳定性。它评估系统的响应时间、吞吐量、资源利用率等指标,以确定系统的性能瓶颈和优化潜力。

测试方法: 

  • 功能测试:通常使用黑盒测试方法,即基于需求和设计文档,通过输入预定义的数据和操作来验证系统的功能正确性。常用的功能测试方法包括边界值分析、等价类划分、错误推测等。
  • 性能测试:通常使用白盒测试方法,需要更深入地了解系统的架构和内部机制。它通过模拟不同负载、压力或并发条件,收集性能指标并分析系统行为。

执行对象:

  • 功能测试依靠人工执行
  • 性能测试依靠工具完成 

软件性能好的表现,不好的表现

快速响应、高吞吐量、低资源占用、稳定可靠、高并发支持

影响软件性能的因素

硬件:CPU利用率、内存、磁盘操作频率、CPU核心数

软件:算法、编程语言

用户:并发数,用户使用时长,用户访问频率

2.为什么要做性能测试

获取系统性能的指标,作为性能测试的基准

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

能否满足系统要求的各种性能指标

能否处理预期的用户负载并有盈余能力

能否处理业务所需要的事务数量

在预期或非预期的用户负载下,应用程序是否稳定

是否确保用户使用软件时获得舒适的体验

发现系统的性能瓶颈,是否有内存泄漏问题

系统正常工作的最大容量

帮助运维更好的规划硬件配置

3.性能测试常见术语,衡量指标

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

一般地,它主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。性能指标里包括系统各个方面的能力,如系统并发处理能力,系统响应时间,批量业务处理能力等等

并发用户数

大量的用户同时访问系统,会对系统造成压力,此时访问的用户数,就是并发用户数

并发请求:满足了大量用户同时访问的条件,此时的请求数量就是并发请求数 

对系统用户数,在线用户数,并发用户数做一个区分。

系统用户数:简单地说就是该系统的注册用户数。例如,BestTest论坛里存在6666个注册用户,他们可以是活跃的,也可以是僵尸的。

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

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

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

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

用户响应时间

从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间。

用户响应时间=N1+A1+N2+A2+N3+A3+N4

请求响应时间

服务器收到请求到发出响应的时间

请求响应时间=A1+N2+A2+N3+A3

影响响应时间的因素

数据库性能

网络带宽

服务器处理性能

软件算法,逻辑

用户设备

事务响应时间(Transaction Reponse Time)

每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。

这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。

每秒事务通过数(Transaction Per Second)

TPS=处理事务的数量/事务花费的时间

TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。

点击率(Hit Per Second)

点击率=点击量/时间

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

吞吐量(Throughput)

单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力,一般来说用Requests/second,Pages/Second,Bytes/Second,从业务的角度,也可以用访问人数/天或是处理的业务数/小时来衡量,从网络设置的的角度来说,也可以用字节数/天来衡量。

不能用来直接衡量系统的性能高低,需要搭配时间衡量

吞吐率 

吞吐率=吞吐量/时间

能衡量不同系统的性能。吞吐率 越高,性能越高

思考时间(Think Time)

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

资源利用率

不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。

4.性能测试的分类

基准性能测试

使用场景:软件刚上线时要进行性能的”摸底“测试432

系统的第一个版本,研发团队团队也不清楚系统的性能能达到怎样的水平,这时进行的性能测试,其目标是获得系统标准配置下,有关的性能指标数据,作为将来性能改善的基准,这种测试称之为“性能基准测试。性能基准测试是通过性能测试获取系统的性能指标,建立一个性能基准,作为以后性能测试的参考。系统进行性能基准测试可以在系统开发的较早的阶段发现性能问题。

负载性能测试

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

压力性能测试

经常使用的测试,让软件系统处于饱和(压力又增大了)的情况下,观察性能的指标 ,往往会将系统搞崩溃

可靠性测试

验证系统在常规负载模式下长期运行的稳定性。

在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定。与压力测试不同的是系统的负载并不是处于极限的状态下。重点是满足性能要求的情况下,系统的稳定性,比如响应时间,TPS是否稳定。需要借助测试工具进行

5.性能测试执行流程

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

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

性能测试中出现问题不叫BUG,叫性能瓶颈,开发修复过程就叫性能优化 

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

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

相关文章

6_回归算法 —欠拟合、过拟合原因及解决方法

文章目录 一、过拟合与欠拟合1 过拟合1.1 线性回归的过拟合1.2 过拟合和正则项1.2.1 带有L2正则化的线性回归—Ridge回归1.2.2 带有L1正则化的线性回归—LASSO回归1.2.3 Ridge(L2-norm)和LASSO(L1-norm)比较1.2.4 Elasitc Net 2 欠…

YOLOv7 论文学习

1. 解决了什么问题? 实时的目标检测器是计算机视觉系统的重要组成部分。目前应用在 CPU 端的实时目标检测方法大多基于 MobileNet、ShuffleNet、GhostNet,而用在 GPU 的实时目标检测方法大多基于 ResNet、DarkNet、DLA,然后使用 CSPNet 策略…

bfs算法和dfs算法

bfs:广度优先搜索,一层一层搜索 dfs:深度优先搜索,先搜索一边,如果其中某个节点不符,那么回溯上一个节点,再向另一边搜索,直到搜索完毕为止 这是我个人的理解,具体可参…

AIGC第一波裁员,揭开了AI大模型创业的裂痕

大模型开始商业化肉搏,AIGC创业走向残酷时刻。 短短一年,AIGC产业正以N倍速经历其他产业可能要走几年或十几年的波澜起伏:从现象级产品爆红出圈、产业热情全面点燃、创业融资层出不穷,到一批明星独角兽被曝身陷窘境、裁员求生&am…

28.基于注解的声明式事务

基于注解的声明式事务 准备工作 将之间的使用的数据库表t_user更改为t_user1,使用的依赖和对应的jdbc.properties不变即可 准备数据库 BookSql.sql CREATE TABLE t_book (book_id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,book_name varchar(20) DEFAULT …

【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训…

Java的0xFFFF在赋值、比较时引起的困惑

Java中的0xFFFF是整型,在赋值、比较的时候容易引起混淆,涉及到符号位、数值大小,赋值给什么类型的变量。我今天在编码的时候就遇到了一些困惑。用代码样例的形式记录下来,加深理解: package com.thb;public class Tes…

mysql null 值查询不出来问题

最新遇到mysql null 值查询的问题,当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…

将Spring Session存储到Redis中实现持久化

文章目录 Session持久化1. 添加依赖2. 配置redis连接信息3. 存储和读取session从Redis Session持久化 1. 添加依赖 在项目中添加session依赖和redis依赖&#xff0c;如下所示&#xff1a; <dependency><groupId>org.springframework.boot</groupId><art…

答粉丝问)【问题记录解决】如何重新训练已经经过p-tuning微调的模型;自然语言处理平台dialogflow 智能对话式问答应用程序 相关问题

如果有人以你不喜欢的方式对待你,那一定是你允许的,否则他只能得逞一次。——张德芬 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博主🏅 �…

字符串 (2)--- 前缀函数与 KMP 算法

/* https://www.luogu.com.cn/problem/UVA455 最小周期&#xff1a; n - pi[n -1] */ #include <iostream> #include <string> #include <vector> using namespace std; vector<int> prefix_fun(string s) { int len s.length(); /…

曲线拟合(MATLAB拟合工具箱)位置前馈量计算(压力闭环控制应用)

利用PLC进行压力闭环控制的项目背景介绍请查看下面文章链接,这里不再赘述。 信捷PLC压力闭环控制应用(C语言完整PD、PID源代码)_RXXW_Dor的博客-CSDN博客闭环控制的系列文章,可以查看PID专栏的的系列文章,链接如下:张力控制之速度闭环(速度前馈量计算)_RXXW_Dor的博客-CSD…

7.语 句

7.1 表达式和语句 ●表达式: 表达式是可以被求值的代码&#xff0c;JavaScript 引擎会将其计算出一个结果。 ●语句: 语句是一段可以执行的代码。 比如: prompt() 可以弹出一个输入框&#xff0c;还有if语句、for循环语句等等 区别: 1.表达式&#xff1a;因为表达式可被求值&…

八、Kafka时间轮与常见问题

Kafka与时间轮 Kafka中存在大量的延时操作。 1、发送消息-超时重试机制 2、ACKS 用于指定分区中必须要有多少副本收到这条消息&#xff0c;生产者才认为写入成功&#xff08;延时 等&#xff09; Kafka并没有使用JDK自带的Timer或者DelayQueue来实现延迟的功能&#xff0c;而…

Leetcode-每日一题【剑指 Offer 03. 数组中重复的数字】

题目 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1&#xff1a; 解题思…

uni-app:模态框的实现(弹窗实现)

效果图 代码 标签 <template><view><!-- 按钮用于触发模态框的显示 --><button click"showModal true">显示模态框</button><!-- 模态框组件 --><view class"modal" v-if"showModal"><view cla…

安科瑞能源物联网以能源供应、能源管理、设备管理、能耗分析的能源流向为主线-安科瑞黄安南

摘要&#xff1a;随着科学技术的发展&#xff0c;我国的物联网技术有了很大进展。为了提升电力抄表服务的稳定性&#xff0c;保障电力抄表数据的可靠性&#xff0c;本文提出并实现了基于物联网的智能电力抄表服务平台&#xff0c;结合云计算、大数据等技术&#xff0c;提供电力…

测试老鸟经验,性能测试重点17个疑难解答,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、如何理解性能测…

三层交换基础实验

要求: 1.IP地址基于192.168.1.0/24划分 2.使用OSPF 3.使用DHCP 4.全网可达 1.配置二层交换 SW 3 <Huawei>system-view [Huawei]sysname SW3 [SW3]interface GigabitEthernet 0/0/2 [SW3-GigabitEthernet0/0/2]port link-type access [SW3-GigabitEthernet0/0/2]por…

Spring5学习笔记 — IOC

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&a…