测试开发面经总结(三)

news2024/9/22 7:26:43

TCP三次握手

TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。

一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态

客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序号」字段中,同时把 SYN 标志位置为 1,表示 SYN 报文。接着把第一个 SYN 报文发送给服务端,表示向服务端发起连接,该报文不包含应用层数据,之后客户端处于 SYN-SENT 状态。

服务端收到客户端的 SYN 报文后,首先服务端也随机初始化自己的序号(server_isn),将此序号填入 TCP 首部的「序号」字段中,其次把 TCP 首部的「确认应答号」字段填入 client_isn + 1, 接着把 SYN 和 ACK 标志位置为 1。最后把该报文发给客户端,该报文也不包含应用层数据,之后服务端处于 SYN-RCVD 状态。

客户端收到服务端报文后,还要向服务端回应最后一个应答报文,首先该应答报文 TCP 首部 ACK 标志位置为 1 ,其次「确认应答号」字段填入 server_isn + 1 ,最后把报文发送给服务端,这次报文可以携带客户到服务端的数据,之后客户端处于 ESTABLISHED 状态。

服务端收到客户端的应答报文后,也进入 ESTABLISHED 状态。第三次握手是可以携带数据的,前两次握手是不可以携带数据的

一旦完成三次握手,双方都处于 ESTABLISHED 状态,此时连接就已建立完成,客户端和服务端就可以相互发送数据了。

TCP的第一次握手在什么情况下,服务端会没有响应

在TCP协议中,第一次握手是指客户端发送一个SYN(同步)包到服务端,用于请求建立连接。在正常情况下,服务端收到SYN包后应该会回复一个SYN-ACK(同步-确认)包,表示同意建立连接。然后客户端再回复一个ACK(确认)包,建立连接成功。

服务端没有响应第一次握手的情况通常有几种可能的原因:

网络问题:可能是由于网络中的故障或者丢包导致服务端没有收到客户端发送的SYN包。

服务端负载过重:如果服务端处于高负载状态,处理不及时,可能会导致无法及时响应客户端的SYN包。

防火墙或网络设备过滤:某些防火墙或者网络设备可能会过滤或者延迟某些TCP包的传输,导致服务端没有收到客户端的SYN包。

服务端端口未监听:如果客户端尝试连接的服务端端口没有在服务端上监听(即没有应用程序在该端口上等待连接),服务端会忽略或者拒绝客户端的连接请求。

Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)

linux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

cat filename: 打开 filename 文件并将其内容输出到标准输出(通常是显示屏)。

tail -n +3000: tail 命令用于从文件末尾开始显示,-n +3000 表示从第3000行开始显示到文件末尾。

head -n 1000: head 命令用于从文件开头显示,默认为显示前10行,-n 1000 表示显示前1000行。

因此,这条命令的组合作用是先将文件 filename 从第3000行开始的内容输出,然后再从这个输出中取前1000行显示出来。

【二】显示1000行到3000行

cat filename | head -n 3000 | tail -n +1000

对测试的理解

对于软件测试,我自己是这样理解的:首先,软件测试就是为了发现程序错误而执行的过程,它的目的就是发现缺陷,保障系统的正常运行。并且,软件测试不仅是测试软件产品本身,还包括软件开发的过程。我认为软件测试是整个软件质量保证过程中重要的一部分,这也就是我选择软件测试这个行业的原因。

那作为测试工程师我们的职责有哪些呢?

软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。

主要职责有:编写测试计划,编写测试用例,搭建测试环境,执行测试,进行bug验证根据测试结果分析,完成上级及部门以及领导交办的任务...这些均需要我们具备良好的学习能力。

进程和线程的区别

1. 进程是一个运行的程序,是系统进行资源调度和分配的一个独立单位,进程中包含了线程,每个线程执行不同的任务。

2. 不同进程使用的内存空间是不同的,同一个进程下的线程共享内存空间。

3. 线程更加轻量,上下文切换的成本比进程要低。

4.对Python有哪些了解

Python是一种解释型语言。与C语言等语言不同,Python不需要在运行之前进行编译。

Python是动态语言,当您声明变量或类似变量时,您不需要声明变量的类型。

Python适合面向对象的编程,因为它允许类的定义以及组合和继承。Python没有访问说明(如C ++的public,private)。

在Python中,函数是第一类对象。它们可以分配给变量。类也是第一类对象

编写Python代码很快,但运行比较慢。Python允许基于C的扩展,例如numpy函数库。

Python可用于许多领域。Web应用程序开发,自动化,数学建模,大数据应用程序等等。

5.Python有哪些数据结构

列表list:有序,可变的集合

元组Tuple:有序,不可变的集合

字典Dictionary:无序的键值对集合

集合set:无序,不重复的集合、

字符串:String,不可变的字符序列

列表和元组的区别是什么

列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。

元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。

元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存。

这些区别结实率两者在设计哲学上的不同:

列表可被用于保存多个互相独立对象的数据集合

