当前位置: 首页 > news >正文

性能测试面试题汇总

稳定性测试的怎么挑选的接口?

1、频繁使用的接口:选择那些被频繁使用的接口,因为这些接口可能会面临更大的负载和并发访问,从而可能导致性能问题。
2、核心功能接口:选择那些实现系统核心功能的接口,因为这些接口的故障可能会导致整.个系統的故障。
3、外部依赖接口:选择那些与外部系统通信的接口,例如第三方 APl数据库、消息队列等等,因为这些接口的稳定性可能对系统整体性能和可用性产生影响。
4、流量高的接口:选择那些通常会有高流量负载的接口进行测试,这些接口可能会在高峰期经历高负载,而测试它们可以验证系统是否能够在高负载情况下正常运行。
5、关键路径接口:选择那些在系统关键路径上的接口,因为这些接口可能会导致系统性能下降或系统故障。
6、据库交互的接口:选择那些与数据库交互的接口进行测试,这些接口会产生数据库负载。测试这些接口可以确保系统能够稳定地处理数据库交互,而不会出现性能问题。
7、消息队列接口:这些接口允许不同的应用程序或模块之问异步地发送消息。在稳定性测试中,需要验证消息队列接口是否能够处理高并发的消息传递请求。
8、长时问运行的接口:这些接口通常需要较长的处理时间,如长时问查询、批量处理等。这些接口可能会在运行期间出现性能问题或故障。

性能测试中常见的指标有哪些?

1、响应时问 (Response Time):从用户发起请求到收到响应的时间,通常以毫秒为单位。这是衡量系统性能的关键指标之一。
2、吞吐量 (Throughput):单位时间内能够处理的请求数量。通常以每秒钟处理的请求数量(TPS) 来衡量。
3、并发用户数(Concurrency):同时处理的用户数,可以用于确定系统在负载压力下的承载能力。
4、CPU使用率 (CPU Utilization):系统中CPU的占用率。
5、内存使用率 (Memory Utilization) :系统中内存的占用率。如果内存使用率过高,可能会导致系统变慢或崩溃。
6、网络延迟 (Network Latency):发送请求和接收响应之问的时间差。这通常是网络速度和响应时间的重要组成部分。
7、错误率(Error Rate) :处理请求时发生错误的百分比。这对于确定系统是否可靠和稳定非常重要。
8、磁盘使用率 (Disk Utilization) :系统磁盘的占用率。

性能测试如何发现并定位到数据库的问题?

以项目是多个微服务+MysQL数据库为例:可以基于promethues+gratana+mysql_exporter监控mysal数据库性能指标,同时使用skywalking 做mysal的链路监控,如果检测到在数据库层面消耗时间过长,可以结合 profiling 工具分析如下性能指标:
1、连接数:同时连接到MySQL服务器的客户端数量。
2、查询数和查询响应时问:MySQL服务器接收到的查询数量和查询响应时间。
3、缓存命中率:查询在查询缓存中找到的百分比。
4、锁定等待时间:等待锁定的时问长度,包括共享锁和排它锁等待的时问。
5、磁盘使用率:MysQL服务器对磁盘进行读取和写入操作的使用率。
6、内存使用率:MySQL服务器使用的系统内存占总内存的百分比。
7、CPU使用率:MySQL服务器使用的CPU占总CPU 使用率的百分比。
8、慢查询数量和响应时间:查询执行时 间超过指定时间阈值的查询数量和响应时间。
9、错误日志:记录 MySQL服务器发生错误的日志,可以通过分析错误日志来了解MySQL服务器的问题。
10、慢查询日志:记录执行时间超过指定时间阈值的查询的日志,可以通过分析慢查询日志来了解MySQL服务器的查询问题。
以上性能指标出现问题都可能导致系统整体性能下降,借助工具进一步定位是SQL问题、锁定阻塞问题还是索引、表设计问题。

如何开展性能测试?

1、进行性能测试需求调研和准备
在进行性能测试之前,需要先了解测试的目标、需求和限制,以确保测试可以精准地反映实际场景。通常需要了解系统的架构、用户数量、交互类型、使用频率等信息。同时,需要组建性能测试团队并选择适合的测试工具和环境。
2、确定性能测试范国、方法和目标确定测试范围可以帮助测试人员集中精力测试关键场景,而不是无脑地测试每个功能。性能测试方法通常包括负载测试、压力测试、容量测试、稳定性测试等。针对每个测试方法,需要设定相应的性能测试目标,例如响应时间、,吞吐量、并发用户数、资源利用率等。
3、构建业务模型
基于实际的业务场景和用户行为,需要构建业务模型,模拟实际用户在系统中的操作。通过分析系统的访问日志,可以了解用户的行为模式、操作频率、访问路径等信息,从而构建出合适的业务模型。
4、编写性能测试方案
性能测试方案是性能测试的核心,它包括了测试的范围、方法、目标、测试场景、测试数据、测试工具、测试计划和执行流程等内容。根据项目的架构和业务特点,编写出详细的性能测试方案。
5、进行前端页面性能监控及分析
使用 Dynatrace Ajax Edition 等工具,可以对系统的前端页面进行性能监控和分析。通过监控页面的加载时问、资源请求、JavaScript执行等关键指标,可以深入了解前端页面的性能表现,并及时发现潜在的性能问题。
6、实施性能测试
基于 Jmeter、Locust、 Loadrunner等性能测试工具,开发性能测试脚本并设计测试场景,设置测试参数和指标监控,执行性能测试,收集测试数据并进行分析。在测试过程中,需要及时记录测试日志,包括测试结果、性能指标、错误信息等。
7、搭建性能监控平台
使用 Docker、Promethues、Grafana、InfluxDB、 Exporter、Skywalking 等开源工具,可以搭建一个完整的性能监控平台。通过对系统各个组件的监控和分析,可以深入了解系统的性能
8、代码瓶颈定位
如果监控到可能是代码级的瓶颈,可以基于JisualVM、Arthas等监控工具进行代码级监控及瓶颈定位。
9、根据要求生成相应的 《性能测试报告及优化方案》。

