资深测试整理,压力测试-如何做压力测试?一篇打通...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

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、为什么做压力测试?

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

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

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 这样测试。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人的潜力都是非常巨大的,关键在于如何挖掘它。只要你有勇气挑战自我,持之以恒的努力,你就一定能够实现自身的飞跃和突破。

不要因为别人的评价或者看法而改变自己,你要坚信你是独一无二的,你的价值无法估量。永远保持自我,追求梦想,活出最真实的自己。

没有什么事情是理所当然的,每一份成果都需要付出艰辛的努力和汗水。所以,请珍惜眼前的一切,继续努力前行吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/185199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务台需要跟踪的3个重要指标MTBF+MTTF+MTTR

衡量标准是IT服务管理的核心,可提供有关运营的见解,并帮助确定需要持续改进的领域。通常的服务台指标有助于展示内部运营效率。例如,衡量在规定时间内解决问题的工单数量的 SLA 是展示服务台效率的关键因素。另一方面,故障指标可帮…

《微信小程序开发从入门到实战》学习二十七

3.4 开发参与投票页面 3.4.2 借用伪造数据开发功能 为了便于开发,新建一个编译模式: 之前没看文章,每次都习惯性填完投票创建的信息提交再跳转看效果。好累。 添加变异模式开发真方便。 另外,点击提交后没跳转到投票页面&#…

CCCCCCC指针CCCCC

本文介绍[ shared_ptr / unique_ptr / weak_ptr ]的使用,以及shared_ptr 引用计数和weak_ptr 弱引用计数。 1. 智能指针概述 C程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率…

查企业联系电话的方法

对于销售来说,获取准确、全面的企业联系方式,无疑是开发客户的基础与保障,因为任凭能力再高,说服能力多强,没有与客户接触的机会,这些都是无稽之谈。但是大家都知道,道理都懂,但是要…

C++算法 —— 贪心(3)

文章目录 1、买卖股票的最佳时机2、买卖股票的最佳时机Ⅱ3、K次取反后最大化的数组和4、按身高排序5、优势洗牌6、最长回文串7、增减字符串匹配 1、买卖股票的最佳时机 121. 买卖股票的最佳时机 这里最容易想到的就是暴力枚举,两层for循环,i 0&#xf…

分布式链路追踪实战篇-日志库集成opentelemetry的思路

由上文分布式链路追踪入门篇-基础原理与快速应用可以知道分布式链路追踪的作用,但是距离应用到项目中,我们还需要对项目中一些关键组件进行opentelemetry的集成,例如日志库,ORM、http框架、rpc框架等。 一、日志库如何集成opentel…

设计模式-创建型模式-工厂方法模式

一、什么是工厂方法模式 工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。工厂方法模式是目标是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。…

美创联合浙江省农业农村厅斩获“IDC中国20大杰出安全项目”!

11月23日,由IDC主办,以“安全风险管控:新形势下的数据安全保护”为主题的2023全球CSO网络安全峰会(中国站)隆重召开。 会上,IDC “中国20大杰出安全项目(CSO20)” 重磅揭晓&#xff…

Linux中df命令使用

在Linux中,df命令用于显示磁盘空间的使用情况。它的基本语法如下: df [选项] [文件或目录]这个命令可以用来查看当前系统上各个磁盘分区的使用情况。如果没有指定文件或目录,则所有当前被挂载的文件系统的可用空间将被显示。 df命令的一些常…

手把手用GPT开发小程序全流程!就是这么easy~

大家好,我是五竹。 前段时间用GPT开发了一款小程序:GPT真牛批!三天开发一个小程序,三天积累了2000的用户,上周末抽空又接入了流量主,感兴趣的同学可以围观一下。 今天就来带大家走一遍用GPT开发一款小程序的全过程&a…

手把手webpack搭建前端架子

这里以react为例> (一)初始化package.json package name: 你的项目名字叫啥 version: 版本号 description: 对项目的描述 entry point: 项目的入口文件(一般你要用那…

【回眸】Tessy单元测试软件使用指南(一)安装篇

安装 在官网上下载安装包,安装完成后打开进入这个界面 注册申请license:在作为服务端的电脑上安装Tessy。安装完成后,启动Tessy会自动生成license服务器的注册码。(注册码用于申请试用或永久的license文件)这个对于我…

树莓派上使用Nginx通过内网穿透实现无公网IP访问内网本地站点

前言 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Nginx 的内存占用率非常低,可以在树莓派等资源受限的设备上运行。同时结合c…

NX二次开发UF_CSYS_set_wcs 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs Defined in: uf_csys.h int UF_CSYS_set_wcs(tag_t csys_id ) overview 概述 Sets the work coordinate system to the prototype coordinate system whose tag y…

竞赛选题 题目:基于FP-Growth的新闻挖掘算法系统的设计与实现

文章目录 0 前言1 项目背景2 算法架构3 FP-Growth算法原理3.1 FP树3.2 算法过程3.3 算法实现3.3.1 构建FP树 3.4 从FP树中挖掘频繁项集 4 系统设计展示5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于FP-Growth的新闻挖掘算法系统的设计与实现…

【PDF.js】2023 最新 PDF.js 在 Vue3 中的使用

因为自己写业务要定制各种 pdf 预览情况(可能),所以采用了 pdf.js 而不是各种第三方封装库,主要还是为了更好的自由度。 一、PDF.js 介绍 官方地址 中文文档 PDF.js 是一个使用 HTML5 构建的便携式文档格式查看器。 pdf.js 是社区…

【HuggingFace Transformer库学习笔记】基础组件学习:pipeline

一、Transformer基础知识 pip install transformers datasets evaluate peft accelerate gradio optimum sentencepiece pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge在host文件里添加途中信息,可以避免运行代码下载模型时候报错…

vue中下载文件后无法打开的坑

今天在项目开发的时候临时要添加个导出功能我就写了一份请求加导出得代码, 代码: //导出按钮放开exportDutySummarizing (dataRangeInfo) {const params {departmentName: dataRangeInfo.name,departmentQode: dataRangeInfo.qode}//拼接所需得urlcons…

Tomcat注册为服务后,如何配置Tomcat内存大小

前提条件:tomcat已经注册为服务。 1.winR,输入regedit打开注册表 2.找到Tomcat注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat80603.找到jvm内存配置路径: HKEY_LOCAL_MACHINE\SOFTW…

Redis高可用之主从复制及哨兵模式

一、Redis的主从复制 1.1 Redis主从复制定义 主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用; 主从复制实现数据的多级备份,以及读写分离(主服务器负责写,从服务器只能读) 1.2 主从复制流…