狂拿offer,这12道性能测试面试题你会多少?不要再被挖坑了

news2024/11/26 15:29:51

目录:导读

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


前言

1、性能测试包含了哪些软件测试(至少举出3种)?

参考答案:负载测试、压力测试、容量测试。

负载测试:负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。

压力测试:强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。

容量测试:确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

或者在下面选择几项:
并发测试 - 测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题

基准测试 - 比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。

争用测试:- 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。

性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。

负载测试- 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。

强度测试- 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。

容量测试- 核实测试用户同时使用软件程序的最大数量

2、请问什么是性能测试、负载测试、压力测试?

答:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试、压力测试参考答案如上题。

3、什么测试是在给定的在给定的测试环境下进行,考虑被测系统的业务压力量和典型场景?

答:负载测试。
负载测试是用来测定系统饱和状态、确定阀值。

其特点有:
1)这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到如“响应时间不超过10秒”,“平均CPU利用率低于65%”等指标。

2)这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景,另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。

3)这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。特别是该的Weblogic 和库的性能调优。

4、什么时候可以开始执行性能测试?

答:在产品相对比较稳定,功能测试结束后。灵活性比较强。

5、简述性能测试的步骤?

答:熟悉应用,了解应用的架构、功能逻辑。

测试需求:
1)需要将开发给定的需求转为吞吐量和响应时间。
2)根据测试目的,细化需求

测试准备:
测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。

测试执行:
测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况:
客户端的系统资源(cpu、io、memory)情况
服务端的系统资源(cpu、io、memory)情况
服务器的jvm运行情况
服务端的应用情况,看是否有异常
响应时间、吞吐量等指标
系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。
JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。
响应时间、吞吐量等,由grinder提供。

上述这些信息,一般在测试结束后,均需要归档整理,已备后续详细分析。

我们自己开发一套脚本,用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存,用于事后分析。

每次测试运行完以后,肯定会增加很多数据,需要考虑本次执行对数据量的影响,如果数据量的变化对后续测试会有影响,则需要清理数据。

6、你如何识别性能瓶颈?

答:RBI方法:重点测试“吞吐量”指标,因为RBI认定80%的系统性能瓶颈由吞吐量造成。

按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析性能工具:IBM、HP、OpenSource工具都支持。需使用分析模块、根据Weblogic、Oracle区别有专门的工具实现RBI。

7、性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?

答:是。模拟用户真实的业务操作。创建参数列表,用参数替换固定的文本。

8、你如何设计负载?标准是什么?

答:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。

主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;

事务信息告诉我们事务名及优先级,在设计场景时可以参考。

9、解释5个常用的性能指标的名称与具体含义?

答:响应时间、并发用户数,吞吐量,性能计数器,TPS,HPS

响应时间:指的是“系统响应时间”定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。
最大并发用户数:有两种理解方式。

一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。

另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。

吞吐量:是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。

性能计数器(Counter)是描述服务器或操作系统性能的一些数据指标。例如,对Windows 系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。

思考时间(Think Time),也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。

从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Think 的函数,使得脚本在执行两个操作之间等待一段时间。

TPS:Transaction per second,每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。

点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。

10、描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点?

答:用户:重点关注打开速度及响应时间。
开发:重点关注响应时间和数据库交互。
管理员:重点关注用户感受到的软件性能、如何利用管理功能进行性能调优、如何利用其他软硬件手段进行性能调优。

11、请分别针对性能测试、负载测试和压力测试试举一个简单的例子?

答:性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。

负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。

压力测试:逐步加压,从而使“响应时间超过10秒”,“服务器平均CPU利用率高于90%”等指标来确定系统能承受的最大负载量。

12、请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?

答:在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。

结合业务信息设计操作场景总结出需测试的性能关键指标。执行用例后根据提取关键性能指标来分析是否满足性能需求。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

坚持自己的信念,即使前路艰辛,也要勇敢前行;追求卓越的目标,即使遇到困难,也要坚持不懈。只有付出不懈的努力,才能创造出属于自己的璀璨人生。

在征途中,不要停下脚步;在挑战前,不要退缩。勇敢攀登高峰,用汗水浇灌梦想,坚持奋斗,才能创造出令人瞩目的辉煌成就!

拥抱挑战的勇气,追逐梦想的决心,坚持不懈的努力,才能驶向成功的彼岸。即使跌倒,也要站起来,永不放弃,用奋斗点亮人生,创造出属于自己的辉煌!

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

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

相关文章

使用Scrapy框架和代理IP进行大规模数据爬取

目录 一、前言 二、Scrapy框架简介 三、代理IP介绍 四、使用Scrapy框架进行数据爬取 1. 创建Scrapy项目 2. 创建爬虫 3. 编写爬虫代码 4. 运行爬虫 五、使用代理IP进行数据爬取 1. 安装依赖库 2. 配置代理IP和User-Agent 3. 修改爬虫代码 4. 运行爬虫 六、总结 一…

Verilog学习记录

目录 一、Verilog简介 (一)Verilog 的主要特性 (二)Verilog的主要应用 (三)Verilog设计方法 二、Verilog基础语法 (一)标识符和关键字 (二)Verilog数据…

多模态推荐系统综述:一、特征交互 Bridge

一、特征交互 挑战1.如何融合不同语义空间中的模态特征并获得每种模态的偏好。GNN注意力 挑战2.如何在数据稀疏的情况下获得推荐模型的全面表示。对比学习解缠学习 挑战3. 如何优化轻量级推荐模型和参数化模态编码器。 1. Bridge 侧重于考虑多模态信息来捕获用户和项目之间的…

