23年进阶高级测试,性能测试超细详解(附面试题+答案)一篇打通

news2025/1/14 1:15:01

目录:导读

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


前言

用户视角:
响应时间大概规范:
1-3秒,属于优的表现;
3-5秒,可以接受,属于中间的表现;
5秒以上,无法接受;

运维视角:
系统资源:一般大于70% cpu 内存 可能达到瓶颈

平均负载
所有的数据都是来自数据库:
连接数:连接数泄露(使用了连接数,但是没有释放);
读写速度:IOPS;
JVM(针对Java技术栈):Java应用程序的CPU和内存使用率
512M,CPU:1G 内存溢出/内存泄露:OOM

系统最大处理的任务数:
1亿,但是同时进行支付,5千万可以同时进行,另外的5千万就可以排队处理,排队的策略是什么?

按照线程的优先级来设置的 每个任务都是有优先级的,那么最大优先级是10,最小是1,默认是5 在系统资源不紧张的时候,优先级不是那么特别的突出 但是在系统资源特别紧张的时候,那么优先级高的优先执行

开发视角:
开发的关注度会更加的全面,毕竟代码都是程序员来编写的,具体可以汇总为如下:
前后交互的响应时间;
中间件的参数设置;
内存释放泄露;
连接数泄露;
是否存在不合理的内存使用方式;
是否存在不合理的线程同步方式;
系统中是否存在不合理的资源竞争;
系统架构&代码结构;

线程同步:
A和B两个任务,有100张车票,A和B同时进行抢购

加锁机制:A操作的时候,B不能操作,A操作完了,B才能够操作 解决办法:枷锁机制

测试视角:
用户关注的视角属于全栈性的,需要考虑用户视角的产品体验,也要监控以及关注运维视角和开发视角,所以性能测试中测试的具体工作职责可以总结为:

设计合理的场景和测试用例来验证系统的资源数据;
验证在高并发的情况下架构是否满足;
给架构师以及开发人员提供中间件配置参数的合理值范围;
使用技术手段监控系统,DB,中间件,全链路监控的方式来监控系统资源情况;

web前端:
所谓前端的性能目前也是性能测试中比较热门的技术之一,关注的点具体汇总为如下:
浏览器的资源加载(HTML解析,图片资源加载,CSS文件资源加载);
前端缓存技术的优化是否合理性;
前端与后端的交互性耗时;

性能测试模型

性能测试模型也可以理解为性能测试步骤,具体汇总为如下:
测试前期准备;测试工具技术引入;性能测试计划;测试设计与开发;测试执行与管理,数据收集;测试分析

测试前期准备:
1、梳理性能的目标(性能测试的目标是测试主导,然后测试制定出来后,和团队里面其他相关的人一起决定) 性能测试的目标参考依据是什么?是产品的需求文档以及产品的用户体量和系统的架构
2、性能测试的数据
3、性能测试场景的设计以及性能测试用例的设计

测试工具技术引入:
1、LoadRunner:HP公司研发的工业级别的性能测试工具,是收费的一款性能测试工具
2、JMeter:100%使用Java语言研发的性能测试工具,是开源的,互联网公司基本使用的都是该性能测试工具
3、Locust:是基于Python的协程来设计的性能测试工具,需要编写Python代码来进行性能测试
4、Gatling:是微服务架构下高性能的性能测试工具

性能测试计划:
1、明确每个性能测试的任务开始的时间和结束的时间
2、明确每个任务的具体负责人
3、明确性能测试工具

测试设计与开发:
使用选择好的工具/代码,来设计场景/编写代码来测试设计好的性能测试用例

测试执行与管理,数据收集:
1、多次测试执行,收集每次性能测试的数据(系统资源:CPU和内存,数据库资源:连接数和IOPS,JVM资源:内存资源 响应时间:最大,最小,平均,中位数,90%,95%,99%,吞吐量)

2、数据收集后的数据可视化展示

测试分析:
实际收集的结果,来得到最终的结论:吞吐量,响应时间等等,与期望的目标进行对比,来判断是否达到目标

性能测试面试题

面试题1:性能测试中,开发说需要添加服务器性能测试才能继续,你会怎么办?

不同意,测试环境服务器的配置与生产环境服务器的配置必须一致,这样出的结论才具有参考价值

面试题2:日常使用什么工具进行性能测试,性能测试的指标有哪些?