元组用于描述一个不会改变的事务的多个属性

两张表,查询出学生的成绩>80的姓名以及成绩

假设两张表,Students和Grades,其中 Students 表存储学生信息,Grades 表存储学生成绩信息,它们可能通过学生的ID关联。假设学生成绩存储在 Grades 表中,包括学生的ID和成绩,学生的姓名存储在 Students 表中,包括学生的ID和姓名:

select Students.name, Grades.grade from Students join Grades on Students.student_id = Grades.student_id where Grades.grades >80;

Students.student_id 和 Grades.student_id 是关联两张表的外键关系

Students join Grades on表示要将 Students 表和 Grades 表连接起来,形成一个更大的结果集,该结果集将包含两张表的相关信息。

你觉得测开的工作内容是什么

我自己下去大概了解了一下,就是测试和开发

1)业务质量保障:

2)工具平台开发:

3)专项测试/用户体验评测:

4)质量运营:

1)业务质量保障:参与业务需求分析、技术方案评审、可测性分析、测试方案设计、测试项目管理、性能压测、安全性测试、自动化实施、流水线建设、代码覆盖率分析、静态代码扫描及其他质量特性测试等 2)工具平台开发:自动化测试框架、流量回放平台、质量度量管理平台、事故管理分析平台、云测平台等 3)专项测试/用户体验评测:App性能评测、竞品分析、音视频专项、安全专项、稳定性专项等 4)质量运营:事故分析、质量报告、质量文化建设、bug治理、质量大盘建设等。

不论哪个方向,代码能力都是非常重要的准入门槛,2、3对算法等技术能力要求更高;1更偏向于测试管理方向;4需要具备敏锐的观察力、沟通交流以及push能力和创造性,能通过数据挖掘质量保障及研发流程、项目团队管理、技术方案等中的问题,并推进落实解决。

tcp/ip

网络接口层 网络层 传输层 应用层

域名解析过程

客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。

本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。

根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”

本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”

顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。

本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。

权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。

本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

至此,我们完成了 DNS 的解析过程。

http响应码

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

HTTP状态码分为五类:信息响应 (100–199),成功响应 (200–299),重定向 (300–399),客户端错误 (400–499)和服务器错误 (500–599)

死锁的产生

可归结为如下两点:

1)竞争资源;

2)进程间推进顺序非法;

a. 竞争资源:

系统中的资源可以分为两类:

可剥夺资源,是指某进程在获得这类资源后,该资源可以再被其他进程夺走,比如:CPU就属于可剥夺性资源;

不可剥夺资源,是指当系统把这类资源分配给某进程后,不能再强制收回,只能在进程将任务完成后、自行释放,比如:磁带机、打印机等。

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

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

相关文章

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…

数仓工具—Hive语法之排除特定列

排除特定列 Apache Hive是一个基于Hadoop HDFS的数据仓库框架,用于存储和分析大量数据。Apache Hive支持大多数关系数据库功能,如对大型表进行分区和根据分区列存储值。 在本文中,我们将检查从SELECT查询中排除Hive分区列的方法。 这个在我们需要表中大量列的时候,例如一…

【python】OpenCV—European Article Number

参考学习来自&#xff1a;OpenCV基础&#xff08;25&#xff09;条码和二维码扫的生成与识别 1 条形码介绍 EAN-13是欧洲物品编码&#xff08;European Article Number&#xff09;的缩写&#xff0c;是一种广泛使用的条形码标准&#xff0c;特别是在超级市场和其它零售业中。…

第二周周日学习总结

题目总结 1. 给你一个仅由数字组成的字符串 s&#xff0c;在最多交换一次 相邻 且具有相同 奇偶性 的数字后&#xff0c;返回可以得到的 字典序最小的字符串 。 如果两个数字都是奇数或都是偶数&#xff0c;则它们具有相同的奇偶性。例如&#xff0c;5 和 9、2 和 4 奇偶性…

zookeeper基础知识学习

官网&#xff1a;Apache ZooKeeper 下载地址&#xff1a;Index of /dist/zookeeper/zookeeper-3.5.7Index of /dist/zookeeperIndex of /dist/zookeeper/zookeeper-3.5.7 ZK配置参数说明&#xff1a; 1、tickTime2000&#xff1a;通讯心跳时间&#xff0c;zookeeper服务器与客…

Reinforced Causal Explainer for GNN论文笔记

论文&#xff1a;TPAMI 2023 图神经网络的强化因果解释器 论文代码地址&#xff1a;代码 目录 Abstract Introduction PRELIMINARIES Causal Attribution of a Holistic Subgraph​ individual causal effect (ICE)​ *Causal Screening of an Edge Sequence Reinforc…

Three.js 对创建的物体进行位置旋转缩放修改。

1.在场景里面添加一个物体作为示例 // 创建一个物体&#xff08;形状&#xff09;const geometry new THREE.BoxGeometry(5, 5, 5);//创建材质&#xff08;外观&#xff09;const material2 new THREE.MeshLambertMaterial({color: 0xfff, //设置材质颜色side: THREE.DoubleS…

