自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 DNS的工作原理

DNS就像电话簿:你输入“百度”(人名),DNS帮你查找到百度的“电话号码”(IP地址),这样浏览器才能打电话(建立连接)。

2025-06-11 17:58:03 914

原创 HTTP 响应状态码

场景:客户端带If-Modified-Since头请求,服务器发现资源没变就返回304,客户端直接用本地缓存。场景:一般用于大文件上传时,客户端先发送请求头,服务器响应 100 后,客户端再发送主体内容。说明:服务器同意客户端请求,切换协议(比如从HTTP切到WebSocket)。场景:最常见的状态码,GET、POST、PUT 等请求成功后都会返回。场景:常用于DELETE请求,或PUT请求后不需要返回内容的情况。说明:请求成功,服务器返回所请求的数据。:临时响应,表示请求已被接收,继续处理。

2025-06-11 17:54:30 953

原创 游戏测试面试八股汇总(持续更新版)

游戏测试 = 软件测试 + 感性体验测试 + 更复杂状态覆盖。在设计用例时,需要从“玩家行为出发”,结合“多状态、感官表现、沉浸体验”去补充测试点。

2025-06-10 21:28:36 1086

原创 标注工具核心代码解析——class AnnotationVie【canvas.py]

【代码】标注工具核心代码解析——class AnnotationVie【canvas.py]

2025-06-10 11:41:10 300

原创 标注工具核心代码解析——def load_image【canvas.py]

【代码】标注工具核心代码解析——load_image【canvas.py]

2025-06-09 18:07:08 266

原创 标注工具核心架构分析——主窗口的图像显示

主要有两个核心类,采用经典的Scene-View 架构模式。

2025-06-09 17:58:41 247

原创 进程与线程的区别

进程内的一个执行单元(共享进程资源)程序的一次执行实例(独立资源单位)需要高隔离性(如浏览器多标签)防止一个标签崩溃影响其他标签。需要高并发(如Web服务器)轻量级切换,快速响应大量请求。高(独立内存、文件句柄等)大(需切换虚拟内存空间)崩溃可能导致整个进程终止。小(仅切换执行上下文)

2025-06-08 21:38:14 413

原创 cookie session和token的区别

三者本质是不同维度的身份管理方案,现代系统常组合使用(如JWT+HttpOnly Cookie双重防护)。客户端(LocalStorage等)中(依赖Session ID安全)前后端分离/API认证(如移动端)无状态的加密身份凭证(如JWT)中(需共享Session存储)传统Web应用(如电商购物车)简单状态保持(如语言偏好)客户端存储的小型文本数据。可设置过期时间(如7天)服务端存储的用户会话状态。用户关闭浏览器或超时失效。取决于过期时间或主动撤销。优(天然支持分布式)

2025-06-08 21:36:33 490

原创 初始化顺序A->B,调用顺序A -> B,问B报空指针异常怎么办?

通过系统化的排查,可以快速解决因初始化顺序导致的空指针问题。

2025-06-07 00:48:43 500

原创 针对“仅某个地区出现Bug”的原因分析与解决方案

通过系统化排查,可快速锁定地区性Bug的根源,避免陷入“全局测试无问题”的误区。统一使用UTC时间,前端按需本地化显示。印尼地区缺少DANA支付选项导致下单失败。澳大利亚用户因时区计算错误无法参加活动。动态隐藏不可用支付方式,提示友好信息。某静态资源仅在日本东京节点返回404。刷新CDN缓存,检查区域缓存规则。俄罗斯用户访问时强制跳转到合规页面。配置地区路由规则,避免阻塞主流程。

2025-06-07 00:47:49 957

原创 给了一个偶发事件:如果用户端秒杀成功且付款,但是软件端数据库并没有找到相应订单,如何复现和解决?

说了用户调研等,然后说了检查发生因素之类的可能是网络,后端,数据库等可能问题,再和后端团队探讨一下内部原因是否有某些逻辑遗漏等,但我不太确定,不知道怎么答好,面试官又强调了下是偶发性事件复现。- 是否前端误显示“成功”(如HTTP 200但业务状态码失败)?- Redis库存扣减与DB订单创建是否因CAP问题不一致?- 消息队列(如Kafka)是否消费失败或积压?- 是否因并发导致订单重复创建被去重?- 支付回调是否因网络超时未到达订单服务?- 事务是否未提交(如MySQL死锁)?- 回调接口是否幂等?

2025-06-07 00:47:34 697

原创 商品秒杀系统,如何进行测试

