2023最新性能测试八股文【附答案】,软测人必备!

1. 请描述什么是性能测试、什么是负载测试、什么是压力测试?

【参考答案】

性能测试:性能测试是和功能测试相对应的。根据用户场景进行的单个用户操作,是属于功能测试领域,主要是验证软件是否可以满足用户的功能需求。比如,单个用户使用系统,系统各项功能是否满足用户的需求。

如果把这1个用户的操作放大,变为100个,1000个,10000个用户同时操作软件,验证软件系统是否满足用户的需求。那么这个就是软件性能测试。通常使用性能测试工具对软件开展并发的访问,同时监控系统各项指标,比如CPU、内存、网络、磁盘等关键部件的使用情况。目标是发现软件在大用户量的情况下,系统的工作情况。性能测试是负载测试、压力测试、并发测试的统称。

负载测试:通过逐步加压的方式来确定系统的处理能力,确定系统能承受的各项阀值。

压力测试:逐步增加负载,使系统某些资源达到饱、极限甚至失效的测试。目的是用来发现系统的软件业务处理能力、系统硬件的极限处理能力等。

2. 公司中常用的性能测试工具有哪些,他们各自的特点是什么?

【参考答案】

公司中常用的工具有LoadRunner、Jmeter、Seagull等。其中LR是商用收费软件,费用比较高,很多小公司很难承受。LR功能强大,支持的协议广泛,拥有强大的录制功能。

Jmeter是开源免费项目,互联网公司用的较多,支持二次开发。支持添加控件进行扩展,目前在企业中应用广泛。

Seagull,在通讯领域中协议测试用的较多,是一款免费的工具,广泛用于Sip协议、Http协议、Diameter协议的系统的性能测试。

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

【参考答案】

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

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

4. 请问你是在什么时候开始开展性能测试的?

【参考答案】

通常在产品相对比较稳定,主要功能开发完成,功能测试后期的时候,开展性能测试。

5. 请问性能测试中碰到网页中有验证码的时候,如何编写性能测试脚本绕开验证码?

【参考答案】

常见的方法有两种:第一种是临时让开发人员去掉验证码。第二种是让开发人员在后台预设一个固定的验证码,性能脚本中每一次都使用这个固定的验证码。

6. 性能测试中遇到哪些性能问题?

响应时间过长;内存溢出;cpu利用率过高

7. 概述一下性能测试流程?

分析性能需求。挑选用户使用最频繁的场景来测试。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下

制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试环境和测试工具

编写测试用例

搭建测试环境,准备好测试数据

编写性能测试脚本

性能测试脚本调优(脚本增强)。设置检查点、参数化、关联、集合点、事务,调整思考时间,删除冗余脚本

设计测试场景,运行测试脚本,监控服务器

分析测试结果,收集相关的日志提单给开发

回归性能测试

编写测试报告

8. 如何确定系统最大负载?

通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数

9. 你们系统哪些地方(哪些功能)做了性能测试?

选用了用户使用最频繁的功能来做测试,比如:登陆,搜索,提交订单

10. 你们的并发用户数是怎么确定的?

1)会先上线一段时间,根据收集到的用户访问数据进行预估