性能测试压力上不去的原因有哪些?

性能测试压力无法达到预期值的原因可能有多种,以下是一些常见的原因:
1、脚本设计不合理:脚本使用的语言或者逻辑过于复杂导致压力机出现瓶颈,比如数据加密等操作。
2、资源限制:测试环境的资源限制可能导致无法模拟预期的负载。例如,压力机的CPU、内存或网络带宽可能不足以支持生成所需的负载。
3、被测系统本身性能问题:被测系统本身可能存在性能问题,导致性能测试无法达到预期的负载水平。例如,应用程序中存在性能瓶颈,数据库操作不够高效,代码实现存在死循环、内存泄漏等问题等。
4、数据问题:测试数据的大小、分布和内容可能会影响负载测试的结果。测试数据可能过于简单或过于复杂,导致无法模拟真实的负载。
5、测试工具问题:测试工具可能存在问题,…例如无法正确处理多线程、网络延迟等情况,导致无法生成预期的负载。LoadRunner、Jmeter、Locust相同的用户数压力可能就不一样。
6、网络问题:测试环境与实际生产环境之问的网络差异可能会影响性能测试结果。例如,生产环境可能存在更多的网络延迟、丢包和带宽限制。
7、未考虑实际使用场景:性能测试可能未考虑实际使用场景。例如,测试可能过于 专注于单个功能或单个用户,而实际上需要考虑多个用户和复杂的工作流程。
8、测试过程错误:测试过程可能存在错误,例如测试用例不准确、测试数据不充分、测试环境设置不正确等等,导致无法生成预期的负载。
9、数据库或其他第三方服务的性能问题:如果被测系统依赖于其他服务,比如数据库或第三方服务,那么这些服务的性能问题也可能会影响到被测系统的性能测试结果。

性能面试的主要几个考核问题

可以通过下面的问题考核一下:
1、如何判断系统性能是否存在瓶颈?
2、针对容量场景,如何设计业务模型?
3、压力上不去的原因可能有哪些?
4、性能脚本是否加思考时间?
5、一台压力机可以运行多少线程?
6、性能监控方案是什么设计的?
7、怎么定位内存泄露的问题?
8、针对多个微服务项目如何全链路监控?
9、写过性能测试方案?包含哪些内容?
10、如何判断Linux内存不足?

相关文章:

性能测试面试题汇总

稳定性测试的怎么挑选的接口? 1、频繁使用的接口:选择那些被频繁使用的接口,因为这些接口可能会面临更大的负载和并发访问,从而可能导致性能问题。 2、核心功能接口:选择那些实现系统核心功能的接口,因为这…...

vue权限控制和动态路由

思路 登录:当用户填写完账号和密码后向服务端验证是否正确,验证通过之后,服务端会返回一个token,拿到token之后(我会将这个token存贮到localStore中,保证刷新页面后能记住用户登录状态)&#xf…...

利用正则表达式删掉代码中的所有注释-pycharm为例

首先删除注释 打开您想要删除注释的Python文件。 使用快捷键 Ctrl Shift R 打开 "Replace in Files"(在文件中替换)对话框。 在 "Find"(查找)框中输入以下正则表达式,以查找所有行中的注释内容…...

【java基础】内部类、局部内部类、匿名内部类、静态内部类

内部类 内部类就是定义在另一个类中的类。我们使用内部类的原因主要有以下两点 内部类可以对同一个包中的其他类隐藏内部类方法可以访问定义这个类的作用域中的数据,包括原本私有的数据 public class A {class B {} }我们使用内部类可以访问外部类的所有属性&…...

react renderProps学习记录

react renderProps学习记录1.引入2.改一下呢3.再改一下呢4.总结一下如何向组件内部动态传入带内容的结构(标签)?children propsrender props1.引入 上代码: import React, { Component } from react import ./index.css export default class Parent extends Com…...

关于tf.gather函数batch_dims参数用法的理解

