软件性能测试——负载测试的最佳实践

article/2025/9/12 14:35:05

在这里插入图片描述
在这里插入图片描述

性能测试中最容易被误解的部分之一就是负载测试。大多数人认为所有性能测试就是负载测试,但这是不准确的。有许多类型的测试组成性能测试。在进行负载测试之前要考虑的问题之前,让我们仔细研究一下负载测试的基本信息。

负载测试是性能测试的子集。比如说性能测试相当于Microsoft Office,而负载测试就是Word。Word只是Office的一个组成部分。Word与Excel一起被大量使用。它们可能是Office使用最频繁的两个组件。

以下是准备进行负载测试时要考虑的N种策略。

针对正确的测试量

首先,不要在没有实际需要的情况下进行大规模测试。无需向软件施加超出实际预期的压力。

当然产生环境比预期拥有更高的流量负载始终是一件好事,但要保持现实和高效,应该专注于评估应用程序在生产中将遇到的正确工作负载。

以方便取决于周期性性事件,网站或APP可能会在一个以上高峰或高峰负载时间内遇到流量峰值。但是建议在着重负载测试之前首先通过模拟或者监控正常一天的吞吐量来开始负载测试。

这里的关键词是吞吐量,这是另一个经常被误解的性能测试。系统吞吐量是指系统在单位时间内所处理的信息量,它以每小时或每天所处理的进程数来度量。

提出工作负载事务测试配置时,请考虑以下事项:

平均而言,一个典型的小时内执行多少次操作。高峰期呢?

该测试的目的是什么?

您的服务器或数据库活动规律通常是什么样的?

在选择要模拟的任务时,是否专注于对业务最大风险的任务?

将跟踪或需要哪些具体指标?

花一些时间正确执行此步骤,因为它是创建适当的负载测试的基础。

负载生成器

确保负载生成器准备好承受工作量。负载生成器就是运行虚拟用户测试的计算机。虚拟用户可以采用脚本或者应用软件,其行为与真实用户同时向被测应用程序和系统发出请求时的行为一样。

这里有一些要考虑的事情:

从计算机中暂停不需要的任何软件。

确认已连接到网络并具有足够的网络带宽等。

如果要运行许多虚拟用户,则需要许多负载生成器。

了解所有这些都是很重要的,因为如果过度利用负载生成器本身,则始终存在风险,可能会导致测试结果的不可靠。

编写脚本

仅创建一个模拟实际场景的测试是不够的,还需要确保脚本不会使测试工具本身过载。

确保已针对测试方案优化了设置、时间、运行时间、选择监视器和记录的信息量等,这些因素在负载测试过程中至关重要。

考虑需要参数化的任何硬编码或动态数据,排除由于脚本编写不当而导致生成无效的测试的代码。确保生成正确数量的数据,并按照测试计划执行测试方案。

用户思考时间

思考时间是脚本逻辑的重要组成部分。所有工具都应具有通过指定希望虚拟用户等待多少秒来增加思考时间的逻辑。

思考时间对于根据虚拟用户的实际行为模仿正确的工作负载很有用。不能正确利用思考时间是另一个常见的性能测试错误。

人们要么忘记添加它们,要么设置花费花费几毫秒。负载测试确实需要创建一个实际的测试方案,以模拟真实用户将如何与软件进行交互。查看一下该工具,然后问确认:在此页面上做出决定需要多加?执行相关操作需要多久?

加速和减速时间

对于一个应用程序来说,要让这么多虚拟用户同时登录和注销,这是不符合真实场景的。

如果有能力延长加减速时间,建议必需可以这样做。在进行负载测试时,最好有一个加速时间,因为这需要一些时间才能使测试达到稳定状态,这有点类似于JMeter中的Ramp-up。响应时间和其他测量仅应在加速结束和减速开始之间之间进行统计数据。

监控和诊断

进行大型负载测试时,肯定需要考虑监视和诊断。

在正常测试期间捕获的诊断信息意味着将捕获大量数据。但是,对于具有许多虚拟用户的测试,捕获的数据可能会有很多困难。这样做的副作用是测试工具可能难以应对所有这些信息。

