加强网站稳定性!学习如何进行高效压力测试!

2023-12-04

前言

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 服务器压力测试,测试场景是 nginx : worker_processes 8; 处理器数; worker_rlimit_nofile 65530; 允许最多打开文件数; worker_connections 4096; 最大连接数数为; keepalive_timeout 65; 开启复用连接; gzip on; 压缩传输数据。

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

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

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

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

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加强网站稳定性!学习如何进行高效压力测试! 的相关文章

随机推荐

  • 【C++】string模拟

    string讲解 C String类 CSDN博客 gt https blog csdn net 2301 77649794 article details 134625480 spm 1001 2014 3001 5502 基本框架 pr
  • 避免20种常见Selenium自动化测试异常,让你的测试更加稳定和可靠!

    常见的Selenium异常 以下是所有Selenium WebDriver代码中可能发生的一些常见Selenium异常 1 ElementClickInterceptedException 由于以某种方式隐藏了接收到click命令的元素 因
  • 数据接口测试工具 Postman 介绍!

    此文介绍好用的数据接口测试工具 Postman 能帮助您方便 快速 统一地管理项目中使用以及测试的数据接口 1 Postman 简介 Postman 一款非常流行的 API 调试工具 其实 开发人员用的更多 因为测试人员做接口测试会有更多选
  • 2023测试工程师核心软技能「情绪管理」

    大家好呀 我是小码哥 我之前经常提到一句话 大多数时候所谓的 技术之玻璃天花板 其实只是缺乏软技能而已 所以粉丝朋友们 我们除了需要关注技术 更需要注重软技能的提高 关于软技能相关的文章 之前写过学习方法 职业规划 时间管理 项目管理 团队
  • java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • Jmeter测试移动接口性能 —— 压测

    一般的公司都想知道自己产品的性能瓶颈和以及提升性能 以期大流量来了还撑得住 其实性能测试很难 难点在你不知道性能要达到怎样的需求 难点在于你没有实际的环境场景给你测试 总不能给线上环境你测试吧 难点在于找性能瓶颈 即便找出来了 调优也是一件
  • 快速提升测试技术:必备技能大揭秘!

    很多小伙伴在成功入职后 进入测试开发发展后 都会进入一个瓶颈过渡期 当然能够自己意识到这个问题说明还来得及 那么作为测试开发人员 如何走出舒适区 需要学习和掌握那些内容 从而实现自己的最终目标呢 今天我们就来说一说 在职场中如何不断的提升自
  • 从容应对:如何精准分析测试风险并制定有效策略?

    软件测试 是一项高风险的工作 它是不可避免的 总是存在的 作为一名测试管理人员必须在平时的工作中 分析这些风险的类别 并且想出对策尽最大程度的降低这些风险 01 软件需求的风险 主要表现在以下的几个方面 需求变更风险 在项目的后期用户总是不
  • 夯实c基础

    夯实c基础 区别 图一的交换 交换的是地址而不是两数 无法实现两数的交换 题干 以下程序的输出结果为 c void fun int a int b int c c a b void main int c 6 fun 3 5 c printf
  • 测试人员为什么要去了解业务架构和技术架构?

    问题 在入职公司不久 我参加老员工再给新来的员工和管培生宣讲产品的业务 功能 直接拿着功能清单和实际页面在讲解 等把产品功能讲完了 我问了一下实习生和管培生怎么样 他们都说功能讲的太多 太乱 不清楚讲解产品的核心业务逻辑及操作流程 后来发现
  • UI自动化测试的正确姿势 —— Airtest设备连接&API详解第一篇

    一 背景 Airtest作为一款优秀的自动化测试工具 有着强大的API功能 处理日常自动化测试过程中需要的各类操作 今天就给大家逐一介绍关于设备连接和常用API部分 结合自动化测试中的各类需求 看看如何通过使用Airtest来快速实现 二
  • 7个简单技巧,让你从容应对压力面试!

    01 什么是压力面试 压力面试是指有意制造紧张 以了解求职者将如何面对工作压力的一种面试形式 事实上 压力面试不是单独存在的一类面试 往往是穿插在面试过程中 面试人通过提出不礼貌 冒犯的问题 或者用怀疑 尖锐 挑衅的语气发问 使应聘者感到不
  • 商城免费搭建之java商城 鸿鹄云商 B2B2C产品概述

    B2B2C平台 以传统电商行业为基石 鸿鹄云商支持 商家入驻 平台自营 多运营模式 积极打造 全新市场 全新 模式 企业级B2B2C电商平台 致力干助力各行 互联网创业腾飞并获取更多的收益 从消费者出发 助力企业构建完整 电商交易生态 整合
  • 【涨薪技术】深入接口测试之Mock技术

    01 为什么要用Mock 服务端与客户端约定了接口 但服务端还没有完成开发时 客户端一般由如下处理方式 1 在程序中写模拟数据 程序中增加垃圾代码 后期还要删除 可能对代码造成影响 模拟异步请求不方便 服务端接口开发完成后 需要重新书写网络
  • OBC、DCDC自动化测试解决方案!

    OBC 车载充电机 和DCDC 直流 直流变换器 是电动汽车的核心部件 DCDC和OBC的功能质量对于整车的性能和安全性至关重要 在OBC和DCDC 以及整车开发测试过程中 需要对OBC和DCDC进行功能和性能方面进行全面的测试 针对OBC
  • 鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统项目背景

    鸿鹄工程项目管理系统 Spring Cloud Spring Boot Mybatis Vue ElementUI 前后端分离构建工程项目管理系统 1 项目背景 一 随着公司的快速发展 企业人员和经营规模不断壮大 为了提高工程管理效率 减轻
  • 一文搞懂 chatGPT 原理

    目前关于chatGPT的资料过于零散 没有详尽所有知识点 系统概述的文章 因此 笔者作了这篇总结性文章 训练过程总览 理清演化路径 预训练 pretrain GPT 3概述 GPT 3模型的理念 GPT 3如何学习 数据集 指令微调 Ins
  • d3dcompiler_47.dll缺失怎么修复?一招搞定电脑弹窗问题

    在计算机使用过程中 我们常常会遇到一些错误提示 其中之一就是 d3dcompiler 47 dll缺失 这个错误通常出现在游戏或应用程序运行时 它会导致程序无法正常启动或运行 为了解决这个问题 我们需要采取一些措施来修复缺失的文件 本文将介
  • 绝地求生PUBG提示msvcp140.dll缺失的5个解决方法,亲测有效

    在玩 绝地求生 这款游戏时 我们可能会遇到各种各样的问题 其中之一就是 吃鸡提示msvcp140 dll缺失怎么办 这个问题可能导致游戏无法正常启动运行 但是不用担心 下面我将为大家详细介绍如何解决这个问题 msvcp140 dll文件的概
  • 加强网站稳定性!学习如何进行高效压力测试!

    前言 1 什么是压力测试 软件压力测试是一种基本的质量保证行为 它是每个重要软件测试工作的一部分 软件压力测试的基本思路很简单 不是在常规条件下运行手动或自动测试 而是在计算机数量较少或系统资源匮乏的条件下运行测试 通常要进行软件压力测试的