压测订单服务,检查消息队列(如Kafka)积压情况。1. 用户登录后,在秒杀时间内点击“立即抢购”1. 生成订单后不支付,等待超时(如15分钟)熔断降级(如Hystrix)+ 请求队列削峰。发送非正常请求(如绕过前端直接调用API)验证签名、Token或人机验证(如滑块)使用分布式锁(Redis锁)或CAS机制。设备指纹识别 + 行为分析(如点击速度)仅第一次成功,后续提示“已参与过活动”1. 同一用户对同一商品多次提交请求。并发请求不扣减库存,直接操作数据库。提示“活动未开始”或“已结束”

2025-06-06 13:59:12 919

原创 小红书首页滑动界面的测试思路

微信视频通话测试 设计测试用例从功能,性能,兼容性,易用性,安全性测试,异常处理测试来分析测试点。支付宝/微信/银联/其他地区支付方式(如PayPal)不同手机型号(iOS/Android)的NFC支付。选择NFC支付(Apple Pay/银联闪付)自动原路退款(现金退硬币/电子支付退回账户)支付界面是否有明确的步骤提示(如“请扫码”)显示具体原因(“余额不足,请更换支付方式”)现金+扫码混合支付(如差1元用扫码补足)选择商品后不支付,等待超时(如30秒)支付结果提示清晰(成功/失败),不卡死。

2025-06-06 13:56:12 1103

原创 链表题解——两两交换链表中的节点【LeetCode】

这里只做学习的记录,内容中部分为AI生成,有不对的地方可以评论或者私信哦~~

2025-06-06 00:14:36 309

原创 视频通话测试

在2G/3G/4G/5G/Wi-Fi下测试视频质量。视频通话时切换其他应用(如拍照、游戏)iOS ↔ Android 视频通话。检查按钮布局(静音、摄像头、挂断等)发起视频通话,检查是否能正常接通。摄像头切换成功,对方看到正确画面。通话终止,对方收到“对方已挂断”在锁屏/后台运行时收到视频通话。显示“视频通话”记录及通话时长。测量从发起通话到对方接听的延迟。自动拒绝并提示“对方拒绝接收”提示“电量不足,建议切换语音”通话成功,双方画面和声音正常。检查通话界面是否显示通话时长。长时间视频通话(30分钟+)

2025-06-05 17:14:47 620

原创 自动售卖机的测试用例,对支付成功未出货问题定位

支付方式支持选择现金支付(纸币/硬币)正确识别金额并完成交易选择扫码支付(支付宝/微信)生成二维码,用户扫码后扣款成功选择NFC支付(Apple Pay/银联闪付)感应支付成功,扣款并出货金额计算投入现金后选择商品,检查找零是否正确找零金额 = 投入金额 - 商品价格支付超时选择商品后不支付,等待超时(如30秒)自动取消订单,返回待机界面组合支付现金+扫码混合支付(如差1元用扫码补足)正确扣除现金和电子支付金额退款功能支付后商品缺货。

2025-06-05 17:13:14 787

原创 链表题解——环形链表 II【LeetCode】

【代码】链表题解——环形链表 II【LeetCode】

2025-06-05 00:44:50 443

原创 链表题解——环形链表【LeetCode】

【代码】链表题解——环形链表【LeetCode】

2025-06-04 18:30:47 433

原创 ​链表题解——回文链表【LeetCode】

【代码】​链表题解——回文链表【LeetCode】

2025-06-04 00:01:42 343

原创 链表题解——反转链表【LeetCode】

递归参数cur(当前处理节点)、pre(前驱节点)终止条件时返回pre递归关系:处理当前节点 + 递归处理剩余节点空间开销:每次递归调用都会占用栈空间返回值传递:每层递归都返回最终的新头节点优点:代码简洁,体现递归思维缺点:空间复杂度较高,深度链表可能栈溢出。

2025-06-04 00:01:06 562

原创 python,shell,linux,bash概念的不同和对比联系

Linux是操作系统内核,Shell是与其交互的命令解释器,Bash是最常用的一种 Shell,Python是功能更强、可跨领域使用的通用编程语言。Shell 适合轻量级系统任务Python 适合更复杂、跨平台、高可维护性的自动化开发。

2025-06-03 11:14:27 760

原创 需求调研文档——日志文件error监控报警脚本

该文档分为核心功能模块、可配置项、报警机制、可视化需求、日志记录、测试模拟、脚本结构及附件说明等模块。

2025-06-03 00:06:15 728

原创 双指针题解——移动零【LeetCode】

给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。

2025-06-03 00:05:10 632

原创 双指针题解——反转字符串中的单词【LeetCode】

m从后往前跑,是快指针;

2025-06-02 19:52:01 758

原创 栈题解——有效的括号【LeetCode】

给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。

2025-06-02 16:39:17 478

原创 链表题解——合并两个有序链表【LeetCode】

这段代码的核心思想是。

2025-06-01 23:38:03 741

原创 子串题解——和为 K 的子数组【LeetCode】