性能监视也是如此。许多测试方案选择看似随机的测量值,却不知道每个计数器的功能,甚至不知道是否需要监视它,更不用提如何记录、统计这些数据。

一般来说,捕获尽可能多的监视数据并不是一个坏主意,但是要最大程度地减少收集的测试数据,仅选择基本性能计数器至关重要。

在执行负载测试时,需要省去一些麻烦的过程,并坚持使已经有成功经验的统计工具,以后再使用它们来解决和隔离性能问题。

分析测试数据

准备分析您的负载测试数据。测试时间越长,在测试过程中捕获的事件数量就越多,并且无论使用何种工具,对其进行分析都将更具挑战性。

负载测试会生成大量数据。深入研究测试结果并找到所需的一切并不容易。即使有一种简单的方法来分析数据(或自动分析),它仍然是一个非常具有挑战性的过程。

需要提前预估有关如何处理此问题,然后指定相关的计划。软件数据的错误分析会产生错误的结果。如果没有正确分析数据,不能着急下结论。从负载测试产生的数据中提取相关结论需要经验和技巧。

总结

在开始负载测试之前,需要确定正确的工作负载流量。确定虚拟用户的占用资源,以准备适当数量的负载生成器以及虚拟用户在其中的分布。需要创建虚拟用户将要使用的数据,并且需要准备环境,硬件,服务器,要测试的应用程序,以及待测软件本身。


在这里插入图片描述

最后: 大家可以去我公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…


http://chatgpt.dhexx.cn/article/exOqqF6d.shtml

相关文章

jmeter的负载测试

1.先在测试计划创建线程组和录制Case 1 1.1 选择测试计划 2 1.2创建线程组 3 1.3创建录制控制器 4 1.4结果如下: END 2.先在jmeter设置代理服务器 2.1 在工作台建立代理服务器 2.2结果如下: 3 (注意默认端口是8080,当然可以改) 4 目…

Loadrunner之使用Controller负载测试

进入controller中,导入做好的脚本,开始设置场景(条件)。 添加虚拟用户数量:如设置50个VUser(50个虚拟用户),每隔几秒增加几个虚拟用户。设置退出条件:完成一个退出一个&…

loadRunner之负载测试

