软件中的压力测试,软件压力测试中存在的问题有哪些

软件压力测试是质量保证的重要环节,它在资源受限环境中运行测试,涉及内存、CPU、磁盘和网络等资源。常见问题包括操作系统未优化、磁盘IO影响、网络带宽忽视、TCP特性未考虑、超时参数调整不足以及并发理解错误。解决这些问题需要对操作系统进行优化,关注磁盘和网络IO,理解TCP连接复用,合理设定超时参数,并确保客户端和服务器的优化,以获取准确的压力测试数据。
摘要由CSDN通过智能技术生成

软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:

不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。

通常要进行软件压力测试的资源包括内部内存、CPU

可用性、磁盘空间和网络带宽。压力测试涵盖,性能测试,负载测试,并发测试等等,这些测试点常常交织耦合在一起。

压力测试中存在的问题

什么是压力测试?

软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。软件压力测试的基本思路很简单:

不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。

通常要进行软件压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。

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

压力测试存在那些问题

我归纳一下又几点:

操作系统默认安装,在未做任何优化的情况下实施压力测试

未考虑磁盘IO对软件的影响

未考虑网络带宽对软件的影响

网络软件测试,没有考虑到TCP特点

各种超时参数优化

测试客户端未优化

并发理解有误

WEB服务器,数据库,等等服务器未优化

如果上面几项没有做优化,压力测试数据基本没有任何参考价值,任何一项没有优化,都会导致你的压力测试数据出现偏差。

下面我来逐条说明:

操作系统问题

操作系统是大众化软件,出厂优化都是面向大众,不可能为某个领域做单独优化。所以我们第一步需要优化操作系统。 Linux

系统优化内核参数,Windows 系统优化注册表等等。

磁盘IO这是容易出现瓶颈的地方,常常是CPU还没有达到极限,磁盘已经不堪重负。

网络IO与磁盘IO相同

TCP连接几乎所有B/S,

C/S软件都是采用多线程,或者多进程技术。这种技术有个特点,开发者将程序设计为线程可自动伸缩模式,开启进程后会启动少量线程,当连接不断提高后,线程数逐渐增加,随着线程运行结束后,线程逐渐减少。自动化测试工具这样的设计会更有效地利用硬件资源,在程序空闲时将硬件资源让给其他进程。少有软件设计为开启服务独占资源。

这样测试软件做压力测试,不能一次并发很多请求,而是要采用逐渐增加的方式,否则第一次测试会有一部们并发不能及时响应,导致测试数据偏差。另外也你可以多做几次压力请求(让多线程工作起来),从第三次开始记录测试数据,忽律前面两次的测试数据。

提示:另一个问题是TCP连接复用,这也是一个重要配置想。如果这项没有配置,我想测试出的数据也会有偏差

超时参数 超时参数在压力测试中是非常重要的参数,APP测试工具例如从WEB到数据库连接超时是60秒,如果有一个SQL查询超过300秒,那么后面的请求会持续排队等待,当连接数达到数据库的大连接时,接下来的所有请求都是失败的。

通常我们的WEB服务器超时不会超过30秒,有时我设置为10秒,一旦出现超时,宁可让该连接Timeout,不要让他影响整体服务。

客户端很多网络软件需要从客户端发出压力测试请求,所以客户端的优化也是必须的,否则客户端压力出不去,服务端压力进不来。

并发很多人认为并发,是同一时间内的大连接数,这是错误的。如果你写过多线程程序,会发现多线程运行时又规律的。是顺序排队运行的,根本不是同时运行的。

所以并发是指,相对时间内能完成的连接总和,例如,每秒并发,每分钟并发等等,通常我们已秒为单位。

我们目前使用的操作系统叫分时操作系统,这种系统的特点是可能实现多用户,多任务。操作系统将进程排队(优先级)轮询运行,只不过这个操作太快了,使你认为多个进程在同时运行。

服务器优化主要B/S软件压力测试,WEB,缓存,数据库等等服务器,都需要逐一优化到佳状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值