测试开发面试题记录

news2024/11/8 12:11:35

1. TCP与UDP的区别及应用场景

  • TCP (传输控制协议)

    • 特点:面向连接,可靠性高,数据顺序保证,流量控制和拥塞控制。
    • 应用场景:文件传输(FTP),电子邮件(SMTP),网页加载(HTTP/HTTPS)。
  • UDP (用户数据报协议)

    • 特点:无连接,不可靠,数据顺序不保证,开销小。
    • 应用场景:视频流,语音通话(VoIP),在线游戏,实时应用。

2. 浏览器键入URL后的流程

  1. DNS解析:将域名解析为IP地址。
  2. 建立TCP连接:与服务器建立TCP连接(三次握手)。
  3. 发送HTTP请求:浏览器向服务器发送请求。
  4. 服务器处理请求:服务器处理请求并返回响应。
  5. 浏览器渲染页面:接收响应并渲染网页。

3. HTTPS数字证书的认证过程

  1. 生成密钥对:网站生成公钥和私钥。
  2. 申请证书:向CA(证书颁发机构)申请证书,提供公钥。
  3. CA验证:CA验证申请者身份,颁发数字证书。
  4. 使用证书:网站使用证书进行HTTPS加密通信。

4. 堆和栈的区别及数据结构

    • 特点:动态分配内存,大小可变,管理复杂。
    • 数据结构:通常是链表或树结构。
    • 特点:后进先出(LIFO),内存分配速度快,大小固定。
    • 数据结构:数组或链表实现。

5. 如何避免内存泄漏

  • 及时释放资源:使用完毕后立即释放动态分配的内存。
  • 智能指针:使用智能指针(如C++中的std::unique_ptr)自动管理内存。
  • 代码审查:定期审查代码,查找未释放的内存。

6. Redis与MySQL的数据一致性保证

  • Redis

    • 持久化:使用RDB快照和AOF日志实现数据持久化。
    • 主从复制:主节点变更数据时,从节点同步更新。
  • MySQL

    • 事务:通过ACID属性保证数据一致性。
    • 锁机制:使用行锁和表锁防止并发冲突。

7. Redis的数据类型

  • 字符串:最基本的数据类型。
  • 哈希:键值对集合,适合存储对象。
  • 列表:有序字符串列表,支持推入和弹出操作。
  • 集合:无序字符串集合,支持集合运算。
  • 有序集合:带权重的字符串集合,支持范围查询。

8. 什么是数据库事务

  • 定义:一组操作的集合,要么全部执行成功,要么全部失败。
  • 特性:遵循ACID原则(原子性、一致性、隔离性、持久性)。

9. MySQL的分页查询

使用LIMITOFFSET实现分页:

sql

复制

SELECT * FROM table_name LIMIT page_size OFFSET (page_number - 1) * page_size;

10. 常用的排序算法及其特点

  • 冒泡排序:简单,稳定,时间复杂度O(n²)。
  • 选择排序:简单,不稳定,时间复杂度O(n²)。
  • 插入排序:简单,稳定,适合小规模数据,时间复杂度O(n²)。
  • 快速排序:高效,不稳定,时间复杂度O(n log n)。
  • 归并排序:稳定,时间复杂度O(n log n),适合大规模数据。

11. 服务端只注册一个实例吗

  • 一般情况下:在负载均衡环境中,多个实例可以同时运行,以提升可用性和扩展性。
  • 单实例:对于小型应用或开发环境,可能只注册一个实例。

12. 项目中JMeter压测关注的变量

  • 响应时间:请求到达和响应的时间。
  • 吞吐量:单位时间内处理的请求数量。
  • 错误率:请求失败的比例。
  • 并发用户数:同时发起请求的用户数量。

13. Linux查看服务器负载情况的命令

  • top:实时查看系统资源使用情况。
  • htop:增强版的top,提供更友好的界面。
  • uptime:查看系统运行时间和负载平均值。

14. 手撕两数之和

python

复制

def two_sum(nums, target):
    num_map = {}
    for index, num in enumerate(nums):
        complement = target - num
        if complement in num_map:
            return [num_map[complement], index]
        num_map[num] = index

15. SQL题直接口述怎么写

16. 项目中的高并发是如何做到的

17. Redis 集群如何保证数据一致性

18. JMeter 测试项目的时候是怎么做方案的