来高效地统计符合条件的子数组个数。代码的核心思想是通过。

2025-06-01 23:23:20 426

原创 数组题解——最大子数组和​【LeetCode】

这个方法在力扣平台上,提交运行后会超出时间限制。

2025-05-31 16:36:16 496

原创 多维动态规划题解——最长回文子串【LeetCode】

【代码】多维动态规划题解——最长回文子串。

2025-05-31 06:18:35 364

原创 链表经典题目(力扣 easy)

全部题目来自,这里只做学习的记录,内容中部分为AI生成,有不对的地方可以评论或者私信哦~~

2025-05-29 13:40:12 1081

原创 滑动窗口题解——无重复字符的最长子串

请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

2025-05-29 13:39:51 430

原创 动态规划题解——爬楼梯(力扣70 easy)

例如初始值设置为 0,并且要记忆化的 dfs(i) 也等于 0,那就没法判断 0 到底表示第一次遇到这个状态,还是表示之前遇到过了,从而导致记忆化失效。本题状态个数等于 O(n),单个状态的计算时间为 O(1),所以动态规划的时间复杂度为 O(n)。注意到「先爬 1 个台阶,再爬 2 个台阶」和「先爬 2 个台阶,再爬 1 个台阶」,都相当于爬 3 个台阶,都会从 dfs(i) 递归到 dfs(i−3)。初始值 f[0]=1, f[1]=1,翻译自递归边界 dfs(0)=1, dfs(1)=1。

2025-05-28 14:06:33 1326

原创 链表题解——相交链表(力扣160 easy)

题解里看到的图解,很清晰。

2025-05-28 00:01:29 789

原创 两数之和,三数之和经典题目

注意到方法一的时间复杂度较高的原因是寻找 target - x 的时间复杂度过高。这样我们创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。时间复杂度:O(N),其中 N 是数组中的元素数量。对于每一个元素 x,我们可以 O(1) 地寻找 target - x。使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1)。空间复杂度:O(N),其中 N 是数组中的元素数量。

2025-05-27 14:42:19 637

原创 数据结构基础知识补充

有序、可变支持增删改查(append, remove, insert, pop 等)元素类型不限制底层为动态数组有序、不可变支持索引访问可作为 dict 的键无序(Python 3.7+ 实际有序)键必须可哈希(如 str、int、tuple)查找速度快,O(1)元素类型统一(如整数'i'占用内存少,操作快不支持混合类型哈希表并非 Python 原语,但 dict 是其直接实现基于哈希函数进行快速键值定位特性listtupledictarrayhash table可变性✅。

2025-05-26 22:17:44 1149

原创 动态规划经典三题_完全平方数

是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。我们可以将 n 表示为:n = 32 + 12 = 10。换句话说,你需要返回互不相同整数。这是唯一将 10 表达成不同整数 2 次方之和的方案。如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。由于答案可能非常大,请你将它对。的完全平方数的最少数量。

2025-05-23 23:39:19 684

原创 通过mitmproxy抓包工具,抓取APP数据

并双击安装证书,一直下一步就可以了(密码可以不需要),在证书存储部分,选择将所有的证书都放入下列存储 - 受信任的根证书颁发机构。然后在手机WIFI设置里,设置当前网络代理,主机名为电脑ip地址,端口填mitmproxy的端口(没设置就是8080)确认后手机的请求就会经过电脑的8080端口了,我打开的mitmweb.exe,所以可以直接在浏览器中查看。安装完成后,在 bin 下,可以看到三个可执行文件,分别对应 mitmproxy 的三种模式。使用的 mitmweb,在配置完手机代理后,在手机浏览器输入。

2025-05-22 14:37:14 695

原创 使用allure生成自动化测试报告

Allure是由Qameta Software团队开源的一款旨在于解决让每个人能更容易生成并更简洁阅读的测试报告框架。

2025-05-21 19:42:13 1140

原创 python八股文汇总(持续更新版)

递归的好处是:代码更简洁、逻辑更自然,特别适合解决自结构问题;但它在性能和稳定性上不如循环,需要谨慎使用。在实际工作中,如果功能简单、可控,推荐优先用 for;如果是多层结构、递归定义的问题,就大胆用递归。功能/特性Python2Python3打印语法字符编码默认 ASCII,需手动处理 Unicode默认 Unicode,字符串更统一除法行为5 / 2 = 2rangexrangerange是列表,xrange是生成器range是生成器,没有xrange输入函数input()

2025-05-20 22:05:56 1933

原创 Playwright 快速实现网页自动化脚本录制与执行(附完整 Python 示例)

Playwright 不仅支持强大的页面操作和交互,还能通过 codegen 工具快速生成可运行的脚本,极大提高开发和测试效率。

2025-05-19 18:46:26 1321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除