2)根据需求来确定(使用高峰时间段,注册用户数,单次响应时间等

11. 你们性能测试在什么环境执行?

参考答案:我们会搭建一套独立的性能测试环境进行测试

12. 你们性能测试什么时间执行?

基准测试:功能测试之后,系统比较稳定的时候再做。

负载测试:夜深人静,系统没人用的时候

13. 如何判断系统的性能是变好了还是变坏了

通过基准测试对比性能指标

14. 你们的性能测试需求哪里来?

1:客户提供需求

2:运维提供需求(负责服务器的稳定性)

3:开发提供需求

15. 如何实现200用户的并发?

在脚本对应的请求后添加集合点(绝对并发)

相对并发:线程组设置200线程数

16. 什么情况下要做关联,关联是怎么做的?

当脚本的上下文有联系,就用关联。

比如登录的token关联,增删改查主键id关联

17. 有验证码的功能,怎么做性能测试?

1、将验证码暂时屏蔽,完成性能测试后,再恢复

2、使用万能的验证码

18. 你们性能测试做的是前台还是后台?

BS项目:测试的是后台服务器的性能和浏览器端性能;

APP项目:手机端和服务器端的性能都做

19. 性能测试指标有哪些

响应时间、吞吐量、Cpu、内存、Io、disk

20. 如何脚本增强?

1、做参数化

2、做关联

3、添加事务

4、添加断言

5、添加集合点(jmeter的同步定时器)

6、添加思考时间(jmeter的统一随机定时器和固定定时器)

21. 该怎么去找这个最佳平衡点呢?

1.尽可能多的做不同并发数下的压测,记录下响应时间(1s以内)和最大tps,当然,服务器端,各个服务器的资源利用率在可接受范围内(每个公司不一样,我们是90%以内);

2.然后根据获取到的不同并发下的指标数据(并发数、tps、响应时间),画出上图,关注右侧的交点,即tps下降的地方和响应时间的交点,这个点的tps最大,如果响应时间在1s以内,此时并发数也是比较大的,这个点就可以认为是三个指标都不错的平衡点(当然,我这里把tps放在第一位优先考虑了,这个就看大家最在乎哪个指标了,排个优先级);如果响应时间大于1s,最佳平衡点就往左找,找到响应时间为1秒的点,此时对应的tps和并发值,就是最佳平衡点。总之,测试采样越多,获取的平衡点就越准确。

另外,如果是用loadrunner作为并发工具,并发过程中是可以增加或者减少并发用户数的,就不用必须压完一次,再调整并发数继续压,但是,loadrunner并发过程中调整了并发数,还是要尽可能跑久一点,比如10-15min。

篇幅限制,这里仅展示了部分问题和答案,需要完整版的可以点击下方卡片获取哦~

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

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

相关文章

【刷题之路Ⅱ】LeetCode 11.盛水最多的容器

【刷题之路Ⅱ】LeetCode 11.盛水最多的容器一、题目描述二、解题1、方法1——暴力法1.1、思路分析1.2、代码实现2、方法2——双指针2.1、思路分析2.2、代码实现一、题目描述 原题连接: 11.盛水最多的容器 题目描述: 给定一个长度为 n 的整数数组 height…

44岁了,我从没想过在CSDN创作2年,会有这么大收获

1998年上的大学,02年毕业,就算从工作算起,我也有20余年的码龄生涯了。 但正式开启博文的写作,却是2021年开始的,差不多也就写了2年的博客,今天我来说说我在CSDN的感受和收获。 我是真的没想到,…

QT串口助手开发3串口开发

系列文章目录 QT串口助手开发3串口开发 QT串口助手开发3系列文章目录一、UI界面程序的编写二、发送框程序编写一、UI界面程序的编写 根据上文的未解决问题:我们打开串口按钮打开后只能选择关闭串口,所以这个是循环的过程 上文链接 所以按钮对应的槽函数…

【C++】搜索二叉树(保姆教程)

🍅二叉树底层是堆,之前学习的简单二叉树不是大堆就是小堆,今天是二叉树进阶,一定要好好掌握! 目录 ☃️1.搜索二叉树介绍 ☃️2.底层实现 ☃️3.key模型和key,value模型 ☃️1.搜索二叉树介绍 右>根&…

蜻蜓优化算法Python代码(详细注释)

1.代入例子,目标函数求最优解迭代过程:蜻蜓算法流程:蜻蜓算法(Dragonfly Algorithm)是一种基于种群的优化算法,灵感来自于蜻蜓的群集行为。该算法通过模拟蜻蜓之间的吸引力和斥力,以及蜻蜓的移动…

IDEA好用插件:MybatisX快速生成接口实体类mapper.xml映射文件

目录 1、在Idea中找到下载插件,Install,重启Idea 2、一个测试java文件,里面有com包 3、在Idea中添加数据库 --------以Oracle数据库为例 4、快速生成entity-service-mapper方法 5、查看生成的代码 6、自动生成(增删查改&#xff0…

C++ | 对比inline内联函数和宏的不同点

文章目录一、前言二、宏的优缺点分析1、概念回顾2、宏的缺点3、宏的优点三、inline内联函数1、概念2、特性①:空间换时间🎁趣味杂谈:庞大的游戏更新包3、特性②:inline实现机制4、特性③:inline的声明与定义反汇编观察…

【链表OJ题(八)】相交链表

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(八)8. 相交…

【C++笔试强训】第三十二天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

Spring Bean实例化和初始化的过程

承接上文Spring Bean生命周期应用程序在运行过程中能否去读取当前系统的环境变量或系统属性?这里涉及到一个非常重要的接口Environment,System.getenv,System.getProperties都是获取当前系统环境变量,Environment接口的实现类AbstractEnviro…

浏览器前进与后退的秘密——栈 (栈的理解与实现)

文章目录前言:浏览器与栈的纠缠如何理解“栈”?如何实现一个“栈”?基于数组的顺序栈基于链表的链式栈解答开篇🐱‍🐉作者简介:大家好,我是黑洞晓威,一名大二学生,希望和…

每日算法题

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 作为篮球队教练,你需要从以下名单中选出 11 号位至 55 号位各一名球员,组成球队的首发阵容。 每位球员担任 11 号位至 55 号位时的评分如下…

CCF-CSP真题《202212-3 JPEG 解码》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号:202212-3试题名称:JPEG 解码时间限制:1.0s内存限制:512.0MB问题描述: 问题背景 四年一度的世界杯即将画上尾声。在本…

STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2)

STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2) 目录STM32 OTA应用开发——通过串口/RS485实现OTA升级(方式2)前言1 环境搭建2 功能描述3 程序编写3.1 BootLoader部分3.2 APP的制作4 修改工程中的内存配置4.1 Bootloader…

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

前一阵子有个徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬印象最深的就是下面几个问题:根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解?非关系型数据库…

HashMap扩容为什么每次都是之前的2倍

一. 背景介绍HashMap的底层是通过数组链表红黑树的数据结构来存放数据的。我们知道,当新添加元素的key值出现了hash碰撞,就会在同一个bucket中形成链表或者红黑树。当键值对的数量超过阈值时就会扩容,将以前处于同一个链表或者红黑树上的元素…

持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试

本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…

C语言刷题(6)(猜名次)——“C”

各位CSDN的uu们你们好呀,今天,小雅兰还是在复习噢,今天来给大家介绍一个有意思的题目 题目名称: 猜名次 题目内容: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选…

测试管理之路 —— 如何优化测试计划以提高测试覆盖率

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:🌎【Austin_zhai】🌏 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能&#xf…

Github的使用

Github Date: March 8, 2023 Sum: Github的使用 Github 了解开源相关的概念 1. 什么是开源 2. 什么是开源许可协议 开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议( Open Sou…