从0到1精通性能测试,需求到实战压力测试实例(详情)你要的都有...

news2024/11/17 17:46:12

目录:导读

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


前言

性能测试需求分析阶段
根据用户使用习惯和实际业务的性能需求,生成性能测试需求调查表;
根据性能测试需求及系统重要业务调研,选取典型业务;
了解业务模型及业务架构;

性能测试设计阶段
编写性能测试用例;
结合性能测试用例录制/修改/完善测试执行脚本;
结合用户应用场景设计性能测试执行场景;

性能测试执行阶段
利用Jmeter性能测试工具中的Controller应用,按照并发用户数执行场景,并保存测试结果;
利用Jmeter性能测试工具监控被测试环境下的服务器CPU、内存、磁盘等系统资源的使用情况;
在需要的情况下利用第三方监控工具监控被测试系统的资源使用情况;
在对于可靠性测试,长时间执行测试,查看系统是否会出现内存泄漏、宕机等情况;

性能测试分析阶段
分析场景执行后的结果;
在需要的情况下借助其他辅助工具对系统进行监控,如Linux系统top等命令或其他辅助工具,进一步分析系统资源使用情况;

性能测试调优阶段
通过与以前的测试结果进行对比分析,从而确定经过调整以后系统的性能是否有提升。
在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项而引起性能提高,却不知道是由于调整哪项关键指标而改善性能的。通常,我们是按照由易到难的顺序对系统性能进行调优。

系统调优有易到难的先后顺序如下:
硬件问题;网络问题;应用服务器,数据库等配置信息;源代码,数据库脚本问题;系统架构问题根据性能测试执行结果,分析结果是否满足用户需求并生成性能测试报告。

一次简单的压力测试实例

1、性能测试需求

响应时间≤20S
网络环境公司100M内网
压测环境生产环境压测:模拟综合业务场景
业务场景库存查询功能由后台迁移至移动端:后台有800个查询入口,移动端变为6400个入口
服务器配置云服务器

2、需求分析
需求如上,性能测试最关注的三个指标分别是:响应时间、TPS、资源使用情况。

根据需求来看,要求响应时间不能超过20S的前提下,通过压力测试得到服务器的最大处理能力;且只是一个库存查询功能,因为是在线上压测,所以业务场景可以保证是真实可靠的。

3、场景建模
压测环境是生产环境,所以交叉的业务场景较复杂,库存查询功能是针对云服务器,其他的部分业务是通过应用服务器到数据库的,且数据库做了读写分离,故暂不考虑数据库的性能问题。

4、测试数据准备
测试数据的来源一般有这几种方式:
①、将生产的数据完全备份过来:优点是完全真实可靠,不足之处在于测试数据在测试中容易造成数据污染,最好进行数据隔离,以尽量保证数据的可用性。

②、通过模拟业务场景跑脚本或者调度任务来产生数据:在测试数据量不大的情况下可以通过这种方式来准备测试数据。

这里的前提是在测试环境进行压力测试,而本次的压测是直接在生产环境,故测试数据的问题已经算是解决了。

5、脚本开发与调试
测试工具是jmeter,因为只针对查询库存的功能,故只需要进行单接口压测即可。

利用测试工具设计测试脚本的好处是省却了很多繁琐的过程,脚本的调试,首先需要进行接口测试,保证测试的接口是正确可用,然后进行单接口基准测试,最后进行压力测试。

6、脚本执行与记录监控
脚本执行:
在脚本执行过程中,需要由小到大逐渐加大并发数,且记录每次的测试结果,由于网络等情况影响,最好的办法是同一并发数执行多次测试,然后加权平均到的的数值相对来说较可靠。

通过记录不断加压测试后的测试数据,可以观察到响应时间、TPS、资源使用情况等数值的变化,然后进行分析。

记录监控:
每次测试执行的结果进行记录,监控数据库响应时间、连接数,服务器内存、磁盘使用等数值。

PS:由于是在生产环境直接压测,故需要实时监控,以免压测造成服务宕机等严重情况(执行测试时候开发随时待命,准备重启服务和扩容233)。

性能测试最重要的三个数值:响应时间、TPS、内存、磁盘使用率————监控(jmeter插件、serveragent)

7、结果分析与瓶颈定位
通过上面测试得到的测试数据,可以进行针对性的分析,比如在压测过程中,资源、内存、连接数等是否使用饱和,是否有线程等待,数据库响应时间等,然后利用排除法和优先级进行调优。

