常见的软件系统性能测试指标

常见的软件系统性能测试指标

衡量一个软件系统性能的好坏,在性能测试中会使用一些性能指标来进行分析和描述,以下是一些最常用的性能指标。

1.2.1  响应时间

请求或者某个操作从发出的时间到收到服务器响应的时间的差值就是响应时间。在性能测试中,一般统计的是事务处理的响应时间。

图1-2-1是一次标准HTTP请求可能经过的处理路径和节点,那么响应时间的计算方式就是所有路径消耗的时间和每个服务器节点处理时间的累加,通常是网络时间+应用程序的处理时间。

1.2.2  TPS/QPS

事务是自定义的某个操作或者一组操作的集合。例如在一个系统的登录页面,输入用户名和密码,从单击“登录”按钮开始到登录完成跳转到页面,并且新的页面完全加载完成,这一个操作我们就可以定义为一个事务。

TPS是Transaction Per Second的缩写,即系统每秒能够处理的交易和事务的数量,一般统计的是每秒处理的事务数。

QPS是每秒查询率(Query Per Second)的缩写,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

1.2.3  并发用户

在真实的用户操作中,用户的每个相邻操作之间都会有一定的间隔时间(在性能测试中,我们称为用户思考时间),所以,并发用户一般有绝对并发和相对并发之分,绝对并发是指某个时间点同时一起向服务器发出请求的并发用户数,相对并发是指一段时间内向服务器发出请求的并发用户总数。单就性能指标而言,系统的并发用户数是指系统可以同时承载的、正常使用系统功能的用户总数量。

针对并发用户我们举例说明。在京东购物网站上购买一件商品的流程包括登录,浏览商品,把商品加入购物车,去购物车结算,确认商品清单,确认收货地址信息,最后提交订单去支付。如果200人同时按照这个流程购买一件商品,因为每个人购买商品的步骤有快有慢,所以在同一时间点向服务器发出请求的用户肯定不会有200人,会远远小于200人。如果我们假设为20人,那么上面说的200个用户就是相对并发用户数,而20个用户就是绝对并发用户数。

1.2.4  PV/UV

PV(Page View的简写)即页面的浏览量或者点击量。用户每次对系统或者网站中任何页面的访问均会被记录一次,用户如果对同一页面进行多次访问,那么访问量会进行累加。PV一般是衡量电子商务网站性能容量的重要指标。PV的统计可以分为全天PV、每个小时的PV以及峰值PV(高峰1小时的PV)。

UV(Unique Visitor的简写)指系统的独立访客。访问系统网站的一台电脑客户端会称为一个访客,每天00:00点到次日00:00点内相同的客户端只能被计算一次。同样UV的统计也可以分为全天UV、每个小时的UV以及峰值UV(高峰1小时的UV)。

PV和UV通常是衡量Web网站的两个非常重要的指标,PV/s一般是由TPS通过一定的模型转化为PV的,比如如果把每一个完整的页面都定义为一个事务,那么TPS就可以等同于PV/s。PV和UV之间一般存在一个比例,PV/UV可以理解为每个用户平均浏览访问的页面数,这个比值在不同的时间点会有所波动,比如双11电商大促销时,PV/UV的比重会比平时高很多。

1.2.5  点击率

每秒的页面点击数我们称为点击率(也就是通常说的hit),该性能指标反映了客户端每秒向服务端提交的请求数。通常一个hit对应了一次HTTP请求,在性能测试中,我们一般不发起静态请求(指的是对静态资源的请求,比如JS、CSS、图片文件等),所以hit通常是指的动态请求。在性能测试中,我们之所以不发起静态请求是因为静态请求一般是可以走缓存,比如CDN等,很多静态请求一般都不需要经过应用服务器的处理,要么直接走CDN缓存,要么直接请求到Web服务器就被处理完成了。

1.2.6  吞吐量

吞吐量是指系统在单位时间内处理客户端请求的数量。从不同的角度看,吞吐量的计算方式可以不一样。

  1. 从业务角度:吞吐量可以用请求数/s、页面数/s等来进行衡量计算。
  2. 从网络角度:吞吐量可以用字节/s来进行衡量计算。
  3. 从应用角度:吞吐量指标反映的是服务器承受的压力,即系统的负载能力。