关于tf.gather函数batch_dims参数用法的理解0 前言1. 不考虑batch_dims2. 批处理(考虑batch_dims)2.1 batch_dims12.2 batch_dims02.3 batch_dims>22.4 batch_dims再降为12.5 再将axis降为12.6 batch_dims<02.7 batch_dims总结3. 补充4. 参数和返回值5. 其他相关论述6. 附…...

日常操作linux常用命令

cd /mnt/opt/cqstt/logs/stt-erp docker logs -f --tail1000 stt-erp # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的…...

【Java集合框架】篇二:Collection接口方法

JDK不提供此接口的任何直接实现类&#xff0c;而是提供更具体的子接口&#xff08;如&#xff1a;Set和List&#xff09;去实现。 Collection 接口是 List和Set接口的父接口&#xff0c;该接口里定义的方法既可用于操作 Set 集合&#xff0c;也可用于操作 List 集合。方法如下…...

PHP入门指南:简单易学的语法和丰富的调试工具与安全性最佳实践

PHP是一种非常流行的服务器端编程语言&#xff0c;它被广泛地应用于Web开发中。如果您想学习Web开发&#xff0c;那么PHP是一个非常好的选择。在本文中&#xff0c;我将介绍PHP的一些基础知识&#xff0c;包括语法、变量、函数、数组、数据库连接、调试和安全性等。PHP的语法PH…...

前端面试题--HTML篇

一、src和href的区别src指向外部资源的位置&#xff0c;指向的内容会嵌入到文档中当前标签所在的位置&#xff1b;href指向网络资源的位置&#xff0c;建立和当前元素或当前文档之间的链接。二、对HTML语义化的理解根据内容的结构化&#xff0c;选择合适的标签。优点&#xff1…...

SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮

导入elasticsearch依赖在pom.xml里加入如下依赖&#xff1a;<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>非常重要&#xff1a;检查依赖版本…...

常用Swagger注解汇总

常用Swagger注解汇总 前言 在实际编写后端代码的过程中&#xff0c;我们可能经常使用到 swagger 注解&#xff0c;但是会用不代表了解&#xff0c;你知道每个注解都有什么属性吗&#xff1f;你都用过这些属性吗&#xff1f;了解它们的作用吗&#xff1f;本文在此带大家总结一下…...

关于 TypeScript 声明文件

declare var 声明全局变量declare function 声明全局方法declare class 声明全局类declare enum 声明全局枚举类型declare namespace 声明&#xff08;含有子属性的&#xff09;全局对象interface 和 type 声明全局类型export 导出变量export namespace 导出&#xff08;含有子…...

SpringBoot学习-原理篇

SpringBoot原理篇springboot技术本身就是为了加速spring程序的开发的&#xff0c;可以大胆的说&#xff0c;springboot技术没有自己的原理层面的设计&#xff0c;仅仅是实现方案进行了改进。将springboot定位成工具&#xff0c;你就不会去想方设法的学习其原理了。就像是将木头…...

目标检测YOLOv5数据集怎么找?

完整的配置-标注-训练-识别在我这篇博客小白YOLOv5全流程-训练实现数字识别_yolov5数字识别_牛大了2022的博客-CSDN博客 模型部分剖析可以看我每周深度学习笔记部分。关于训练的数据集怎么搞很多人问过我&#xff0c;我在这篇文章给大家一点我的经验和建议。 数据集是什么 简…...

安卓短信自动填充踩坑

安卓短信自动填充踩坑 前言 最近弄了个短信自动填充功能&#xff0c;一开始觉得很简单&#xff0c;不就是动态注册个广播接收器去监听短信消息不就可以了吗&#xff1f;结果没这么简单&#xff0c;问题就出在机型的适配上。小米的短信权限、荣耀的短信监听都是坑&#xff0c;…...

【抽象类和接口的区别】

抽象类和接口都是Java中实现多态的机制&#xff0c;它们都是用来约束子类必须要实现的方法。但是它们有以下区别&#xff1a; 实现方式 实现方式&#xff1a;抽象类是一个类&#xff0c;而接口是一个接口。一个类只能继承一个抽象类&#xff0c;但可以实现多个接口。 构造方…...

接口导出文件功能

1.写接口 export function getExport(params) { return fetch({ url: ******.export, method: post, data: params, responseType:blob, }) } 2.编写前端页面 <el-button :loading"exportDisable" :disabled&quo…...

深圳大学计软《面向对象的程序设计》实验9 期中复习

A. 机器人变身&#xff08;类与对象&#xff09;【期中模拟】 题目描述 编写一个机器人类&#xff0c;包含属性有机器名、血量、伤害值、防御值、类型和等级。其中血量、伤害和防御和等级、类型相关&#xff1a; 普通型机器人&#xff0c;类型为N&#xff0c;血量、伤害、防…...

python之异步编程

一、异步编程概述 异步编程是一种并发编程的模式&#xff0c;其关注点是通过调度不同任务之间的执行和等待时间&#xff0c;通过减少处理器的闲置时间来达到减少整个程序的执行时间&#xff1b;异步编程跟同步编程模型最大的不同就是其任务的切换&#xff0c;当遇到一个需要等…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...