SpringBoot + vue 管理系统

SpringBoot vue 管理系统 文章目录 SpringBoot vue 管理系统1、成品效果展示2、项目准备3、项目开发3.1、部门管理3.1.1、前端核心代码3.1.2、后端代码实现 3.2、员工管理3.2.1、前端核心代码3.2.2、后端代码实现 3.3、班级管理3.3.1、前端核心代码3.3.2、后端代码实现 3.4、…

Matlab 计算一个平面与一条直线的交点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里使用一种很有趣的坐标:Plucker线坐标,它的定义如下所示: 这个坐标有个很有趣的性质,将直线 L L L与由其齐次坐标 V = (

STM32的定时器HAL库

目录 一&#xff0c;定时器的介绍 一&#xff0c;定时器的介绍 1. STM32F103C8T6微控制器内部集成了多种类型的定时器&#xff0c;这些定时器在嵌入式系统中扮演着重要角色&#xff0c;用于计时、延时、事件触发以及PWM波形生成、脉冲捕获等应用。 1.1 高级定时器&…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(六)-人工智能控制的自主无人机用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

从汇编层看64位程序运行——函数的调用和栈平衡

函数调用 不知道有没有人想过一个问题&#xff1a;A函数调用B函数&#xff0c;B函数是如何知道在调用结束后回到A函数中的&#xff1f; 比如下面的代码&#xff0c;main函数调用foo。当foo执行完毕&#xff0c;需要执行main函数的return 0语句。但是main和foo是割裂的&#x…

【排序 】

目录 1&#xff0c; 排序的概念及引用 1.1 排序的概念 1.2 常见的排序算法 2&#xff0c; 常见排序算法的实现 2.1 插入排序 2.1.1基本思想&#xff1a; 2.1.2 直接插入排序 2.1.3 希尔排序( 缩小增量排序 )(面试很少问) 2.2 选择排序 2.2.1基本思想&#xff1a; 2.…

Java巅峰之路---基础篇---综合练习(面向对象)

目录 文字版格斗游戏 基础版 souf输出语句 进阶版 键盘录入的说明 复杂对象数组练习 需求&#xff1a; 添加和遍历 删除和遍历 修改和遍历 文字版格斗游戏 基础版 格斗游戏&#xff0c;每个游戏角色的姓名&#xff0c;血量&#xff0c;都不相同&#xff0c;在选定人…

2024最新Cloudways主机使用教程(含最新Cloudways折扣码)

Cloudways是一家提供云托管服务的公司&#xff0c;可以帮助你轻松管理和运行你的网站。本教程是Cloudways主机注册和使用教程。Cloudways界面简洁&#xff0c;使用方便&#xff0c;不需要复杂的设置&#xff0c;就能快速搭建一个WordPress网站。它的主机功能包括高级缓存和Bree…

Linux命令更新-Vim 编辑器

简介 Vim 是 Linux 系统中常用的文本编辑器&#xff0c;功能强大、可扩展性强&#xff0c;支持多种编辑模式和操作命令&#xff0c;被广泛应用于程序开发、系统管理等领域。 1. Vim 命令模式 Vim 启动后默认进入命令模式&#xff0c;此时键盘输入的命令将用于控制编辑器本身&…

QT控件篇三

一、微调框 微调框&#xff08;QSpinBox&#xff09;是一个常用的Qt控件&#xff0c;允许用户通过增加或减少值来输入数字。分为两种, 整型-QSpinBox 浮点 QDoubleSpinBoxQSpinBox&#xff08;微调框&#xff09;的 setSingleStep 函数可以用来设置每次调整的步长&#xff08;…

Kafka基础入门-代码实操

Kafka是基于发布/订阅模式的消息队列&#xff0c;消息的生产和消费都需要指定主题&#xff0c;因此&#xff0c;我们想要实现消息的传递&#xff0c;第一步必选是创建一个主题&#xff08;Topic&#xff09;。下面我们看下在命令行和代码中都是如何创建主题和实现消息的传递的。…

TDesign组件库日常应用的一些注意事项

【前言】Element&#xff08;饿了么开源组件库&#xff09;在国内使用的普及率和覆盖率高于TDesign-vue&#xff08;腾讯开源组件库&#xff09;&#xff0c;这也导致日常开发遇到组件使用上的疑惑时&#xff0c;网上几乎搜索不到其文章解决方案&#xff0c;只能深挖官方文档或…

Python编程工具PyCharm和Jupyter Notebook的使用差异

在编写Python程序时需要用到相应的编程工具&#xff0c;PyCharm和Jupyter Notebook是最常用2款软件。 PyCharm是很强大的综合编程软件&#xff0c;代码提示、代码自动补全、语法检验、文本彩色显示等对于新手来说实在太方便了&#xff0c;但在做数据分析时发现不太方便&#xf…