【软件测试】性能测试 | 概念 | 常见术语 | 性能指标 | 分类 | 流程

性能测试

文章目录

  • 性能测试
    • 一、什么是性能测试
            • 1.生活中遇到的软件的性能问题
            • 2.性能测试定义
            • 3.性能测试和功能测试有什么区别
            • 4.什么样的表现属于软件性能好、什么样的表现不好
            • 5.影响一个软件性能因素有哪些
    • 二、为什么进行性能测试
    • 三、性能测试的常见术语以及性能测试的衡量指标
          • 1.并发用户数
          • 2.用户数
          • 3.响应时间(RT)/平均响应时间(ART)
          • 4.事务响应时间
          • 5.每秒事务通过数量
          • 6.点击量
          • 7.点击率
          • 8.吞吐量
          • 9.吞吐率
          • 10.思考时间
          • 11.资源利用率
    • 四、性能测试分类
          • 1.基准性能测试
          • 2.负载性能测试
          • 3.压力性能测试
          • 4.可靠性测试
    • 五、性能测试执行流程

一、什么是性能测试

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

​ 我们在日程的软件使用中,可能偶而会听到各种新闻,比如某某电商平台的无法正常购买、某某视频平台无法正常播放视频,或者某个软件突然无法打开了。也就是“崩了”。这些就是我们生活中能遇到的软件性能问题。

2.性能测试定义
  • 测试人员借住性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期。
3.性能测试和功能测试有什么区别

​ 功能测试:依靠人工来执行、关心软件是否实现了需求,不关心环境,只要能正常运行即可

​ 性能测试:依靠工具来完成、软件在一些极端的情况下能否正常运行

4.什么样的表现属于软件性能好、什么样的表现不好

​ 时间的快慢

​ DAU(day active user) 日活跃用户数

​ 减少并发数、软件算法的优化、服务器升级、添加验证

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

​ 硬件:服务器CPU利用率、CPU核心数、内部、磁盘操作频率、网络带宽

​ 软件:算法、编程语言

​ 用户:用户数量、用户使用时长、用户的访频率

二、为什么进行性能测试

  • 获取系统性能的指标,作为性能指标的基准(进行摸底)

  • 验证系统的性能指标是否达到要求

    应用程序是否满足系统要求的各种性能指标

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

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

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

    能否确保用户在使用时的体验

  • 发现系统的性能瓶颈,内部泄露问题等。

  • 系统正常工作情况下的最大容量

  • 帮助系统运维部门能更好的规划硬件配置。

三、性能测试的常见术语以及性能测试的衡量指标

1.并发用户数

​ 业务层面的并发用户数:同时向服务器发送请求的用户数

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

2.用户数

​ 系统用户数:该系统的注册用户数

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

​ 并发用户数:大量的用户访问系统 ,此时访问的用户数量

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

在这里插入图片描述

​ 1.用户响应时间:N1+A1+N2+A2+N3+A3+N4

​ 2.请求响应时间:A1+N2+A2+N3+A3

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

​ 3.影响一个软件响应时间的因素有哪些

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

4.事务响应时间

​ 事务:业务上的一个独立操作

​ 美团点餐:订单->支付->权益->…

358定律 :3秒好 5秒慢 8秒坏

5.每秒事务通过数量
  • 处理的事务/事务花费的时间。
  • 每秒事务通过数量越多,说明软件的性能越好。
6.点击量

​ 用户点击的数量

7.点击率
  • 点击量/时间
  • 每秒点击数代表用户每秒向Web服务器提交的HTTP请求数
  • 这里的点击不是指鼠标,一次点击可能会有多个请求
8.吞吐量
  • 用户一次请求和服务器之间的数据交互量
9.吞吐率
  • 吞吐量/时间
  • 吞吐率越高说明软件的性能越好
10.思考时间
  • 用户在对软件进行操作的时候,每一个操作中间间隔时间