一、loadrunner负载测试监控 在应用程序中生成负载时,我们希望实时了解应用程序的性能以及潜在的瓶颈。使用 LoadRunner 的一套集成监控器可以评测负载测试期间系统每一层的性能以及服务器和组件的性能。 LoadRunner 包含多种后端系统主要组件 (如 Web、…

2.负载测试

负载测试 负载测试主要关注在并发用户数或每秒请求数方面评估系统的当前性能。 什么是负载测试 负载测试是一种性能测试,用于确定系统在正常和峰值条件下的行为。 负载测试用于确保当许多用户同时访问应用程序时,应用程序的性能令人满意。 您应该运行负…

负载测试的最佳实践

当任何软件开发项目接近完成时,它可能已经通过了大量的测试,特别是在测试和开发同时进行的敏捷测试环境中。但是无论您运行了多少测试,一旦您的应用程序接近完成,实际上只有一种方法可以知道您的软件是否能够处理大量最终用户的实…

Split Pairs

问题描述: Split the string into pairs of two characters. If the string contains an odd number of characters, then the missing second character of the final pair should be replaced with an underscore (_). (将一个字符串两两分开&#x…

B. Pairs

1.如果可以找出第两对数&#xff0c;且四个数完全不同&#xff0c;那么如果可以满足题意的话&#xff0c;那么那两个数一定在这四个数之中&#xff0c;那么暴力扫一遍就可以了 2.若找不出&#xff0c;那么一定可以满足题意 复杂度顶多 4n #include<algorithm> #include…

python版本的Pairs图

背景 在我2017年刚开始学习R语言的时候&#xff0c;我就被一个非常漂亮的图吸引到了。那个图非常漂亮。后来我才知道&#xff0c;那个图&#xff0c;叫pairs图。 大概是这样的&#xff1a; 类似的图还不少&#xff0c;还有这样的&#xff1a; 或者是这样的&#xff1a; 总结 …

PTP报文解析

以Sync报文为例&#xff0c;linux端执行sudo ptp4l -i eth0 -m -S&#xff0c;给windows端发送主节点报文&#xff0c;windows端用wireshark抓取到的报文如下图&#xff1a; 报文解析&#xff1a; 01 00 5e 00 01 81 &#xff1a;windows端mac地址&#xff1b; 78 d0 04 2c 6…

DHCP报文协议

Ipv4 单播&#xff0c;即点对点的通信&#xff0c;目的地址为单一目标的一种传输方式。 源IP、源MAC为发送者的IP和mac地址&#xff0c;目的IP、目的MAC为接收者的IP和mac地址。 广播&#xff0c;是指封包在计算机网络中传输时&#xff0c;目的地址为网络中所有设备的一种传输…

TCP报文段

TCP虽然是面向字节流的&#xff0c;但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分&#xff0c;而TCP的全部功能都体现在它首部中个字段的作用。因此&#xff0c;只有弄清TCP首部个字段的作用才能掌握TCP的工作原理。 TCP前20个字节使固定的&#xff0c;后…

OSPF报文格式

OSPF报文格式 OSPF报文可靠性机制&#xff1a; 由于OSPF协议是通过IP承载的&#xff0c;而IP协议是不可靠协议&#xff0c;所以OSPF需要自己的可靠机制来保证报文交互的可靠性在OSPF中有两种确认报文&#xff1a;1&#xff0c;显式确认报文&#xff08;LSACK&#xff09;2&…

机场气象报文解析

机场气象报文解析 背景示例思路代码结果预览致谢参考文献 从这篇文章&#xff0c;读者可以了解道机场气象报文的背景&#xff0c;知道其中数据大概长什么样子&#xff0c;如何利用python语言解析出机场气象报文里面的信息形成格式化数据。 背景 上个月的我国第六号台风“烟花…

Http协议报文格式

一、整体介绍 Http协议在传输层基于TCP协议&#xff0c;在Http1.1之前每次请求在TCP层都需进行一轮连接和释放&#xff08;三次握手、四次握手&#xff09;&#xff0c;从Http1.1开始默认使用长连接。 Http报文分为两种&#xff0c;请求报文和响应报文&#xff0c;大致格式如下…

CAN报文

CAN报文 Bit Numbering是汽车网络数据库用以辅助描述信号的专用术语&#xff0c;具体含义是位的编号顺序。 lsb0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LSB 是least significant bit&#xff0c;最低有效位。 msb0 bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 MSB是Most Si…

TCP报文头部

TCP包头详解 主要学习端口号、三次握手、四次挥手 TCP包头 TCP报文固定长度20字节可变长度 TCP包头如下图所示&#xff1a; 源端口、目标端口&#xff1a;计算机上的进程要和其他进程通信是要通过计算机端口的&#xff0c;而一个计算机端口某个时刻只能被一个进程占用&…

ICMP报文

紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 ICMP报文   为了更有效地转发 IP 数据报和提高交付成功的机会&#xff0c;在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。   ICMP 是互联网的标准协议。  …

常见网络报文

TCP报文 1、端口号&#xff1a;用来标识同一台计算机的不同的应用进程。 1)源端口&#xff1a;源端口和IP地址的作用是标识报文的返回地址。 2)目的端口&#xff1a;端口指明接收方计算机上的应用程序接口。 2、序号和确认号&#xff1a;是TCP可靠传输的关键部分。序号是本报文…

报文、报文段、数据报、数据包、帧的概念区别

报文&#xff08;message&#xff09;—— 应用层 是网络中交换与传输的数据单元&#xff08;站点一次性要发送的数据块&#xff09;。报文包含了将要发送的完整的数据信息&#xff0c;其长短不一致。报文在传输过程中会不断的封装成分组、包、帧来传输&#xff0c;封装的方式…

报文、报文段、分组、包、数据报、帧、数据流的概念区别

1.报文(message) 我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元&#xff0c;也是网络传输的单元。报文包含了将要发送的完整的数据信息&#xff0c;其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输&#xff0c;封装的方式就是添加…