一个系统的吞吐量一般与一个请求处理对CPU的消耗、带宽的消耗、IO和内存资源的消耗情况等紧密相连。

1.2.7  资源开销

每个请求或者事务对系统资源的消耗,用来衡量请求或者事务对资源的消耗程度,例如对CPU的消耗可以用占用CPU的秒数或者核数来衡量,对内存的消耗可以用内存使用率来衡量,对IO的消耗可以用每秒读写磁盘的字节数来衡量。在性能测试中,资源的开销是一个可以量化的概念,资源的开销情况对性能指标有着重要的影响,我们一般做性能优化时,都是尽可能让每一个请求或者事务对系统资源的消耗减少到最小。

本文节选自《软件性能测试、分析与调优实践之路(第2版)》,获作者和出版社授权发布。

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

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

相关文章

微信小程序--开启下拉刷新页面

1、下拉刷新获取数据enablePullDownRefresh 开启下拉刷新: enablePullDownRefreshbooleanfalse是否开启当前页面下拉刷新 案例: 下拉刷新,获取新的列表数据,其实就是进行一次新的网络请求: 第一步:在.json文件中开…

AI程序员Devin会在6个方面影响人类程序员

讲动人的故事,写懂人的代码 初创公司Cognition最近所发布的世界上首个AI程序员Devin,让人类程序员百感交集。因为Devin能自动干下面的事情: 自己学习不熟悉的技术; 端到端地自己搭建和部署应用程序; 自己找出并修复…

如何根据主机监听端口号查找到对应docker容器

如何根据主机监听端口号查找到对应docker容器 问题描述 使用了一个端口是31883,这是个mq的端口号,但是怎么都找不到是哪个docker容器启用的 问题尝试解决 使用命令lsof -i:31883 如图 然后接着使用 ps -ef|grep 1128796,如图根本查不出来任…

扩展资料主机名到IP地址的有两种方式:DNS

中国联通的DNS地址有两种。 主 DNS 为“210.21.4.130”,备用 DNS 为“221.5.88.88”。 每个 IP 地址可以有一个主机名。 主机名由一串或多串字符组成。 用小数点分隔字符串。 对于中国联通宽带用户,主DNS设置为:210.21.4.130,备用…

c++ 面试100个题目中的编程题目

88、下列程序的运行结果是? #include <stdlib.h> #include <stdio.h> #include <string.h> #include <iostream> const char* str = "vermeer"; using namespace std; int main(){ const char* pstr = str;cout << "The add…

Devin横空出世,历史第一位人工智能软件工程师

大男主爽文的一刻&#xff0c;AI领域最近横空出世的Devin问世&#xff0c;可谓一石激起千层浪&#xff0c;让我们看这个创造出AI软件工程师的产品公司背景如何 2024年3月13日&#xff0c;Cognition AI在 X 上推出了全球首个AI软件工程师Devin&#xff0c;请记住这个名字。它在英…

光伏行业如何起步?光伏业务管理软件是重点!

随着全球对可再生能源的需求日益增强&#xff0c;光伏行业作为其中的佼佼者&#xff0c;正迎来前所未有的发展机遇。然而&#xff0c;如何在这一领域成功起步&#xff0c;却是许多企业和个人面临的挑战。在这个过程中&#xff0c;光伏业务管理软件的重要性不容忽视。 光伏行业的…

HarmonyOS NEXT应用开发—使用弹簧曲线实现抖动动画及手机振动效果案例

介绍 本示例介绍使用vibrator.startVibration方法实现手机振动效果&#xff0c;用animateTo显示动画实现点击后的抖动动画。 效果图预览 使用说明 加载完成后显示登录界面&#xff0c;未勾选协议时点击一键登录按钮会触发手机振动效果和提示文本的抖动动画。 实现思路 创建…

计算机组成原理练习-计算机工作过程

高级语言与机器语言之间的转换 ------------------------------------------------------------------------------------------------------------------------------- 1.将高级语言源程序转换为机器级目标代码文件的程序是&#xff08;&#xff09;。 A.汇编程序 …

【HyperLips:】数字人——控制嘴唇 项目源码python实现

