当前位置: 首页 > news >正文

压力测试总共需要几个步骤?思路总结篇

在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。今天我们就来深入了解下压力测试!

1、首先,什么是压力测试?

软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。

压力测试涵盖,性能测试,负载测试,并发测试等等,这些测试点常常交织耦合在一起。

顾名思义:压力测试,就是被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)。

比如:2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃。

2、压力测试的步骤

(1)确定存量数据的规模(用户一般会要求制造出3-5年的存量数据);

(2)确定需要进行压力测试的业务(一般是用户使用最频繁,或者业务操作复杂的业务);

(3)确定操作用户的的数量、各类操作用户的比例;

(4)峰值业务量的要求(一般是1个小时内最多要处理的笔数);

(5)对实时业务响应时间的要求(如在峰值情况下,单笔业务的处理时间(如小于60秒));

(6)对于批量处理过程的时间要求(如进行日终(月终、年终)处理、与外系统间批量数据传输时的时间)。

以上信息,通常需要业务人员来确定。

为了进行压力测试的技术准备,需要如下资料:

(1)系统概要设计(了解系统技术架构,确定测试方法);

(2)如果自己开发接口程序,需要了解接口报文规范;

(3)数据库设计(我们需要据此编写程序,准备存量数据)。

为了开发脚本需要了解如下信息:

(1)操作手册(脚本录入或者手工开发脚本);

(2)参数化脚本(动态化数据需要进行关联);

(3)脚本回放(验证脚本是否可以成功的创建数据)。

测试场景:

(1)单用户运行压力测试场景;

(2)多用户运行测试场景,查看系统资源消耗等调优工作开始。

另外,还有测试环境的事情需要落实。压力测试一般要求环境配置较高,最好与生产环境一致或者接近。

3、几款流行的压力测试工具

(1)JMeter

Apache JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库,FTP服务器,等等。

JMeter可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter能够对应用程序做功能回归测试,通过创建带有断言的脚本来验证你的程序是否返回了期望的结果。

为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

(2)LoadRunner

LoadRunner是惠普旗下一款自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助更快的确认和查找问题。此外,LoadRunner 能支持最宽范的协议和技术,量身定做地提供解决方案。

(3)其他测试工具

Siege是一款开源的压力测试工具,可以根据配置对一个WEB站点进行多用户的并发访问,

记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

TCPCopy是一种请求复制(所有基于tcp的packets)工具,可以把在线请求导入到测试系统中去。

TCPCopy的特点是可以拷贝线上真实流量,模拟用户数据。

4、最后,软件压力测试和性能测试的区别:

二者区别在于他们不同的测试目的。

软件压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的页面3秒钟内响应;

所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。

软件性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。

概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况。比如我们说某个网站的性能差,严格上应该说在N人同时在线情况下,这个站点性能很差)。

总之,就像一个方程式:综合性能=压力数*性能指数,

综合性能是固定的:

软件压力测试是为了得到性能指数最小时候(可以接受的最小指数)最大的压力数,软件性能测试是为了得到压力数确定下的性能指数。

6、总结:

在项目上线之前,都需要做压力测试,目的是看下我们的网站能抗住多少的压力,能承担多少并发,如果不做压力测试,一旦出现大访问量时,我们的网站会挂掉,所以压力测试真的很重要,都应该重视起来!

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

相关文章:

  • 想买GPT4会员却只能排队?来看看背后的故事!
  • Linux安装Docker完整教程
  • 【C++11】线程库
  • 假如我是AI Agent专家,你会问什么来测试我的水平
  • 67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。
  • 【2016年数据结构真题】
  • DQL、DML、DDL、DCL的概念与区别
  • 家用小型洗衣机哪款性价比高?婴儿专用洗衣机推荐
  • 二百零三、Flume——Flume实时采集数据频率为1s的高频率Kafka数据直接写入ODS层表的HDFS文件路径下
  • 三行Python代码即可将视频转Gif
  • ASP.NETWeb开发(C#版)-day1-C#基础+实操
  • 【SA8295P 源码分析 (三)】121 - MAX9295A 加串器芯片手册分析 及初始化参数分析
  • 在 HarmonyOS 上实现 ArkTS 与 H5 的交互
  • LeetCode-2760. 最长奇偶子数组-滑动窗口暴力
  • 基于Matlab+ AlexNet神经网络的动物识别系统
  • Angular2开发踩坑系列-生产环境编译
  • CSS 提示工具(Tooltip)
  • Javascript弹出层-初探
  • JavaScript设计模式之工厂模式
  • vuex 学习笔记 01
  • 从0到1:PostCSS 插件开发最佳实践
  • 汉诺塔算法
  • 理清楚Vue的结构
  • 实习面试笔记
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小程序01:wepy框架整合iview webapp UI
  • Mac 上flink的安装与启动
  • (rabbitmq的高级特性)消息可靠性
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (三)uboot源码分析
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)人的集合论——移山之道
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net framework4与其client profile版本的区别
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 的程序集加载上下文
  • .NET6 命令行启动及发布单个Exe文件
  • .net专家(张羿专栏)
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • ??eclipse的安装配置问题!??
  • @html.ActionLink的几种参数格式
  • @ModelAttribute使用详解
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [20160807][系统设计的三次迭代]
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [DL]深度学习_Feature Pyramid Network
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
  • [HEOI2013]ALO
  • [JS]JavaScript 简介
  • [Leetcode] Permutations II
  • [LeetCode]-283. 移动零-1089. 复写零
  • [Linux] Linux入门必备的基本指令(不全你打我)