11.资源利用率
  • 不同系统资源的使用情况。包含CPU、内存、磁盘、网络等

四、性能测试分类

1.基准性能测试
  • 让系统在正常情况下运行,观察软件性能指标

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

2.负载性能测试
  • 验证软件在一定的压力情况下运行,观察性能指标是否出现了拐点
3.压力性能测试
  • 系统处于饱和的情况下,观察系统的性能指标,往往会使系统崩溃
4.可靠性测试
  • 验证系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常

五、性能测试执行流程

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

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

  • 性能测试中出现不符合预期的情况,不叫bug。而叫性能瓶颈
  • 出现性能瓶颈,开发修复的过程,叫优化
  • 性能瓶颈是一定有的,只能不断优化

基准性能测试

需求分析:摸底Page接口可以容纳的用户数量

测试计划:谁干什么活

选择性能测试工具: Loadrunner

针对需求编写脚本,进行执行。在执行的过程中观察性能指标,产出性能报告进行评估

性能测试报告

项目名称:XXX性能摸底测试

测试人员:XX

测试时间:XX

测试环境:线上环境

性能指标截图:

结论:

解决方法:

点击移步博客主页,欢迎光临~

偷cyk的图

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

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

相关文章

C++部分复习笔记下

7. C11 范围for 使用格式 vector<int> v { 1,2,3,4,5 }; for (auto e : v) {cout << e << " "; } cout << endl;底层原理&#xff0c;使用迭代器 vector<int> v { 1,2,3,4,5 }; auto it v.begin(); while (it ! v.end()) {cout…

如何在TechNow招聘顶尖AI工程师

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Spring Boot 高级配置:如何轻松定义和读取自定义配置

目录 1. 环境准备 2. 读取配置数据 2.1 使用 Value注解 2.2 Environment对象 2.3.2.3 自定义对象 这篇博客我们将深入探讨如何在Spring Boot应用中有效地定义和读取自定义配置。掌握这一技巧对于任何希望优化和维护其应用配置的开发者来说都是至关重要的。我们将从基础开始…

企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?

有企业说企业消费采购成本和员工体验的关系好比是“鱼和熊掌”&#xff0c;无法兼得&#xff1f; 要想控制好成本就一定要加强管控&#xff0c;但是加强管控以后&#xff0c;就会很难让员工获得满意的体验度。如果不加以管控&#xff0c;员工自由度增加了&#xff0c;往往就很难…

动态住宅代理IP的3个优点

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

Jenkins教程-13-参数化任务构建

上一小节我们学习了发送html邮件测试报告的方法&#xff0c;本小节我们讲解一下Jenkins参数化任务构建的方法。 很多时候我们需要根据不同的条件去执行构建&#xff0c;如自动化测试中执行test、stg、prod环境的构建&#xff0c;Jenkins是支持参数化构建的。 以下是Jenkins官…

【C语言】手撕结构体内存对齐

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 结构体对齐规则结构体大小计算 - 三步曲 结构体对齐规则 怎么计算结构体的内存大小。这就涉及到结构体内存对齐的问题。 结构体的第⼀个成员对⻬到…

【C++】多态详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 一、多态概念 二、多态的定义及实现 1. 多态的构成条件 2. 虚函数 2.1 什么是虚函数 2.2 虚函数的重写 2.3 虚函数重写的两个…

PyPDF2拆分PDF文件为单个页面

本文目录 前言一、拆分成为单页1、代码解析2、处理效果图3、完整代码二、其它知识1、enumerate是什么① 语法② 功能③ 示例④ 更改起始索引前言 感觉之前写的不是很满意,为了充分满足付费用户的权益,所以打算把PyPDF2的各种类和用法都重新写一下,以便满足所有订阅用户的各…

transformer模型学习路线_transformer训练用的模型