排除法:针对可能影响到性能的几个因素,一个个分析排除;
优先级:根据实际情况,对调优的投入和时间等需要花费的时间和资源进行评估,排优先级,选择最合适的方案。

8、调优与验证
一些简单的调优方法:
内存、磁盘:简单粗暴的做法,直接加服务器吧;
数据库:更改配置的连接数,加索引、读写分离、分库、分区、分表、物理视图等手段;
连接池:优化连接池配置,增加连接数等,具体后续更新;
前端:减少请求连接,数据包尽量放在body中,图片压缩、异步加载、JavaScript脚本放在HTML最后等等手段,具体后续更新;

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

路漫漫其修远兮,只有不断前行的勇气和毅力,才能走向梦想的彼岸。坚持信念,保持热情,脚踏实地,一定能够创造出属于自己的精彩人生!

人生短暂而又宝贵,我们必须要珍惜时间、追求卓越。不要因为困难而放弃,要勇于面对挑战,发扬自己的优点和特长,拼搏奋斗,让未来更加美好!

人生的路途充满了变幻和不确定,但只有坚定自己的信念,持之以恒地追求梦想,才能够走向成功。保持热情,不断学习和进步,用心去感受、脚踏实地去实践,创造出属于自己的精彩人生!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

David Silver Lecture 9:Exploration and Exploitation

1 Introduction 1.1 Outline 1.1.1 Exploration vs. Exploitation Dilemma 1.1.2 examples 1.1.3 principles Naive Exploration 在前面的章节主要使用的是naive exploration的方法Optimistic Initialisation 这种方法的思想是,我们对每个动作的奖励给出一个乐观的…

C语言深度解刨(一)——关键字

文章目录 前言关键字定义和声明,你懂了吗?最宽宏大量关键字——auto最快的关键字——register最名不副实的关键字——static修饰变量修饰函数 基本数据类型——short、int、long、char、flaot、double变量命名规则 最冤枉的关键字——sizeof常年被人误认…

Java开发 - 不知道算不算详细的分布式锁详解

前言 今天给大家带来一篇关于分布式锁的好文,关于分布式系统下的内容,博主已经写了好几篇了,也收获了大家的不少好评。分布式系统在目前的开发中所占的比重还是比较大的,如果你还没接触过分布式系统,那么欢迎你去学习…

操作文件 --Java EE

目录 一、文件的概念 二、文件的目录(directory) 三、文件路径(Path) 四、文件的分类 五、文件的操作 1.文件系统的操作 1.1创建文件--createNewFile( ) 1.2删除文件--delete( ) 和 deleteOnExit( ) 1.3文件改名--renam…

2023ICPC西安邀请赛

比赛完由于被旅游、赶ddl、上班等等各种事情影响,导致我现在才有时间可以写写小作文,这中间隔得时间有点长了,已经不知道从哪开始说起了,灵感也都流失了… before Friday 比赛前一个周,我的队友djk,也是我…

HNU-计算机系统-Challenge

Challenge 计科210X wolf 202108010XXX 本题是从属于第七次讨论课的个人题,听说做了有加分?我来试试。 下面是相关报告。 题目: C 语言的初学者第一个编写的 C 代码一般是如下所示的“ #include <stdio.h> int main() {printf("Hello, World!");

003 - STM32固件库GPIO(三)位带操作

目前掌握的对GPIO引脚的输入输出操作只能使用BSRRL/H、I/ODR寄存器&#xff0c;记得以前学51的时候&#xff0c;对于引脚的输入输出可以采用关键字sbit实现位定义,例如 sbit LED1 P1^3;在STM32中没有类似于sbit一样的关键字&#xff0c;但是提供了位带操作来实现类似于51的为…

网络协议与攻击模拟-11-DHCP协议原理

DHCP 协议 1、掌握 DHCP 的工作原理 2、会在 Windows server 上去部署 DHCP 服务 3、抓流量 &#xff0e;正常 收到攻击后 一、 DHCP 1、 DHCP 基本概念 dhcp &#xff08;动态主机配置协议&#xff09;&#xff1a;主要就是给客户机提供 TCP / IP 参数&#xff08; IP 地…

微信小程序nodejs+vue社区居民健康服务系统uniapp

系统分为社区居民&#xff0c;管理员&#xff0c;县区工作员&#xff0c;社区工作员三个角色 县区工作员的主要功能&#xff1a; 1.对社区的工作人员进行添加&#xff0c;修改&#xff0c;删除&#xff0c;查询 2.疫情专栏的信息进行添加&#xff0c;修改&#xff0c;删除&…