1、LoadRunner:HP公司研发的工业级别的性能测试工具,是收费的一款性能测试工具
2、JMeter:100%使用Java语言研发的性能测试工具,是开源的,互联网公司基本使用的都是该性能测试工具
3、Locust:是基于Python的协程来设计的性能测试工具,需要编写Python代码来进行性能测试

指标有:系统资源:CPU和内存,数据库资源:连接数和IOPS,JVM资源:内存资源 响应时间:最大,最小,平均,中位数,90%,95%,99%,吞吐量

面试题3:在性能测试之前,请根据顺序简述需要有哪些准备工作?

1、梳理性能的目标(性能测试的目标是测试主导,然后测试制定出来后,和团队里面其他相关的人一起决定) 性能测试的目标参考依据是什么?是产品的需求文档以及产品的用户体量和系统的架构

2、性能测试的数据
3、性能测试场景的设计以及性能测试用例的设计

面试题4:性能测试是怎么做的?

首先做好测试的前期准备,梳理好性能的目标,编写好性能测试的测试用例选择好要用的工具,编写好测试计划,使用选择好的工具或代码来设计场景或编写代码来测试设计好的测试用例,多次执行测试,收集每次数据,实际收集的结果,来得到最终结论

面试题5:请描述下 描述下你是怎么理解IOPS、吞吐量、TPS、QPS的?

IOPS是针对数据库的术语,用于磁盘的读写;
TPS是只系统每秒能处理的事务数量 QPS是指每秒的查询率;
吞吐量是指每秒的业务数;

面试题6:你是怎么理解软件的性能的?

性能对软件而言是一个指标,是衡量软件用户体验最核心的指标之一,给用户最直观的感受就是响应时间。

产品的性能指标有很多,但是主要的是响应时间和吞吐量

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有脚踏实地的努力,才能铸就辉煌人生的华章;不畏困难、勇往直前,方能超越自我、赢得成功的喜悦;奋斗不止,志存高远,唯有坚持不懈,方能创造属于自己的传奇。

只有拼尽全力,才能让梦想成真;只有坚持不懈,才能迎来辉煌。在每一次努力中,我们都在成长,不屈不挠的精神将引领我们走向成功的巅峰!

只有不断拼搏,才能超越自我,只有努力奋斗,才能创造奇迹;勇敢面对困难,追逐梦想的脚步永不停歇。时光匆匆,不留遗憾,唯有坚持付出,才能成就辉煌。相信自己,成就未来!

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

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

相关文章

从2050回顾2020,职业规划与技术路径(节选)补充

很多朋友问了其中一段: 文明的提升,源于机械/能源/信息/智能四大模式的转变。机械将自然力或人力更高效利用,如风车,能源以蒸汽机为代表开启工业革命,信息启动了互联网时代,智能将实现虚拟社区的主导模式。…

CS 144 Lab One

CS 144 Lab One 实验结构环境配置如何调试StreamReassembler 实现 对应课程视频: 【计算机网络】 斯坦福大学CS144课程 Lab 1 对应的PDF: Lab Checkpoint 1: stitching substrings into a byte stream 实验结构 这幅图完整的说明了CS144 这门实验的结构: 其中&am…

【C++】多线程编程三(std::mutexstd::mutex、std::lock_guard、std::unique_lock详解)

目录 一、线程间共享数据 1.数据共享和条件竞争 2.避免恶性条件竞争 二、用互斥量来保护共享数据 1. 互斥量机制 2.mutex头文件介绍 三、C中使用互斥量mutex 1. 互斥量mutex使用 2.mutex类成员函数 ① 构造函数 ② lock() ③ unlock() ④ try_lock() 四、使用std::…

本地服务器localhost:3000一直连接不上

1.检查使用端口3000的进程: 在Windows上,运行 netstat -ano | findstr :3000在Mac/Linux上,运行lsof -i :3000 这将列出当前使用端口3000的任何进程。您要终止这些进程以释放该端口。 2.检查防火墙规则: 确保您的防火墙允许连接到localhost:3000。在MacOS和Windows上,通常不…

vue2已有项目迁移vue3踩坑记录