19. 项目中存在容量风险的模块有哪些

20 关于 MySQL 的容量上限是怎么发现的

  • 查询所有用户SELECT * FROM users;
  • 按年龄排序SELECT * FROM users ORDER BY age;
  • 插入新用户INSERT INTO users (name, age) VALUES ('Alice', 30);
  • 更新用户信息UPDATE users SET age = 31 WHERE name = 'Alice';
  • 删除用户DELETE FROM users WHERE name = 'Alice';
  • 负载均衡:使用负载均衡器将请求分发到多个服务器实例上。
  • 异步处理:使用消息队列(如 RabbitMQ、Kafka)进行异步处理,减轻实时请求压力。
  • 缓存策略:利用 Redis 等缓存技术,减少数据库访问频率。
  • 数据库优化:进行数据库分库分表,优化索引,提高查询效率。
  • 代码优化:使用高效的算法和数据结构,减少资源消耗。
  • 主从复制:数据在主节点写入后,会同步到从节点,从而保证数据一致性。
  • 分片机制:数据在多个节点之间分片存储,确保负载均衡。
  • 故障转移:主节点故障时,可以自动切换到从节点,保证系统的高可用性。
  • 一致性哈希:通过一致性哈希算法减少数据迁移的次数,维护数据分布的一致性。
  • 需求分析:明确测试目标,如响应时间、并发用户数等。
  • 设计测试计划:创建测试场景,包括线程组、请求类型、参数化、断言等。
  • 配置监控:使用监听器监控性能指标(如响应时间、错误率等)。
  • 执行测试:运行测试计划,模拟真实用户访问场景。
  • 结果分析:收集测试结果,分析性能瓶颈,生成报告。
  • 数据库:随着数据量的增加,可能导致性能下降。
  • 缓存层:如 Redis 的内存限制,可能导致缓存失效。
  • 消息队列:高并发时,可能出现消息堆积风险。
  • 文件存储:大文件上传和下载可能影响系统性能。
  • API网关:请求量过大可能导致网关成为瓶颈。
  • 性能监控:通过监控工具(如 Prometheus、Grafana)观察数据库性能指标。
  • 压力测试:使用 JMeter 等工具进行压力测试,模拟高并发场景,发现瓶颈。
  • 慢查询日志:开启慢查询日志,分析查询性能,识别高负载的查询。
  • 容量规划:根据数据增长趋势,定期评估数据库容量。

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

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

相关文章

vscode Comment Translate 反应慢 加载中...

Comment Translate 版本:v2.3.3 你是不是疑惑切换了 Bing 源也无法使用还是加载中… 那么可能你切换Bing后没重启vscode 下面是切换成功后的插件日志,一定要重启vscode,只是禁用和启用插件不行的,另外google是没用的,用…

网站架构知识之Ansible(day020)

1.Ansible架构 Inventory 主机清单:被管理主机的ip列表,分类 ad-hoc模式: 命令行批量管理(使用ans模块),临时任务 playbook 剧本模式: 类似于把操作写出脚本,可以重复运行这个脚本 2.修改配置 配置文件:/etc/ansible/ansible.cfg 修改配置文件关闭主机Host_key…

智启未来,趣享生活 德国卡赫举办系列新品首发活动

全球最大的清洁设备和清洁解决方案提供商德国卡赫,于11月6日在第七届进博会新品发布平台举办主题为“智启未来,趣享生活”的新品发布会,揭开全球首发新品可折叠式手持清洗机KHB Air以及亚洲首发新品商用清洁机器人KIRA CV 50的神秘面纱。作为…

xlsx.js 读取excel文件

