软件压力测试预估数据(软件压力测试是什么意思)

来源网友投稿 680 2023-04-12

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈软件压力测试预估数据,以及软件压力测试是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享软件压力测试预估数据的知识,其中也会对软件压力测试是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

软件压力性能测试方案方法

一、是什么:

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

二、测试目标

如:50笔/秒,响应时间5秒内,成功率99.99%

三、测试准备

如:用户、测试场景、测试数据、垫底数据

四、软件压力测试和性能测试的区别:测试目的不同

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

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

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

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

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

https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95/10364657?fr=aladdin

https://blog.csdn.net/bwf_shwangzhanbu/article/details/84588593

软件压力测试方式有哪些?

你好!
以下摘自一高手空间:
压力测试分为如下大概(个人如此)
(1)确定存量数据的规模(用户一般会要求制造出3-5年的存量数据);
(2)确定需要进行压力测试的业务(一般是用户使用最频繁,或者业务操作复杂的业务);
(3)确定操作用户的的数量、各类操作用户的比例;
(4)峰值业务量的要求(一般是1个小时内最多要处理的笔数);
(5)对实时业务响应时间的要求(如在峰值情况下,单笔业务的处理时间(如小于60秒));
(6)对于批量处理过程的时间要求(如进行日终(月终、年终)处理、与外系统间批量数据传输时的时间)。
以上信息,通常需要业务人员来确定。
为了进行压力测试的技术准备,需要如下资料:
(1)系统概要设计(了解系统技术架构,确定测试方法);
(2)如果自己开发接口程序,需要了解接口报文规范;
(3)数据库设计(我们需要据此编写程序,准备存量数据)。
为了开发脚本需要了解如下信息:
(1)操作手册(脚本录入或者手工开发脚本);
(2)参数化脚本(动态化数据需要进行关联);
(3)脚本回放(验证脚本是否可以成功的创建数据)。
测试场景:
(1)单用户运行压力测试场景;
(2)多用户运行测试场景,查看系统资源消耗等调优工作开始。
另外,还有测试环境的事情需要落实。压力测试一般要求环境配置较高,最好与生产环境一致或者接近。

测试开发技术(二)——压力测试