特瑞仕 :8种PCB接地方案+14种PCB接地技巧

​在PCB设计中&#xff0c;接地是非常重要的一环&#xff0c;它涉及到整个电路的性能、可靠性和EMI等问题。在实际设计中&#xff0c;有多种接地方案和技巧可供选择&#xff0c;如何选择合适的接地方案和技巧对于设计的成功至关重要。本文将详细介绍8种常见的PCB接地方案和14种…

【软考】系统集成项目管理工程师 第1章 信息化知识

文章目录 1.1 信息与信息化1.1.1 信息1.1.2 信息系统1.1.3 信息化1.1.4 国家信息化体系要素1.1.5 信息技术发展趋势 1.3 电子政务1.3.1电子政务的概念和内容1.3.2我国电子政务开展的现状1.3.3电子政务建设的指导思想和发展方针1.3.4电子政务建设的发展方向和应用重点 1.4 企业信…

分布式锁问题_演示问题

通过idea创建两个服务 启动Nginx服务 下载Nginx windows服务&#xff0c;官网nginx: download 当然我这里提供了&#xff1a; 我们打开nginx的conf目录&#xff0c;然后打开配置文件nginx.conf进行配置&#xff1a; upstream test{ server localhost:9090 ; se…

geoserver跨域问题多种解决方案

geoserver发布服务完成之后&#xff0c;很重要的一个应用场景是前端服务调用&#xff0c;来展示服务数据&#xff0c;那么很可能遇到一个跨域问题&#xff0c;今天我们分享一下跨越问题的多种解决方案&#xff0c;来适用不同需求的业务场景。 一、nginx服务均衡策略 如果你的…

Spring:Spring 框架概述、IoC 设计思想、依赖注入、各种配置

文章目录 Spring&#xff1a;Day 01一、简介1. 概述2. Spring 组成 二、IoC 设计思想三、编写一个 Spring四、IoC 创建对象方式五、Spring 配置1. 别名2. Bean 的配置3. import 六、依赖注入1. 搭建环境2. Set 注入3. 总结补充&#xff1a;c 命名和 p 命名空间注入 七、Bean 的…

1.nginx基础学习笔记

1.nginx基础 一.Nginx介绍 Nginx是十分轻量级的HTTP服务器。Nginx&#xff0c;它的发音为“engine X”&#xff0c;是一个高性能的HTTP和反向代理服务器&#xff0c;同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站…

Cisco AnyConnect Secure Mobility Client 4.10.07061 (macOS, Linux, Windows)

Cisco AnyConnect Secure Mobility Client 4.10.07061 (macOS, Linux, Windows) Cisco Secure Client&#xff08;包括 AnyConnect&#xff09; 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-anyconnect-4/&#xff0c;查看最新版。原创作品&#xff0c;转载请保…

Apache Kafka - 安装注意事项

文章目录 概述安装Kafka配置Kafka启动Kafka配置注意事项导图 概述 在现代的大数据时代&#xff0c;消息队列成为了极为重要的组件。Kafka作为一种高吞吐量、低延迟、可扩展的分布式发布订阅消息系统&#xff0c;在大数据领域得到了广泛的应用。来&#xff0c;这里我们将介绍如…

【场景方案】如何去设计并二次封装一个好用的axios,给你提供一个好的参考(1.0版)

文章目录 前言文件结构建议封装的文件结构接口管理文件 二次封装axios的初始配置initutilswebConfig 再封一层环境配置使用 前言 以下演示基于vue3与element-plus 文件结构建议 封装的文件结构 把二次封装axios所有有关的代码全部放在request文件夹中&#xff0c;其中init.js…

【系统移植】SD卡 分区

目录 1、分区框架 2、清空磁盘分区 3、开始分区 4、格式化分区 1、分区框架 制作SD卡时&#xff0c;我们需要对 SD 卡进行分区&#xff0c;每个区存入对应的内容&#xff0c;整体框架如下&#xff1a; 第二扇区&#xff1a;uboot程序从这里开始存储&#xff0c;最开始的第…

Class 07 - 功能包的安装和 tidyverse 介绍

Class 07 - 功能包的安装和 tidyverse 介绍 tidyverse 简介功能包&#xff08;package&#xff09;的安装tidyverse 的安装 功能包&#xff08;package&#xff09;的加载tidyverse 的加载 功能包&#xff08;package&#xff09;的更新tidyverse 核心功能browseVignettes 函数…