Camtasia2024中文绿色版本下载安装详细步骤教程

Camtasia2024是一款功能强大的屏幕录制和视频编辑软件。它可以帮助用户轻松地记录电脑屏幕上的任何操作,并可以将录制的视频进行编辑和制作成高质量的视频教程、演示文稿、培训课程等。 Camtasia具有直观的界面和易于使用的工具,包括添加文本、音频、动…

深度学习|4.7 参数和超参数

4.7 参数和超参数 超参数是指需要用户提前设置好的参数,这些超参数最终会影响到参数的数值(相当于参数是动态调整得到的) 学习率的选取 最优学习率应该能使得代价函数趋于一个较低的常数。

【金猿CIO展】是石科技CIO侯建业:算力产业赋能,促进数字经济建设

‍ 侯建业 本文由是石科技CIO侯建业撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 是石科技(江苏)有限公司成立于2021年,由国家超级计算无锡中心与…

信息系统安全——基于 KALI 和 Metasploit 的渗透测试

实验 2 基于 KALI 和 Metasploit 的渗透测试 2.1 实验名称 《基于 KALI 和 Metasploit 的渗透测试》 2.2 实验目的 1 、熟悉渗透测试方法 2 、熟悉渗透测试工具 Kali 及 Metasploit 的使用 2.3 实验步骤及内容 1 、安装 Kali 系统 2 、选择 Kali 中 1-2 种攻击工具&#xff0c…

x-cmd pkg | usql - SQL 数据库的通用交互界面

目录 简介首次用户功能特点竞品和相关作品进一步阅读 简介 “usql” 是一个基于命令行的数据库客户端工具,它允许用户连接和管理多种类型的数据库。usql可以在多个操作系统上运行,包括 Linux、macOS 和 Windows。它还具有插件系统,可以根据需…

一文读懂「Self Attention」自注意力机制

前言:Self-Attention是 Transformer 的重点,因此需要详细了解一下 Self-Attention 的内部逻辑。 一、什么是自注意力机制? 就上图为例,老实告诉我当你第一眼看到上图时,你的视线停留在哪个位置?对于我这种…

鸿蒙开发之如何查看界面层级

首先,需要是在真机或模拟器已经是run的状态。 然后点击deveco studio 的 tools工具栏的ArkUl Inspector 然后界面下面显示出层级显示卡,但还看不到 然后选择一下进程please select a process 就能显示了

【Android Studio】创建第一个APP工程及生成APK安装包

🌟博主领域:嵌入式领域&人工智能&软件开发 前言:本文详细介绍创建Android Studio第一个APP工程及打包生成APK安装包。 如下两个博客我记录了第一次创建项目时出现的问题,若你也遇见了同样的问题,可参考&#…

vue简体繁体互转无需做字库

第一种方法 vue-i18n 需要自己写字库库很麻烦,而且不支持后端传值 第二种 opencc 这个库前端去使用的时候 数据较多的情况非常慢.影响使用 第三种 language-hk-loader npm i language-hk-loader 从其他博客中看到的一种,很方便不需要写字库,但是在打包的时候去整体的去翻译…

基于深度学习的停车位关键点检测系统(代码+原理)

摘要: DMPR-PS是一种基于深度学习的停车位检测系统,旨在实时监测和识别停车场中的停车位。该系统利用图像处理和分析技术,通过摄像头获取停车场的实时图像,并自动检测停车位的位置和状态。本文详细介绍了DMPR-PS系统的算法原理、…

【Scala】——变量数据类型运算符

1. 概述 1.1 Scala 和 Java 关系 1.2 scala特点 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如&#…

vue3 响应式api中特殊的api

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录一、shallowRef()二、triggerRef()三、customRef()四、shallowReactive()五、shallowReadonly()六、toRaw()七、markRaw()八、effectScope()九、getCurrentScope() 一、shallowRef() shallowRef()是一个新的响…

我是内网灵活的狗之渗透之红日靶场 stack之用户域渗透

接上回 我们现在准备对域内的用户靶机进行一下扫描 因为对所有的端口进行扫描的话 会导致扫描时间过长 我们这里只对部分重要端口进行扫描 看见445端接口开着,所以我们尝试连接445 的漏洞 用永恒之蓝漏洞连接后,尝试用这个漏洞,添加新的用…

代码随想录day22 二叉树开始进入无固定方法阶段

235. 二叉搜索树的最近公共祖先 题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可…

小程序实现绘制图片 保存到手机

HTML <template><view><canvas canvas-id"myCanvas" :style"{height:380px,width:wWidthpx,background:#FFFFFF}"></canvas><view class"textCenter"><button click"saveCanvas">保存图片</b…

Python从入门到网络爬虫(读写Excel详解)

前言 Python操作Excel的模块有很多&#xff0c;并且各有优劣&#xff0c;不同模块支持的操作和文件类型也有不同。最常用的Excel处理库有xlrd、xlwt、xlutils、xlwings、openpyxl、pandas&#xff0c;下面是各个模块的支持情况&#xff1a; 工具名称.xls.xlsx获取文件内容写入…

led恒流式驱动电源芯片一览表

LED恒流式驱动电源芯片是一种用于驱动LED灯的关键组件。它能够稳定地提供恒定的电流&#xff0c;确保LED灯的亮度和颜色始终保持一致。 LED恒流式驱动电源芯片通常由电源管理单元、恒流输出部分和保护电路组成。电源管理单元负责转换输入电压为恒定的直流电压&#xff0c;并通…