升级部分所需package.json版本,如vue及相关ui 参考vue3项目升级 解决运行报错 configureWebpack: {// webpack pluginsplugins: [// Ignore all locale files of moment.js// new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), 修改为new webpack.IgnorePlug…

azkaban

访问地址 https://xxx.xxx.xxx.xx:8443/index启动azkaban cd /data/servers/azkaban/executor ./bin/start-exec.sh cd /data/servers/azkaban/server ./bin/start-web.sh修改访问数据库密码 cd /data/servers/azkaban/executor/confvim azkaban.propertiescd /data/servers…

电脑桌面远程连接?外网远程桌面连接内网服务器穿透设置

自己个人电脑远程桌面连接另台服务器时,就可以使用到远程连接的功能,如在公司网络管理员远程连接ERP服务器管理操作。 远程连接就是在远程连接另外一台计算机。当某台计算机开启了远程桌面连接功能后我们就可以在网络的另一端控制这台计算机了&#xff…

人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法

人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法 1.SFT 监督微调 1.1 SFT 监督微调基本概念 SFT(Supervised Fine-Tuning)监督微调是指在源数据集上预训练一个神经网络模型&#xff…

ORCA优化器浅析——ORCA core流程

DXL query messages is parsed and transformed to an in-memory logical expression tree that is copied-in to the MemoExploration 触发生成逻辑等价表达式的转换规则。探索阶段将新的群组表达式添加到现有组中,并可能创建新的组。Exploration results in addin…

Java性能优化-测试try-catch放在循环内和外的性能对比与业务区别

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化: Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_霸道流氓气质的博客-CSDN博客 使用如上方式测试Java中try-catch放在循环内和循环外是否有性…

NiuBi!简单且匿名的密码喷洒工具

工具介绍 通过 Amazon AWS 直通代理启动密码喷洒/暴力破解,为每次身份验证尝试转移请求的 IP 地址。这会动态创建 FireProx API,以实现更规避的密码喷射。 关注【Hack分享吧】公众号,回复关键字【230525】获取下载链接 小心帐户锁定&#xf…

Java 设计模式——工厂方法模式

目录 1.案例分析2.简单工厂模式2.1.结构2.2.案例实现2.2.1.抽象产品2.2.2.具体产品2.2.3.具体工厂2.2.4.测试 2.3.优缺点2.4.扩展 3.✨工厂方法模式3.1.介绍3.1.结构3.2.案例实现3.2.1.抽象工厂3.2.2.具体工厂3.2.3.测试 3.3.优缺点3.4.应用场景 1.案例分析 【需求】设计一个咖…

python获取职教云信息

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:项目。 目录 1、需求1.1、推荐课程1.2、课程详情 2、思路分析2.1、推荐课程完整代码 2.2、课程详情找到JSON数据…

4.2.tensorRT基础(1)-第一个trt程序,实现模型编译的过程

目录 前言1. hello案例2. 补充知识总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 基础-第一个 trt 程序&#x…

SlickGrid学习

options: 选项 设置 enableCellNavigation 启用单元格导航,可以点单元格 enableColumnReorder 启动拖拽列 example-colspan.html 跨列实例 AutoTooltips plugin 隐藏列文字时自动显现列标题全文 Checkbox row select column 增加选择列来选择行…

STM32入门学习之core_cm3问题

1.安装了keil之后,新建工程出现几百个关于core_cm3的问题,百思不得其解。后在网上查阅资料后,了解到可能是keil版本的问题,是因为我下载的keill版本太高了,内部不支持ARM5.06的编译器。出现很多关于core_cm3的问题是因…

使用java语言制作一个窗体(弹窗),用来收集用户输入的内容

前言 最近做的一个需求,有个逻辑环节是:需要从本地保存的xml文件中取出一个值,这个值是会变化的。然后项目经理就给我说,你能不能做一个小工具,让用户可以直接通过界面化操作将这个变化的值写入文件,不用再…

rv1126交叉编译

目录 一、解压sdk二、交叉编译出动态库sqlite3交叉编译opencv交叉编译一、解压sdk tar xzvf rv1126_rv1109_linux_sdk_v1.8.0_PureVersion.tar.gz 查看交叉编译工具链 pwd查看绝对路径/home

正斜杠“/” 和反斜杠 “\” 傻傻分不清?

Note, on your keyboard, the location of two different punctuation marks—/, or forward slash, and \, or backward slash (also known as backslash). As you read from left to right, the forward slash falls forward while the backslash falls backward; 引用自 《…

js逆向思路-区分各个瑞数版本vmp/3/4/5/6代

目录 一、如何区分是最新瑞数vmp反爬二、3/4/5/6代/vmp版本的瑞数网站特征举例三、瑞数反爬的解决思路四、推荐相关瑞数文章五、一些心得一、如何区分是最新瑞数vmp反爬 前言:本篇文章不会介绍详细的解决反爬的算法扣代码过程,只是一些经验闲谈,文章的末尾有相关的好的质量的…