最近受到商汤“复活”汤晓鸥的视频刺激&#xff0c;大大的amazing&#xff01;没看过的小伙伴可以自行百度&#xff0c;看了不研究一下【数字人】技术&#xff0c;都要跟时代脱轨了&#xff0c;那就以HyperLips为开篇吧。 目录 &#x1f34e;&#x1f34e;1.摘要 &#x1f3…

浅谈C/C++的new和delete以及对象池的实现

今天我们来谈谈C中的new和delete&#x1f60a;&#x1f60a;&#x1f60a;。在软件开发中,常常需要动态地分配和撤销内存空间&#xff0c;C语言中利用库函数malloc和free分配和撤销内存空间的。而在C中则是 new和delete malloc函数时必须指定需要开辟的内存空间的大小&#xf…

【vue baidu-map】实现百度地图展示基地,鼠标悬浮标注点展示详细信息

实现效果如下&#xff1a; 自用代码记录 <template><div class"map" style"position: relative;"><baidu-mapid"bjmap":scroll-wheel-zoom"true":auto-resize"true"ready"handler"><bm-mar…

为何虎茅掌柜 短短6个月会员近百万 月销售额破亿!

大家好 我是吴军 一家软件开发公司的产品经理 今天我们来分析一下&#xff0c;一个卖酒的模式 为什么这家平台短短6个月&#xff0c;发展百万名用户&#xff0c;月销售额破亿! 虎茅掌柜&#xff0c;切记这个虎茅和茅台的那个没有任何关系 虎茅掌柜 虎茅掌柜实质上是一种…

Spring Bean的生命周期流程

前言 Java 中的公共类称之为Java Bean&#xff0c;而 Spring 中的 Bean 指的是将对象的生命周期&#xff0c;交给Spring IoC 容器来管理的对象。所以 Spring 中的 Bean 对象在使用时&#xff0c;无需通过 new 来创建对象&#xff0c;只需要通过 DI&#xff08;依赖注入&#x…

2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 七鳃鳗的性别比例变化对生态系统稳定性的影响(四)

审题 第三问要我们评估七鳃鳗的性别比例变化对生态系统稳定性的影响。 这里我们就要去查一下生态系统稳定性的定义。 通过查资料我们知道&#xff0c;生态系统稳定性包括生态系统的抵抗力和恢复力。 OK&#xff0c;到这里问题就变成了&#xff0c;七鳃鳗的性别比例对生态系…

漏洞复现-H3C系列

漏洞复现-H3C H3C 用户自助服务平台远程命令执行漏洞H3C堡垒机H3C防火墙 admin/adminH3C root/h3c123.com【漏洞复现】华三用户自助服务产品dynamiccontent.properties.xhtml接口处存在RCE漏洞H3C交换机H3C cas_cvm_upload-RCE (默认写入冰蝎4.0. 3aes)H3C CVM任意文件上传漏洞…

Java 根据IP获取IP地址信息(离线)

<!-- https://mvnrepository.com/artifact/org.lionsoul/ip2region --><dependency><groupId>org.lionsoul</groupId><artifactId>ip2region</artifactId><version>2.7.0</version></dependency> 地址&#xff1a;http…

【计算机网络】1.5 分组交换网中的时延、丢包和吞吐量

A.分组交换网中的时延 当分组从一个节点沿着路径到后一节点时&#xff0c;该分组在沿途的各个节点经受了几种不同类型的时延。 时延的类型 处理时延 - d n o d a l d_{nodal} dnodal​ 处理时延包括以下部分—— a. 检查分组首部 b. 决定分组导向 排队时延 - d p r o c d_{…

算法基础杂项

目录 1算法最优解 2.时间复杂度排序 3.对数器 1算法最优解 1.首先&#xff0c;保证时间复杂度最低 2.其次&#xff0c;保证空间复杂度最低 3.常数项低不低&#xff0c;一般没人管 2.时间复杂度排序 3.对数器 import java.util.Arrays;public class Test {public static …

Elasticsearch使用Kibana进行基础操作

一、Restful接口 Elasticsearch通过RESTful接口提供与其进行交互的方式。在ES中&#xff0c;提供了功能丰富的RESTful API的操作&#xff0c;包括CRUD、创建索引、删除索引等操作。你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上&#xff0c;你甚至可以使用 curl …