上一篇文章里说过,目前互联网公司软件压力测试预估数据的测试开发岗位分两类。多数的一类是既要负责业务测试、自动化测试,同时也要去开发测试框架、效率工具来辅助业务测试。这类测试开发的岗位(主要指后端的岗位)一般多少都要接触压力测试。

        压力测试、性能测试、负载测试、稳定性测试在网络上有很多文章介绍概念和区别,通常在项目过程中不会区分那么多,实际项目中都是以目标为导向,通常实际项目中都会说,压测一下看下性能,所以这里就不管详细的概念和区别了。为了好理解,软件压力测试预估数据我们这里统一叫压测,并以得到性能数据为性能测试,以观察稳定性为稳定性测试。

        性能测试和稳定性测试的相同之处在于都是使用压测工具来进行。但目标不同,性能测试是通过压力测试得到系统的极限性能或者和上一版本的性能对比数据。而稳定性测试则是通过压力测试提供稳定或者变化的持续流量,来观察系统持续运行的情况下是否存在异常。

        正常情况下,一般系统先做性能测试,拿到极限性能或者性能对比数据(对于非1.0项目,性能数据一般需要和上一个版本对比)之后,再通过安全的流量持续压测更长时间,来完成稳定性的验证。

        下面我们就具体介绍一下怎么做性能测试和稳定性测试。

        性能测试的第一步要确定目标,就是为什么要做性能测试,要达到什么样的目标或者效果。比如某个首次上线的系统,性能测试主要是为了得到系统的极限性能数据;再比如,系统优化,更换了RPC协议或者消息队列,性能测试就是为了量化此次系统优化在性能上优化的效果。另外,也不是所有的项目都需要性能测试,比如一个内部系统,用户数和流量本身就很少,而且在未来一段时间也不会有增量,这就基本不需要性能测试。

        如果是从无到有的1.0项目,因为项目还没有上线,所以只能评经验来预估线上的流量数据;但如果是非1.0项目,就可以收集当前的线上数据。具体收集的数据如下(仅供参考,要按照实际情况来调整):1)被测系统或模块各类请求流量比例;2)系统或模块目前平均、峰值、最小 qps;3)线上部署方式和规模;4)被测系统或模块依赖能承受的QPS或者容量。

        确定目标和收集完线上现有数据之后,需要根据目标和现有数据确定压测方案,比如,每个阶段通过多大并发或者流量来压测、分几个阶段、每个阶段多长时间、以及压测过程中需要观察和记录哪些数据等。

        同时,也要准备压测环境,压测的环境要尽可能的和线上一致,如果达不到,就做等比缩放。比如,一个系统有A、B两个模块组成,线上A部署了20台机器,B部署了5台机器,那么压测就可以A部署4台,B部署1台。机器和实例的数量只是一个方面,同时也要考虑机器的性能(CPU盒数、内存、磁盘、网卡等),还要考虑依赖方(如DB、缓存、消息队列等)的部署。部署压测环境的核心思路就是要用这套环境反应出线上环境的真实情况。

        要进行压力测试就一定要有压测工具,一般来说压测http或者其他开源协议可以在网上找到现成的工具,比如jmater之类的。但如果场景比较特殊,或者使用的是公司或项目的私有协议,就只能使用公司内部的工具或者自己动手开发了。

        选择好压测工具就要构造压测数据了。构造压测数据主要分两点:

        第一点是要构造压测环境系统中的数据。因为线上系统内部一定是有一定数据的,我们要尽量模拟线上就要在系统中添加相应的数据。

        另一点就是要准备压测的请求数据。这点跟选择的压测工具有关,一般来说分2种:

        1)数据词典, 压测的请求提前准备好,存入文件、DB或缓存里,数据量较大的时候一般需要写程序生成。

        2)实时生成,这种是压测工具在压测的时候根据配置规则来实时随机生成请求。

        准备工作一切就绪,下一步就开始做压测的执行。这时候主要就是根据压测方案的从低到高去调整压测工具的并发数或请求数,来对目标系统或模块进行压测。

        压测时,要观察CPU、内存、网络IO、磁盘空间、被压目标日志、依赖系统或者模块的状态等数,也要记录不同并发下目标系统或者模块处理请求的QPS和响应时间。同时也要注意有没有内存泄漏、句柄泄漏、系统崩溃等问题。

        实际上部分数据在记录的过程中就可以初步整理出来。这里要针对上一步记录的数据,进行汇总,主要要产出在不同并发下,上面提到的数据都是什么情况。需要根据数据判断出极限性能,找到这种部署情况下瓶颈在哪,以及是什么原因造成的,为后续扩容提供依据。有些情况还需要跟以前的数据做对比,看性能提升或者下降的程度是不是符合预期。最后,把这些信息综合汇总、分析之后,产出性能测试的报告。

        通常性能测试之后拿到了性能数据之后,都会在安全的并发或者流量下持续压测更长的时间来确保服务的稳定性。比如,笔者通常测试性能的时候,每轮可能压测半小时到一小时(在刚开始并发或者流量较小的时候可能会更短),在得到期限性能之后,会控制极限性能时80%-%90的流量或者并发去压测更长的时间,这个时间一般会比较长,而且多数情况下会在晚上下班前启动,然后第二天到公司来看结果。

        除了长时间通过安全流量来验证外,有些时候在特殊场景下,也需要验证在安全流量范围内,流量急曾或者急降的情况下,稳定性是否有影响。或者,验证在一定流量下,模拟某个依赖或者系统内部的模块出现问题,执行相应预案时,对系统整体的影响是否符合预期。

        当然,稳定性很多情况是异常,但更多的异常会在异常测试里去做,这里的稳定性测试是指在一定流量压力下的稳定性测试,其他的就不做讨论了。

        上面介绍了压力测试里,性能测试和稳定性测试要做什么,那具体怎么做呢软件压力测试预估数据?下面我们就通过一个实例来简单介绍一下。

      一个消息推送的系统,推送的消息就是我们日常手机APP的通知消息。这个消息通知的系统有三个接口,分别是单播(指定推送给某个人)、组播(推送给一个组,组里可能有多个人)、广播(推送给APP所有用户)。现在这个系统做了一个重构,更新了内部交互的RPC协议,所以要压一下,跟之前的性能数据做个对比。另外,系统重构前,线上集群极限性能为30000 QPS。

        下面,我们就按照前面的步骤,来简单介绍一下具体怎么做。

      目标就是要得到重构后的系统性能数据,并和原有的做对比,原有的极限性能已知,大概在30000 QPS左右。

        收集线上数据,比如说我们收集到单播、组播、广播的请求比例为5:78:1;组内人数大概在300-1000;发送的消息字符数在30-100这个区间。

        压测方案要先确定部署方案,比如这个系统向上是20台机器(或者实例),压测采用2台机器(等比缩放)。压测机器是线上的1/10,所以我们的目标性能就是3000qps。那么我们压测的方案就可以如下设置:

        第一轮,2个并发,5-10分钟,主要目的是为了先验证环境和压测工具没有问题;

        第二轮,根据上一轮并发数和机器资源(CPU、内存、IO)的情况,调整并发到极限的一半多一些(比如,之前是2个并发,CPU占用10%左右,内存、IO占用都很小,那么就以CPU的占用作为参考来计算,1个并发大概占用5%,那我们就可以吧并发调到10-12,目标CPU占用是50-60%)。这其实才真正开始压测,如果没问题,就开始逐步加压;

        第三轮,开始逐步增加,按照实际情况一次增加2-5个并发,直到性能达到瓶颈。

        这里是假设压测工具通过调整并发数来操作压力,主要需要看下并发对系统CPU、内存、IO的影响,根据压测时机器的资源占用信息来判断增加多少并发。

        确定好方案,就需要部署压测环境了,这里要注意,尽量使用跟线上一致配置的机器。

        压测工具要根据实际业务做选择,必要的时候需要自己开发,工具开发后面如果有机会在其他的文章里介绍,这里就不多介绍了。我们这个例子因为是系统更换内部协议,对外接口不变,所以可以使用原有压测工具。

        下面就是要构造数据:

        首先,要构造系统内部的数据,比如用户信息、设备信息、组信息,这里既要根据线上的收集到的信息来构造,比如用户数、组的数量、组内用户数等。这类如果方便的话可以直接在DB里插入,或者掉相应的系统API来准备。

        然后就是压测的请求数据,比如说压测工具是用数据词典来压测,那么这里我们就通过脚本,来生成压测请求数据。这里要注意线上收集到的各个接口的占比,即5:78:1。压测的时候按照这个比例来提供流量。

        准备工作完成,开始做压测。

        这时候要先吧各类数据观察准备好,一般现在的互联网大厂都有图形化的工具来看,如果没有也可以通过linux的一些命令来看。常用的命令有top\ps\vmstat, 这里推荐使用top来查看实时的资源情况,使用vmstat的来定时输出当资源情况(vmstat -t 1 就是每秒输出一次)。

        准备好了观测,那就启动压测工具,按照方案压测。压测方案上面已经介绍,这里就不重复了。

        假如我们并发加到20个的时候,CPU占用达到85%左右,处理请求达到3600qps,其他资源占用都不足机器的一半;并发加到22个的时候,CPU占用达到95-100,处理请求是3700qps;并发加到24,CPU打满,处理请求3800QPS,并且出现错误日志。这时候就可以停止压测了。

      数据整理,我们首先要整理一个表格或者图标,我们这里用表格:

       这个表格就是压测产出的最核心的数据,由于CPU是明显的性能瓶颈,表格里就不体现其他资源了,如果其他资源使用率也比较高,也要放到这个表格里,又或者瓶颈在外部依赖,也要体现出来。通过这个数据可以看出,3700QPS就是系统处理的极限,安全的流量在3600QPS。这时候就可以用17-20的并发数,长时间压测压测一下,看看系统整体的稳定性。

      那么性能报告怎么写呢?下面就给出一个比较简单的性能报告样例。

        标题:消息推送RPC协议升级性能测试报告

        一、项目背景

                这里写项目背景和目标

        二、压测环境

                线上20台物理机,压测环境使用2台物理机,配置与线上一致,具体如下:

                XX核,XXG内存,万兆网卡,硬盘 400G * 6 SSD

                DB:XX主XX从XX备

        三、压测方案和数据

