ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

软件测试中的网络问题

2026/9/2 12:29:30 拓冰建站 浏览量
软件测试中的网络问题 1.背景在测试过程中出现的问题除了代码问题还有很多的网络问题所以需要了解网络知识这样能发现网络问题尽快解决就能提高效率。2.计算机网络体系结构OSI七层模型物理层数据链路层网络层传输层会话层表示层应用层。OSI七层模型只是理想的实际实现的只有4层。3.TCP/IP协议传输控制协议/因特网互联协议由网络层的IP协议和传输层的TCP协议组成协议采用了4层的层级结构也就是说实际上实现了链路层网络层传输层应用层。测试的过程中我们重点关注的是网络层和应用层。网络层IP应用层HTTPDNS是我们接触到最多的。4.应用层协议简单了解TFTPTrivial File Transfer Protocol,简单文件传输协议用来在客户机与服务器之间进行简单文件传输的协议提供不复杂、开销不大的文件传输服务。端口号为69。TFTP是一个传输文件的简单协议它基于UDP协议而实现但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。比如当需要将程序或者文件同时向许多机器下载时就往往需要使用到TFTP协议。HTTPHyper Text Transfer Protocol超文本传输协议是一个简单的请求-响应协议它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出而 [9] 消息内容则具有一个类似MIME的格式。SNMP(Simple Network Management Protocol简单网络管理协议SNMP 使网络管理员能够管理网络效能发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息及事件报告网络管理系统获知网络出现问题。SNMP是管理进程NMS和代理进程Agent之间的通信协议。FTPFile Transfer Protocol文件传输协议FTP允许用户以文件操作的方式如文件的增、删、改、查、传送等与另一主机相互通信使用TCP传输。然而 用户并不真正登录到自己想要存取的计算机上面而成为完全用户 可用FTP程序访问远程资源 实现用户往返传输文件、目录管理以及访问电子邮件等等 即使双方计算机可能配有不同的操作系统和文件存储方式。比如在大学时期老师会在他自己的电脑建一个ftp然后将ftp地址给学生让学生将作业上传到ftp老师就可以批阅。SMTPSimple Mail Transfer Protocol简单邮件传输协议SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务主要用于系统之间的邮件信息传递并提供有关来信的通知。DNSDomain Name System域名系统它作为将域名和IP地址相互映射的一个分布式数据库能够使人更方便地访问互联网。DNS使用UDP端口53。当前对于每一级域名长度的限制是63个字符域名总长度则不能超过253个字符。比如访问www.baidu.com这是个域名方便人们记忆实际映射的是一个ipIP不便于人们记忆。Telnet是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序用它连接到服务器。终端使用者可以在telnet程序中输入命令这些命令会在服务器上运行就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。应用层的这些协议没有谁更厉害只是在不同的场景使用不同的协议就像有的护肤品适合干性皮肤有的适合油性皮肤。5.传输层协议理解端口号TCP是面向连接的、可靠的流协议通过三次握手建立连接通讯完成时要拆除连接。UDP是面向无连接的通讯协议UDP通讯时不需要接收方确认属于不可靠的传输可能会出现丢包现象。TFTP协议使用的UDP传输HTTPFTPSMTP使用TCP传输。传输层是通过端口号端口号用来识别同一台计算机中进行通信的不同应用程序。因此它也被称为程序地址。通俗来说端口号表示计算机里面的一个app由于计算机里面有很多app那服务器要把信息传给哪个app呢就是通过端口号识别的我们把每个app都设置一个端口号。下面的图是重点记住的知识点6.网络层协议简单了解IPInternet Protocol网际互连协议它可以向传输层提供各种协议的信息例如TCP、UDP等对下可将IP信息包放到链路层通过以太网、令牌环网络等各种技术来传送。ICMPInternet Control Message Protocol控制报文协议用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据但是对于用户数据的传递起着重要的作用。RIPRouting Information Protocol路由信息协议是基于距离矢量算法的路由协议利用跳数来作为计量标准。在带宽、配置和管理方面要求较低主要适合于规模较小的网络中。OSPFOpen Shortest Path First路由协议OSPF适合在大范围的网络OSPF协议当中对于路由的跳数它是没有限制的所以OSPF协议能用在许多场合同时也支持更加广泛的网络规模。只要是在组播的网络中OSPF协议能够支持数十台路由器一起运作。7.三次握手和四次挥手客户端与服务端传输数据—三次握手首先要连接起来然后再传数据。《三次握手》的故事客户端服务器我有请求的能力可以连接吗伸手服务器端客户我有接收消息和回复的能力快来连上。伸手客户端好勒连上成功。握手传输层的TCP协议需要三次握手。问为什么是三次握手不是二次握手或四次握手呢在TCP协议中三次握手在可靠性和效率之间取得了平衡而二次握手无法保证可靠性四次握手则增加了不必要的开销。1.二次握手的问题无法确认服务端的接受能力二次握手只能确认客户端的发送能力和服务端的接受能力但无法确认服务端的发送能力和客户端的接收能力。这可能导致连接不可靠。重复连接请求如果客户端的SYN包延迟到达服务端可能会误以为是新的连接请求导致重复连接。2.四次握手的冗余效率低下四次握手会增加额外的通信开销而三次握手已经足够确保双方的发送和接受能力四次握手显得多余。不必要的延迟多一次握手会增加连接建立的延迟影响性能。客户端与服务端断开联系—四次挥手《四次挥手》的故事旁白客户端和服务端信息交流结束到了要分开的时候了。客户端服务器我走了可以吗示意挥手服务器端你等我一下我还没忙完。示意稍等旁白一会儿服务器端忙完于是去告诉客户端。服务器端我忙完了你走吧我先下线了。示意挥手并收回手客户端好的那我走了。示意挥手并收回手客户端等了一会儿消息由于服务器下线了没有回复客户端于是客户端也下线了。问为什么是四次挥手不是三次挥手呢四次挥手确保了数据传输的完整性和连接的可靠关闭而三次挥手可能导致数据丢失五次挥手则增加了不必要的复杂性。1.三次挥手的问题数据丢失风险在三次挥手中客户端发送FIN包后服务端可能仍有数据需要发送。如果服务器在发送完数据前就关闭连接可能导致数据丢失。无法确认服务端的数据发送完毕三次挥手无法确保服务端在关闭连接前完成所有数据的发送和确认。2.五次挥手的冗余不必要的复杂行四次挥手已经能够确保双方都完成数据发送和接收五次挥手会增加额外的步骤带来不必要的复杂性。效率低下多一次挥手会增加连接关闭的延迟影响性能。这个请求头里面的字段Connection: keep-alive。意思就是保持客户端和服务器端连接不要断开否则服务器在一段时间没有得到请求就会断开用户再操作的时候又要建立连接。8.TCP/IP中的数据包TCP首部源IP端口号目标IP端口号。IP首部源IP地址目标IP地址传输协议TCP以太网包首部里面有MAC地址每台手机或电脑都有MAC地址来标识。查询手机电脑的MAC地址方法场景用户A给用户B发送信息9.HTTP请求HTTP请求的传输过程。浏览器输入DNS解析客户端将域名解析为IP地址客户端检查本地DNS缓存如果缓存中没有客户端向DNS服务器发送查询请求DNS服务器返回对应的IP地址建立TCP连接客户端与服务器通过TCP协议建立连接客户端向服务器发送SYN包服务器响应SYN-ACK包客户端发送ACK包完成三次握手建立TCP连接发送HTTP请求客户端通过已建立的TCP连接发送HTTP请求客户端构造HTTP请求报文包括请求行方法、URL、协议版本、请求头如host、User-Agent等和请求体如POST数据客户端将请求报文发送到服务器。服务器处理请求服务器接收并处理HTTP请求服务器解析请求报文确定请求的资源和方法。服务器根据请求处理相应的资源可能涉及数据库查询、文件读取等操作服务器生成HTTP响应报文包括状态行协议版本、状态码、状态消息、响应头如Content-Type、content-length等和响应体如HTM内容服务器发送HTTP响应服务器将HTTP响应发送回客户端服务器将响应报文通过TCP连接发送给客户端。客户端接收响应报文。客户端处理响应客户端接收并处理HTTP响应客户端解析响应报文提取状态码、响应头和响应体。根据响应内容客户端进行相应操作如渲染HTML页面、执行JavaScript代码、显示图片等。关闭TCP连接客户端和服务器关闭TCP连接。客户端发送FIN包请求关闭连接。服务器响应ACK包并发送自己的FIN包。客户端发送ACK包完成四次挥手关闭TCP连接。持续连接可选如果使用HTTP/1.1的持久连接keep-AliveTCP连接可以保持打开状态用于后续的HTTP请求和响应减少连接建立和关闭的开销。HTTP 报文结构报文结构报文首部空行报文主体。报文格式请求报文响应报文报文首部服务器端或客户端需处理的请求或响应的内容及属性。在客户端和服务器处理时起至关重要作用的信息几乎都在这里。空行回车符换行符报文主体应被发送的数据。所需要的用户和资源的信息都在这里。1请求报文结构请求行请求头部回车换行请求数据方法内容Get从服务器端获取资源或数据。a.Get请求一般用于向服务器请求获取一个资源没有副作用一般会在客户端做缓存。b.Get请求发送数据的时候一般会将请求数据放在url字符串中发送给服务器端所以从安全性角度来看相对没有Post请求安全性搞所以get请求一般不会用于比较隐私数据的传输。Post向服务器端提交数据a.Post请求一般用于向服务器提交数据并让其去完成一件事所以这个操作是有副作用的不会在客户端做缓存。b.Post请求时将请求数据放在请求体body里面所以一般用于表单数据登录数据等数据的传输。问get和Post请求有什么区别get适合用于获取数据数附加在URL中安全性较低可以被缓存幂等。post适合用于提交数据数据包含在请求体中安全性较高不会被缓存非幂等。1.数据传输方式get数据附加在URL之后以查询字符串的形式传递数据长度受URL长度限制通常为2048字符post数据包含在请求体中不会显示在URL中数据长度不受URL长度限制可以传输大量数据。2.数据安全性get数据在URL中可见不适合传输敏感信息数据可能会被浏览器历史记录服务器日志等保存。post数据在请求体中传输相对更安全适合传输敏感信息。数据不会被浏览器历史记录保存但仍可能被服务器日志记录。‘3.缓存get请求可以被缓存适合用于获取静态资源。浏览器可能会缓存get请求的结果提高性能。post请求不会被缓存适合用于提交数据或执行操作。每次post请求都会被视为新的请求不会被缓存。4.幂等性get幂等方法多次执行相同的get请求不会对资源长生影响。适合用于获取数据不会改变服务器状态。post非幂等方法多次执行相同的post请求可能会对资源产生不同影响。适合用于提交数据或执行操作可能会改变服务器状态。5.使用场景get用于获取数据如查询信息获取页面内容等。例如搜索分页获取资源详情post用户提交数据如表单提交文件上传等。例如用户登录注册提交订单6.数据编码get数据以URL编码形式传递特殊字符需要转义。例如空格转换为或%20post数据可以以多种编码形式如application/x-www-form-urlencodedmulripart/form-dataapplicationg/json。7.浏览器行为get可以被书签保存方便重复访问可以被浏览器预取或预加载。post不会被书签保存每次提交都需要重新操作不会被浏览器预取或预加载。2响应报文结构状态行响应头部回车换行消息体响应状态码123开头的状态码都表示没问题只需要等服务器即可。4开头的状态码就是客户端错误看看客户端请求数据是否有问题5开头的状态码就是服务器端出现错误。常见状态码含义解决方案404Not Found服务器无法找到请求的页面或资源。a.此类报错首先考虑我们的接口写的是否正确。b.其次可以检查资源的路径是否出错。405Method Not Allowed 方法不允许方法禁用。a.一般出现在servlet中比较常见.就是自己的service函数写错了。b.方法名称写错方法参数类型与标准不一致。c.方法异常、返回值类型与标准不一致。这一般是前台的问题我们的解决方案是把post请求换成get请求500Internal Server Error 服务器内部错误不能完成客户的请求。a.500报错一般是后端服务器问题但也不排除前端出错例如后台报序列化错误可能是因为前端没有设置content-Typeapplication/json。b.重要的是要查看自己写的后端业务逻辑代码有没有问题根据报错提示查找bug。c.常见的错误位置NullPointException据库中提取的数据没有提取到而给另一个对象传递了空值或注入某个对象过程中出现空值.没有正确获取到对象的而出现异常。501 Not Implemented尚未实施或请求格式错误。a.一般考虑我们前端写的ajax中的type:post/get是否出错或者from表单中的method:post/get是否书写错误10.网络联通问题查看源ip地址目的IP地址是否联通如果源ip地址是本机在cmd命令里面输入ping 目的IP地址如果源ip地址不是本机用ip连接工具如用MobaXterm连接源IP地址然后命令里面输入ping 目的IP地址查看源ip地址与目的ip地址里面的应用比如app是否联通输入命令telnet IP地址 端口号有时候两个ip联通了但是目的ip地址的应用没有对外开放导致源ip地址不能访问。如果网络没联通需要开通网策即越过防火墙或者开白名单即授权使用。11.高频面试题汇总在软件测试日常工作中绝大多数偶现bug、接口异常、页面加载问题都不是代码bug而是网络环境导致的。不管是功能、接口还是APP测试都离不开网络排查。同时网络基础也是软件测试面试的必考重点面试官不考死理论重点看你会不会结合测试工作实操、会不会排查问题。11.1软件测试工作中常见的网络问题及解决方案网络波动/超时问题这是测试里最常见的问题日常测试经常遇到接口请求超时、页面白屏、点击操作没反应、上传下载文件失败等情况。大多是测试环境带宽不够、服务器拥堵、自己本地网络不稳、跨网段访问延迟高造成的。测试排查思路我会先区分是本地网络问题还是服务端问题。先ping服务器IP、telnet端口看通不通再用Postman、curl单独调接口多试几次看是必现还是偶尔出问题。同时对比本地、测试、预发多套环境排除是自己电脑网络的单机问题。网络延迟导致的偶现bug这类bug特别隐蔽正常网速下完全没问题只有网络卡顿、延迟高的时候才会复现很容易漏测上线。常见的有重复提交订单、页面状态错乱、消息推送延迟、接口数据渲染异常等。测试排查思路工作中我会用Charles、Fiddler模拟弱网、高延迟、丢包的场景主动复现这类问题。抓到接口日志后核对接口的超时配置检查前后端有没有做防抖、超时重试、异常兜底处理避免弱网下出问题。跨域请求问题主要在Web、H5、小程序测试时遇到最直观的现象就是前端页面点操作没反应浏览器控制台直接报跨域错误接口全部请求失败。核心原因就是浏览器的同源策略协议、域名、端口有一个不一样就会被拦截。测试排查思路首先看控制台报错确认是哪个域名、端口出现的跨域。然后核对后端有没有配置CORS跨域权限是否放行前端的域名和请求方式。重点会区分是测试环境专属问题还是所有环境都存在避免测试环境正常、生产上线出bug。DNS解析异常问题日常会遇到偶尔打不开网站、切换手机热点/无线网后接口请求失败、域名访问报错的情况。基本都是DNS解析出错、本地hosts冲突、DNS缓存污染导致的。测试排查思路我会用nslookup命令查域名解析的IP对不对刷新本地DNS缓存切换公共DNS再测试。同时检查本地hosts文件看是不是手动绑定了错误的IP排除本地配置干扰。端口占用/端口不通问题本地启动项目、测试环境部署服务时经常碰到表现为服务启动失败、接口访问不通、数据库和Redis连接失败。主要是端口被占用、服务器防火墙/安全组没开放端口、跨环境端口受限导致的。测试排查思路先用命令查看端口是否被占用占用了就换端口或者结束进程。如果端口没问题就找运维核对服务器安全组和防火墙确认我们的测试机器IP是被放行的区分是端口没启动还是网络拦截导致的不通。HTTPS证书异常问题APP、小程序、HTTPS网站测试高频问题表现为页面提示证书不安全、APP联网失败、小程序接口全部报错、页面空白。一般是证书过期、域名不匹配、测试环境自签名证书没信任导致的。测试排查思路先看证书有效期和绑定域名确认是否过期、不匹配。测试设备手动安装并信任证书分别排查是浏览器、手机系统拦截还是服务端证书配置问题快速定位问题根源。11.2高频网络面试题说一说HTTP和HTTPS的区别测试中如何区分两者问题我日常测试中经常接触这两种协议最大的区别就是安全性、端口和性能不一样。第一是端口不同HTTP默认是80端口HTTPS是443端口第二是安全性HTTP是明文传输数据不加密很容易被窃听和篡改安全性很差HTTPS是加了SSL/TLS加密的传输数据是加密状态还能校验身份防篡改防窃听现在绝大多数APP和网站都是HTTPS。第三是性能HTTPS多了加密解密的握手过程会比HTTP稍微慢一点有轻微延迟第四是证书HTTP不需要证书HTTPS必须要有合法的CA证书。结合我测试工作来说HTTP我基本只在测试内网测试环境、后台管理系统时遇到主要问题就是数据明文传输存在数据泄露风险而HTTPS是我日常测APP、小程序、线上项目最常用的经常遇到的问题就是证书过期、证书域名不匹配、设备未信任证书导致接口请求失败、页面空白这也是我测试时重点校验的点。✅ 速记HTTP80明文不安全、速度快HTTPS443加密安全、需证书、略有延迟。测试重点盯HTTPS证书过期、不信任、域名不匹配问题。简述TCP和UDP的区别分别对应哪些测试场景我在接口测试、实时业务测试中经常用到这两个协议两者核心区别就是可靠性和连接方式不同。TCP是面向连接的需要三次握手建连、四次挥手断连传输数据特别可靠不会丢包、不乱序还支持重传和纠错但缺点是速度稍慢、有延迟。像我们日常测的接口请求、网页访问、文件上传下载、数据库连接全都是TCP场景。测试的时候我重点关注超时、断网重连、数据丢失、重复请求的问题。UDP是无连接的不用提前建连直接发数据包速度快、延迟极低但是不可靠会丢包、数据可能乱序。一般用来测对速度要求高、能接受少量丢包的业务比如直播、语音通话、视频回放、游戏实时数据。测试时我主要关注画面卡顿、声音延迟、数据丢包错乱的问题。✅ 短句速记考前快速背TCP面向连接、可靠、慢用于接口、文件传输测数据完整性UDP无连接、快、不可靠用于直播语音测卡顿丢包。什么是三次握手、四次挥手为什么不能两次握手三次握手就是TCP建立连接的过程目的是双向确认客户端和服务端的收发能力都正常保证连接可靠。简单说就是客户端发请求、服务端确认回复、客户端再最终确认三步完成连接就建好了。四次挥手是断开连接的过程因为TCP是全双工通道客户端和服务端都能单独发数据所以需要分开断开。客户端先关闭自己的发送通道等服务端数据传完再关闭服务端的通道双向彻底断开一共四步。之所以不能两次握手是因为两次只能证明客户端能发、服务端能收没办法确认服务端能发、客户端能收。会导致服务端白白建立无效连接占用服务器资源造成资源浪费所以必须三次握手双向确认。✅ 短句速记考前快速背三次握手建连、双向确认收发正常四次挥手断连、全双工分开断开。两次握手无法双向校验浪费服务端资源。接口请求超时你会怎么排查测试高频实操题口语化背诵答案工作中我经常遇到接口超时的问题我会按照从本地到服务端、从网络到代码的分层思路一步步排查效率很高第一步先排查自己本地网络。先ping服务器地址、telnet端口看本地和服务器的链路通不通是不是自己网络卡顿、断网导致的问题。第二步排除前端问题。我会脱离页面直接用Postman或者curl单独调用这个接口多请求几次判断是前端代码问题还是接口本身的网络问题同时区分是必现还是偶现。第三步排查服务端状态。我会看服务器CPU、内存是不是占满了有没有刚刚部署代码、重启服务。再让开发帮忙查后端日志看是不是接口报错、数据库阻塞、代码执行过慢导致响应超时。第四步排查环境网络。检查服务器防火墙、安全组有没有拦截请求测试环境带宽是不是拥堵有没有跨网段访问限制。最后定位问题归属分清是本地网络、环境配置、服务性能还是代码bug然后提对应的问题或优化建议。✅ 短句速记考前快速背先查本地链路通不通再独立调接口排前端接着看服务器资源和日志最后查防火墙和环境带宽精准定位问题。什么是弱网测试怎么做弱网测试核心测试点是什么弱网测试是我APP和小程序测试中必做的一项就是模拟现实中网速差、延迟高、丢包、网络抖动的场景比如地铁、地下室的弱网环境验证我们的产品在恶劣网络下能不能正常使用容错性好不好。我工作中主要用Charles、Fiddler来做弱网模拟设置低带宽、高延迟、随机丢包覆盖2G、3G、网络抖动、断网等场景。我的核心测试点主要有四个第一弱网加载的时候有没有友好的加载提示和网络报错提示不会白屏、闪退、卡死第二弱网下用户重复点击操作会不会出现重复下单、数据错乱的问题第三网络中断再恢复后页面状态、接口数据能不能正常还原不会异常第四上传下载、视频播放、消息推送这类核心功能在弱网下稳不稳定。✅ 短句速记考前快速背弱网测试模拟差网络用Charles/Fiddler操作重点测提示友好、无重复操作bug、断网恢复正常、核心功能稳定。什么是跨域为什么会出现跨域怎么解决跨域问题跨域是浏览器的安全限制也是我Web测试中经常遇到的问题。只要当前页面和请求接口的协议、域名、端口有一个不一样浏览器就会判定为跨域直接拦截接口请求导致前端操作失效。出现跨域的核心原因就是前后端地址不一致浏览器为了防止恶意请求做的同源策略限制。日常工作中解决跨域主要有四种方式测试环境最常用的是后端配置CORS放行前端的域名和请求方式其次是前端配置代理转发规避跨域也可以统一前后端的域名端口保证同源生产环境一般用Nginx反向代理来解决。我测试的时候会重点核对多套环境的跨域配置避免测试环境改了配置没问题生产环境没配置导致线上出bug。✅ 短句速记考前快速背协议、域名、端口任一不同即跨域由浏览器同源策略导致。主要靠后端CORS、前端代理、Nginx反向代理解决需多环境校验。说说HTTP常见的请求状态码及测试含义我日常抓包、看接口日志时经常通过状态码快速判断问题类型常用的就四类2xx是成功状态最常见的是200代表接口请求正常成功还有201创建成功、204无返回数据都是正常状态。3xx是重定向301是永久重定向、302是临时重定向我测试时重点检查跳转地址对不对有没有出现死循环跳转的问题。4xx是客户端问题基本都是前端和请求参数的问题。404是接口地址不对、资源不存在401是没登录、未授权403是权限不足400是参数传错、格式不对。5xx是服务端问题都是后端服务和代码导致的。500是服务器内部代码报错502是网关转发失败一般是服务挂了503是服务不可用大概率是服务器过载、服务停机维护。✅ 短句速记考前快速背2xx成功3xx重定向4xx前端参数/权限问题5xx后端服务异常根据状态码快速定位问题端。接口出现502/503报错如何排查工作中测试环境经常遇到502和503我能快速区分并排查502是网关错误意思是请求到了Nginx网关但是转发不到后端服务。我会优先排查后端服务是不是宕机、重启、端口异常再核对Nginx的转发配置有没有问题。503是服务不可用一般是服务器压力太大、资源耗尽、服务熔断或者服务没启动、正在维护导致的。我会先看服务器CPU、内存负载看服务是否正常运行有没有请求量过大导致扛不住的情况。通用排查方式就是查看Nginx日志和后端服务日志确认问题是临时网络波动、环境问题还是代码导致的服务异常同时验证是偶现还是必现问题。✅ 短句速记考前快速背502网关转发失败查服务和Nginx配置503服务过载不可用查服务器负载和服务状态结合日志定位问题。你在测试中遇到过哪些网络相关的bug举例说明我在项目测试中遇到过不少网络相关的bug印象最深的有三个都是真实上线风险很高的问题第一个是弱网偶现bug。之前测电商下单功能正常网速完全没问题但是我用Charles模拟弱网高延迟后发现接口超时没有做防抖处理用户着急重复点击提交会生成多笔重复订单。这个问题正常网络复现不了属于典型的网络场景漏测问题我复现后提了bug让开发加了防抖和超时拦截。第二个是环境跨域bug。有一次测试环境前后端域名不一致后端没配置跨域导致前端所有接口请求失败、页面无法操作。但生产环境域名是统一的所以只有测试环境有问题属于环境配置差异bug最后协调后端补齐了跨域配置解决的。第三个是HTTPS证书问题。测试环境的证书过期了导致整个APP无法联网所有接口全部报错、页面空白。排查后确认是证书过期、未及时更新更换合法证书后就恢复正常了。✅ 短句速记考前快速背实战三类网络bug弱网重复提交、测试环境跨域配置异常、HTTPS证书过期失效均已正常提bug并验证修复。TCP粘包、拆包是什么测试中如何发现和规避我在测长连接、消息推送、实时通信项目时接触过TCP粘包和拆包的问题。因为TCP是流式传输没有固定的数据包边界。发送端连续发几个小数据就会合并成一个包发给接收端这就是粘包如果单次发送的数据太大就会被拆分成多个小包传输这就是拆包。体现在测试现象上就是接收的数据错乱、缺失、拼接异常消息解析失败、数据展示不全。我测试时会通过高频连续发送数据、压测长连接接口的方式复现这类问题。同时检查开发有没有做数据包长度校验、数据分隔、报文解析处理确保不会因为粘包拆包导致业务异常。✅ 短句速记考前快速背TCP无边界导致小数据粘包、大数据拆包会造成数据异常。通过高频压测复现校验开发的报文分隔和校验逻辑即可规避。