需求:读取一个excel文件。 一、 使用antd的Upload组件的 【customRequest】方法。 互斥。此方法跟【onChange】方法互斥,即:不可同时出现。调用次数不一样。onChange方法会根据文件当前的上传状态从而被调用多次(读取中&#xff…

WPF中的依赖属性

1.创建项目后下载两个NuGet程序包 2.创建一个MyButton类继承Button MyButton类如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Contro…

Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hello大家好,我是小米!今天咱们来聊聊Java中的一个小而重要的知识点——初始化块。可能有的小伙伴一听这名字就觉得有点头大,这东西到底是干嘛的?为…

【Linux系列】字符串操作的艺术:删除前缀的 Shell 脚本技巧

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

nginx 部署2个相同的vue

起因: 最近遇到一个问题,在前端用nginx 部署 vue, 发现如果前端有改动,如果不适用热更新,而是直接复制项目过去,会404 因此想到用nginx 负载两套相同vue项目,然后一个个复制vue项目就可以了。…

Maven(六)mvn 命令将 jar 包推送到 远程/本地仓库

目录 一、deploy - 推送到远程仓库1.1 命令语法:1.2 执行结果:1.3 可能遇到的问题问题1:with status code 401问题2:with status code 405问题3:Cannot deploy artifact from the local repository 二、install - 推送…

WEB 应用防护系统的部署方式

在当今数字化飞速发展的时代,WEB 应用面临着来自各方的安全威胁,而 WEB 应用防护系统(WAF)的部署成为了保障网络安全至关重要的环节。以下将详细介绍几种常见的 WEB 应用防护系统部署方式。根据 WAF 接入网络后的工作方式&#xf…

Java——静态成员

一、静态变量(Static Variables) 1、静态变量是什么 静态变量,又被称为类变量,它使用 static 关键字修饰。静态变量是类级别的变量,在类加载时初始化。 2、静态变量的特点 类级别共享:静态变量在所有实…

Java | Leetcode Java题解之第542题01矩阵

题目: 题解: class Solution {static int[][] dirs {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};public int[][] updateMatrix(int[][] matrix) {int m matrix.length, n matrix[0].length;// 初始化动态规划的数组,所有的距离值都设置为一个很大…

996引擎 - 活捉NPC

996引擎 - 活捉NPC 引擎触发 - 引擎事件(QF)事件处理模块 GameEvent测试文件参考资料 引擎触发 - 引擎事件(QF) cfg_game_data 配置 ShareNpc1 可以将QM和机器人的触发事件全部转到 QF 引擎触发是通用的,TXT的所有触发转换成小写后在LUA中就可使用,如说明书中缺省可反馈至对接群…

【Linux系统编程】第四十三弹---多线程编程指南:线程终止方式与C++11中的thread

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、线程终止 1.1、pthread_exit() 1.2、pthread_cancel() 1.3、pthread_detach() 2、C11中thread 1、线程终止 问题7 …

【Mac】PD报错:无法为“Windows” 完成操作,虚拟机ID无效的解决办法

Parallels Desktop是Mac上一款非常常用的虚拟机软件,但是在使用过程中,可能会遇到一些问题不知道如何处理。比如有时会遇到PD报错:无法为“Windows 11”完成操作,虚拟机ID无效。 错误原因 电脑上安装过虚拟机,虚拟机被…

25-RVIZ CARLA插件

RVIZ插件(RVIZ plugin)提供了一个基于RVIZ(RVIZ) ROS包的可视化工具。 用RVIZ运行ROS桥接 RVIZ插件需要一个名为ego_vehicle的自车。要查看ROS-bridge使用RVIZ的示例,请在运行CARLA服务器的情况下执行以下命令: 1. 启用RVIZ启动ROS桥接: # …

spark-本地模式的配置和简单使用

python环境的安装 在虚拟机中,只能安装一个python的版本,若想要安装别的版本,则需要卸载之前的版本——解决方式,安装Anaconda 通过百度网盘分享的文件:Anaconda3-2021.05-Linux-x86_64.sh 链接:https://…

【算法】递归+回溯+剪枝:78.子集

目录 1、题目链接 2、题目 3、解法(回溯剪枝) 4、代码 1、题目链接 78.子集(LeetCode) 2、题目 3、解法(回溯剪枝) 思路: 枚举子集(答案)的第一个数选谁,第二个数选谁,第三个数选谁&#x…

Aop+自定义注解实现数据字典映射

数据字典 Web项目开发中,字典表的一般都会存在,主要用来给整个系统提供基础服务。 比如男女性别的类型可以使用0和1来进行表示,在存储数据和查询数据的时候,就可以使用字典表中的数据进行翻译处理。 再比如之前做的一个项目中宠物…

【NLP自然语言处理】深入探索Self-Attention:自注意力机制详解

目录 🍔 Self-attention的特点 🍔 Self-attention中的归一化概述 🍔 softmax的梯度变化 3.1 softmax函数的输入分布是如何影响输出的 3.2 softmax函数在反向传播的过程中是如何梯度求导的 3.3 softmax函数出现梯度消失现象的原因 &…