Transformer学习路线 完全不懂transformer&#xff0c;最近小白来入门一下&#xff0c;下面就是本菜鸟学习路线。Transformer和CNN是两个分支&#xff01;&#xff01;因此要分开学习 Transformer是一个Seq2seq模型&#xff0c;而Seq2seq模型用到了self-attention机制&#xf…

三分钟看懂SMD封装与COB封装的差异

全彩LED显示屏领域中&#xff0c;COB封装于SMD封装是比较常见的两种封装方式&#xff0c;SMD封装产品主要有常规小间距以及室内、户外型产品&#xff0c;COB封装产品主要集中在小间距以及微间距系列产品中&#xff0c;今天跟随COB显示屏厂家中品瑞一起快速看懂SMD封装与COB封装…

使用高斯混合模型识别餐厅热点

使用 GMM 识别加拿大多伦多的直观餐厅集群&#xff08;附 Python 代码&#xff09; 聚类算法&#xff08;例如 GMM&#xff09;是一种有用的工具&#xff0c;可帮助识别数据中的模式。它们使我们能够识别数据集中的子组&#xff0c;从而提高你的理解或增强预测模型。在本文中&a…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础&#xff0c;在学习DDR3之前&#xff0c;我们先来学习一下SDRAM的相关知识。 1 SDRAM …

同样的APP为何在Android 8以后网络感觉变卡?

前言 在无线网络技术不断发展的今天&#xff0c;Wi-Fi已经成为了我们日常生活中不可或缺的一部分。无论是家庭娱乐、办公还是在线游戏&#xff0c;Wi-Fi都在提供着便捷的互联网接入服务。然而&#xff0c;在安卓8.1后&#xff0c;为了进一步延长安卓设备的待机时间。原生安卓(A…

推荐三款常用接口测试工具!

接口测试是软件开发中至关重要的一环&#xff0c;通过对应用程序接口进行测试&#xff0c;可以验证其功能、性能和稳定性。随着互联网和移动应用的快速发展&#xff0c;接口测试变得越来越重要。为了提高测试效率和质量&#xff0c;开发人员和测试人员需要使用专业的接口测试工…

【SCAU操作系统】期末复习简答及计算题例题解析

目录 一、写出下列英文缩写词在计算机系统中的英文或中文全名。 二、进程状态/调度/周转问题 &#xff08;1&#xff09;进程状态 &#xff08;2&#xff09;进程状态转换 &#xff08;3&#xff09;进程调度 &#xff08;4&#xff09;最短进程优先调度算法 三、逻辑地…

鸿蒙开发设备管理:【@ohos.runningLock (Runninglock锁)】

Runninglock锁 该模块主要提供Runninglock锁相关操作的接口&#xff0c;包括创建、查询、持锁、释放锁等操作。 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import runningLock f…

经典资料分享:macOS设计指南(持续更新)

​MacOS设计指南是Mac应用设计必备的指导手册&#xff0c;学姐特提示完整指南文档给大家&#xff0c;原版中英文对照&#xff0c;实用方便查询。 因为文档内容太多&#xff0c;在后继的几个月会持续更新。本周更新内容为&#xff1a; 『MacOS设计指南-应用程序架构篇』 指南内容…

Vuex的基本使用

1.安装vuex npm i vuex3 2.引入 import Vuex from vuex 3.使用 Vue.use(Vuex) 4.在src下的目录创建store&#xff0c;新建index.js import store from ./store 5.编写index.js import Vue from vue import Vuex from vuex Vue.use(Vuex)//用于操作组件中的动作 const actions{a…

零知识学习之DPDK与RDMA(3)—— 认识DPDK(3)

接前一篇文章&#xff1a;零知识学习之DPDK与RDMA&#xff08;2&#xff09;—— 认识DPDK&#xff08;2&#xff09; 本文内容参考&#xff1a; 《Linux高性能网络详解 从DPDK、RDMA到XDP》 刘伟著 人民邮电出版社 https://blog.51cto.com/u_15301988/5181201 特此致谢&…