本文介绍: 允许最多打开件数;③超时参数压力测试中是非常重要的参数例如从WEB到数据库连接超时是60秒,如果有一个SQL查询超过300秒,那么后面的请求持续排队等待,当连接数达到数据库最大连接时,接下来所有请求都是失败的。这种技术有个特点,开发者程序设计线程自动伸缩模式开启进程后会启动少量线程,当连接不断提高后,线程数逐渐增加,随着线程运行结束后,线程逐渐减少。这样测试软件压力测试,不能一次并发很多请求,而是要采用逐渐增加的方式,否则第一次测试会有一部们并发不能及时响应,导致测试数据偏差。

前言

1、什么压力测试?

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

软件压力测试的基本思路简单:不是在常规条件运行手动自动测试,而是在计算机数量较少或系统资源匮乏的条件运行测试。

通常要进行软件压力测试的资源包括内部内存、CPU可用性磁盘空间网络带宽。压力测试涵盖,性能测试,负载测试,并发测试等等,这些测试点常常交织耦合在一起。

2、压力测试存在哪些问题

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

1)未考虑磁盘IO对软件的影响 2)未考虑网络带宽对软件的影响 3)网络软件测试没有考虑到TCP特点 4)各种超时参数优化 5)测试客户端优化 6)并发理解有误 7)WEB服务器数据库,等等服务器优化

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

逐条说明: ①操作系统问题操作系统是大众化软件,出厂优化都是面向大众,不可能某个领域做单独优化。所以我们一步需要优化操作系统。Linux 系统优化内核参数,Windows 系统优化注册表等等。

②磁盘IO这是最容易出现瓶颈的地方,常常是CPU还没有达到极限,磁盘已经不堪重负。网络IO与磁盘IO相同,TCP连接几乎所有B/S,C/S软件都是采用多线程或者进程技术。

这种技术有个特点,开发者程序设计为线程可自动伸缩模式开启进程后会启动少量线程,当连接不断提高后,线程数逐渐增加,随着线程运行结束后,线程逐渐减少。

这样的设计会更有效利用硬件资源,在程序空闲时将硬件资源让给其他进程。少有软件设计开启服务独占资源

这样测试软件做压力测试,不能一次并发很多请求,而是要采用逐渐增加的方式,否则第一次测试会有一部们并发不能及时响应,导致测试数据偏差。

另外也你可以多做几次压力请求(让多线程工作起来),从第三次开始记录测试数据,忽律前面两次的测试数据

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

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

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

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

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

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

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

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

3、为什么做压力测试?

如果在软件设计阶段都将这些问题元素都考虑进去,同时开发阶段严格执行。那么开发出些软件几乎不用这个劳人伤神的压力测试。

所以在软件设计阶段就要考虑,灵活性,扩展性可靠性性能,还要考虑高可用负载均衡。同时软件优化伴随开发持续集成持续测试,持续部署

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享很多我们收集的技术文档视频教程。
如果你不想再体验学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多自动化性能安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

4、在哪里做压力测试?

有些软件需要封闭的环境测试,不能在共享资源环境中做测试。所以你有必要做Vlan隔离,甚至独立路由器交换机在封闭网络中测试。

5、什么时间做压力测试?

任何时间都可能做压力测试,为什么将“时间”重点提出呢?目前受地球自转影响,经常闰秒,你不得不考虑这个问题。

6、压力测试过程参与部门哪些

运维部门、开发部门、测试部门

7、如何做压力测试?

下面我们举一些例子,讲述压力测试方法,限于篇幅不可能面面俱到,我仅仅是给你提供思路

测试前你需要一些监控工具,事实监控服务器资源变化。

例如 Web 服务器压力测试,测试场景nginxworker_processes 8; 处理器数; worker_rlimit_nofile 65530; 允许最多打开件数worker_connections 4096; 最大连接数数为; keepalive_timeout 65; 开启复用连接; gzip on; 压缩传输数据

怎么做压力测试呢?你要最大化性能还是相对性能

我们通常需要的是满足需求就好的相对性能,而不是最大化性能。

为什么呢? 因为要最大化性能是要做出很多配置牺牲的,例如关闭日志,禁止访问时间等等。

按照上面的配置你的测试用例应该是,每次并发4000 请求 8000~10000 次, 你不能并发8000 请求 4000 这样测试

END今天分享就到此结束了,点赞关注不迷路~! 

原文地址:https://blog.csdn.net/qq_43371695/article/details/134806445

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_48678.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注