1. 请求比例

      单播:组播:广播 =  5:78:1

2. 压测过程数据

      3.  资源占用图

    可以把QPS和CPU占用使用工具(比如excel)生成一个折线图,另外,可以把其他资源数占用的数据图片贴一下。

        四、结论

        压测过程中,压力达到3700qp时,内存与IO正常,CPU占用达到98%,无错误日志。压力达到3800qps时CPU打满,且5分钟后开始出现错误日志。因此系统在2台物理机部署极限性能为3700qps,性能瓶颈在CPU,预计线上20台机器极限性能为37000qps.

        系统RPC协议升级前20台机器30000qps,升级后预计能达到37000qps,性能整体提升23%,符合预期。

        上面就是一个比较简单的报告,真实项目中瓶颈不一定是CPU,可能是其他资源,也可能是依赖的系统或者模块,这些都需要观察和分析压测中的数据来得出。

        压力测试是后端测试和测试开发人员的必备技能,这篇文章只是根据笔者的经验针对压力测试进行的总结,不能覆盖所有压测场景,仅给大家做个参考。更多的是需要我们根据系统的实际情况去探索和实践。

软件压力测试的区别注意

软件性能测试就是用来测试软件在系统中的运行性能的。软件性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。
软件性能测试经常和软件压力测试一起进行,而且常常需要硬件和软件测试设备,这就是说,常常有必要的在一种苛刻的环境中衡量资源的使用(比如,处理器周期)。外部的测试设备可以监测测试执行,当出现情况(如中断)时记录下来。通过对系统的检测,测试者可以发现导致效率降低和系统故障的原因。
软件压力测试:对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。
软件性能测试:在交替进行负荷和强迫测试时常用的术语。软件性能测试关注的是系统的整体。它和通常所说的强度、压力/负载测试测试有密切关系。所以压力和强度测试应该于软件性能测试一同进行。
举例说明:针对一个网站进行测试,模拟10到50个用户就是在进行常规软件性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。
软件性能测试(Performance) 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间,在可以接受范围内.J2EE技术实现的系统在性能方面更是需要照顾的,一般原则是3秒以下接受,3-5秒可以接受,5秒以上就影响易用性了. 如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题
软件压力测试 (Stress) 多用户情况可以考虑使用软件压力测试工具,建议将压力和软件性能测试结合起来进行.如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息.如果有必要的话必须进行性能优化(软硬件都可以).
软件压力测试和软件性能测试的区别是在于他们不同的测试目的
软件压力测试是为了发现系统能支持的最大负载,他的前提是要求系统性能处在可以接受的范围内,比如经常规定的页面3秒钟内响应;
所以一句话概括就是:在性能可以接受的前提下,测试系统可以支持的最大负载。
软件性能测试是为了检查系统的反映,运行速度等性能指标,他的前提是要求在一定负载下,如检查一个网站在100人同时在线的情况下的性能指标,每个用户是否都还可以正常的完成操作等。
概括就是:在不同负载下(负载一定)时,通过一些系统参数(如反应时间等)检查系统的运行情况;
比如我们说某个网站的性能差,严格上应该说‘在N人同时在线情况下,这个站点性能很差)
总之,就像一个方程式:综合性能=压力数*性能指数,
综合性能是固定的:
软件压力测试是为了得到性能指数最小时候(可以接受的最小指数)最大的压力数软件性能测试是为了得到压力数确定下的性能指数。

关于软件压力测试预估数据和软件压力测试是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 软件压力测试预估数据的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于软件压力测试是什么意思、软件压力测试预估数据的信息别忘了在本站进行查找喔。
上一篇:数据库上云的一点记录,你记录了吗?
下一篇:10张图,搞懂索引为什么会失效?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~