自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CSDN官方认证C/C++研发领域优质创作者 CSDN官方2023年成都赛道Top3 第16届蓝桥杯C/C++软件赛四川赛区二等奖 带你玩转C/C++ 数据结构与算法 Linux系统编程/Linux网络编程 MySQL数据库 软件测试开发

CSDN官方认证C/C++研发领域优质创作者 CSDN官方2023年成都赛道Top3 第16届蓝桥杯C/C++软件赛四川赛区二等奖 带你玩转C/C++ 数据结构与算法 Linux系统编程/Linux网络编程 MySQL数据库 软件测试开发

  • 博客(132)
  • 收藏
  • 关注

原创 接口自动化测试实战指南

本文系统介绍了接口自动化测试的基础知识和实战方法。首先讲解了接口概念、测试重要性及用例设计要点,然后详细阐述了自动化测试流程,包括Requests模块使用、Pytest框架搭建、YAML配置管理、JSON Schema校验等重要技术。最后通过项目实战案例,展示了如何从需求分析到工具封装完成一个完整的接口自动化测试项目。内容涵盖接口测试基本原理到自动化实践全流程,为测试人员提供了全面的学习路径和技术指导。

2025-11-07 17:12:02 970 1

原创 【C++】智能指针:告别内存泄漏的最佳实践

本文介绍了C++智能指针的设计原理与使用场景。首先分析了手动内存管理的问题,提出RAII原则作为解决方案。随后详细讲解了标准库中的四种智能指针:auto_ptr(已废弃)、unique_ptr、shared_ptr和weak_ptr,包括其特性、使用方法和注意事项。通过代码示例展示了如何模拟实现这些智能指针,并重点讨论了shared_ptr的循环引用问题及weak_ptr的解决方案。最后,文章还涉及智能指针的线程安全性问题和内存泄漏预防措施,为C++开发者提供了全面的智能指针使用指南。

2025-11-07 17:07:09 473

原创 【C++】:C++聊天室后台服务器之Spdlog日志组件安装与使用

spdlog是一个高性能C++日志库,具有零配置、快速和简洁API的特点。安装方式包括系统命令安装和源码编译安装两种。核心功能包括多级别日志(trace到critical)、异步日志记录和自定义日志格式。使用时包含头文件即可创建日志器,支持多输出目标(如控制台和文件同步输出)和异步日志处理。二次封装可简化使用,提供统一的初始化接口。编译需链接spdlog和fmt库。该库适用于各种规模项目,能有效满足不同场景的日志需求。

2025-11-07 17:00:34 615

原创 【C++】:C++聊天室后台服务器之gflags与gtest安装使用

gflags和gtest是Google开发的两个实用C++库。gflags用于命令行参数处理,支持多种数据类型,提供简单API和自动帮助生成功能,可通过命令行或配置文件设置参数。gtest是单元测试框架,提供丰富的测试宏和断言机制,支持不同级别的事件处理,能创建简单测试或带固件的复杂测试用例。两者都可通过apt安装或源码编译,使用前需包含相应头文件并链接库文件。这些工具能有效提升C++程序的灵活性和可靠性。

2025-11-07 16:57:21 591

原创 【C++】:C++基于微服务的即时通讯系统(2)

聊天室后台环境搭建指南摘要 本文详细介绍基于C++的聊天室后台系统开发环境搭建流程。首先安装基础工具链(gcc/g++、cmake、git等),然后配置C++开发框架(gflags、gtest、spdlog)和网络通信组件(brpc、httplib)。数据库环节包括Redis缓存、MySQL关系数据库及ORM框架ODB的安装配置。搜索系统部署Elasticsearch并集成中文分词插件,消息队列使用RabbitMQ。最后介绍服务发现工具etcd和各类客户端SDK的安装方法。文中包含详细命令和配置说明,适合作

2025-11-07 16:51:16 437

原创 【C++】: C++基于微服务的即时通讯系统(1)

该项目在设计的时候采用微服务框架设计,指将一个大的业务拆分称为多个子业务,分别在多台不同的机器节点上提供对应的服务,由网关服务统一接收多个客户端的各种不同请求,然后将请求分发到不同的子服务节点上进行处理,获取响应后,再转发给客户端

2025-11-07 16:47:06 610

原创 【C++】:C++11并发支持库

C++11 thread库是对各平台线程API的面向对象封装,具有跨平台特性。thread类提供了4种构造函数,其中带可调用对象和参数的版本最为常用,相比传统pthread_create更灵活。线程对象不可拷贝但支持移动语义,主线程需join等待子线程结束。this_thread命名空间提供get_id、yield、sleep_for等线程控制接口,结合chrono库实现精确时间管理。thread库融合现代C++特性如右值引用和可变模板参数,简化了多线程编程。

2025-11-05 10:28:35 996

原创 【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)

本文介绍了API测试和自动化测试的学习资源与工具。API测试平台包括Postman Learning Center、Swagger Petstore、JSONPlaceholder和Reqres,适合不同阶段的练习需求。自动化测试框架学习资源涵盖RestAssured、Pytest、Selenium、Cypress和Appium,支持多种编程语言和测试场景。综合学习平台如Test Automation University、Udemy和Coursera提供体系化课程。实战工具与沙箱环境如Mockaroo、P

2025-05-14 10:18:55 1891

原创 【C++】:怎样利用万能、左值、右值引用来改进你的C++程序设计?

今天咱们来聊聊C++里让人又爱又恨的引用家族——左值引用、右值引用和万能引用。这几个概念可是现代C++的重要基石,面试高频考点,也是理解移动语义、完美转发的关键。建议准备个小本本,咱们边写代码边拆解。

2025-05-07 08:32:54 1157 1

原创 【C++】:回调函数实战解读:从C/C++到现代C++实现方案

回调函数是一种在 C++ 中广泛使用的技术,它允许将函数作为参数传递给其他函数,并在适当的时候被调用。回调函数在异步编程、事件驱动编程以及插件式架构中非常有用。本文介绍了回调函数的基本概念、使用方式以及注意事项,并提供了几个示例来帮助理解回调函数的使用。

2025-05-06 10:29:27 990

原创 【Linux网络编程】:28张图,一次性说清楚TCP

根据前面的可靠传输原理,TCP通信双方需要为对方准备一个接收缓冲区可以接收对方的数据、记住对方的socket知道怎么发送数据、记住对方的缓冲区来调整自己的窗口大小等等,这些记录,就是一个连接。前面讲到,最简单的运输层协议,就是提供进程之间的独立通信 ,但底层的实现,是socket之间的独立通信。如果我们伪造IP和端口,向一个服务器进行海量的请求,会使得服务器创建了大量的创建一半的TCP连接,使得其无法正常响应用户的请求,导致服务器瘫痪。做IT相关的工作,肯定都离不开网络,网络中最重要的协议是TCP。

2025-05-06 10:10:17 1179

原创 【Linux网络编程】:16张动图讲透网络技术原理!

网络其实存在于日常生活中的每一个角落。你的电脑,打印机,手机,甚至电视等等都属于网络设备。通常,你需要将这些设备通过网络连接起来,这样就可以实现数据的传输和共享,让工作生活更加便捷。如果你的连接没有问题,就可以通过电脑给打印机发送指令,让它帮你打印资料。或者,将资料存储到你的本地服务器,当然,也可以发布文章或视频到互联网上。或者,将资料存储到你的本地服务器,当然,也可以发布文章或视频到互联网上。

2025-05-05 16:19:14 669

原创 【C++】:有了万能引用,为什么还需要完美转发?

什么是万能引用?万能引用的形式是 T&&,应用场景:当 T 是一个 模板参数,且需要进行类型推导时(例如函数模板参数)。当使用 auto&& 声明变量时。此时 T&& 或 auto&& 可以绑定到 左值、右值,因此被称为万能引用。

2025-05-05 15:27:38 426 10

原创 【C++】:C++17新特性

类模板 std::variant 表示一个类型安全的 union。std::variant 的实例在任何给定时间都持有一个其替代类型的值(它也可以是无值的)

2025-05-03 15:07:52 1349 14

原创 【HTTP】:应用层协议HTTP(1)

3.1 抓包工具的使用当我们访问一个网站时,可能涉及不止一次的 HTTP 请求和响应的交互,为此为了更加清楚的了解我们访问一个网站时 HTTP 请求/协议是怎么交互的,由于 HTTP 是一个文本格式的协议,就可以通过以下两种方式:方式一: 通过 F12 打开浏览器的开发者工具,点击 Network 标签页,然后刷新页面就行。显示的每一条记录都是一次 HTTP 请求/响应。

2025-04-12 18:30:16 1382

原创 【C++项目实战】:基于正倒排索引的Boost搜索引擎(1)

针对boost网站没有搜索导航功能,为boost网站文档的查找提供搜索功能站内搜索:搜索的数据更垂直,数据量小类似于cplusplus.com的搜索。

2025-03-25 18:55:12 689 1

原创 【软件测试】:软件测试实战

commoncases/BlogLogin.pycases/BlogList.pycases/BlogDetail.pycases/RunCases.py1.3 将⾃动化测试补充⾄测试报告测试报告模板:

2025-03-25 18:46:05 1579

原创 【C++】:C++11新特性

在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10年磨一剑,第二个真正意义上的标准珊珊来迟。相比于。

2025-03-24 20:18:29 932

原创 【前端基础】:CSS

网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该网站, 那么这些外部资源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了). 从而提高访问效率.style 标签可以放到页面任意位置. 一般放到 head 标签内. CSS 使用 /* */ 作为注释. (使用 ctrl + / 快速切换)CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离.缺点: 分离的还不够彻底. 尤其是 css 内容多的时候.

2025-03-17 15:17:29 906

原创 【Linux】:进程间通信

数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

2025-03-13 15:28:14 919

原创 【QT】:QT图形化界面相关准备工作

例如Windows和DOS操作系统中的path环境变量,当要求系统运⾏⼀个程序⽽没有告诉它程序所在的完整路径时,系统除了在当前⽬录下⾯寻找此程序外,还会到path中指定的路径去找。在Windows上设置Qt的环境变量是为了能够在命令⾏或其他应⽤程序中直接访问Qt相关的命令和⼯具。此电脑"------>⿏标右键,“属性”------>“⾼级系统设置”------>“环境变量”注意:在关掉所有窗⼝时,⼀定要点击"确定",否则上述配置⽆效。新建"----->填⼊"bin"路径------>“确定”

2025-03-11 20:44:55 529

原创 【前端基础】:HTML

href: 必须具备, 表示点击后会跳转到哪个页面.target: 打开方式. 默认是 _self. 如果是 _blank 则用新的标签页打开链接的几种形式:外部链接: href 引用其他网站的地址内部链接: 网站内部页面之间的链接. 写相对路径即可. 在一个目录中, 先创建一个 1.html, 再创建一个 2.html空链接: 使用 # 在 href 中占位下载链接: href 对应的路径是一个文件. (可以使用 zip 文件)

2025-03-11 20:37:52 1202

原创 【前端基础】:HTML

但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。后来随着技术的发展,移动设备的屏幕像素密度越来越高,从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。例如,在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。

2025-03-11 14:25:06 779 9

原创 【软件测试开发】:软件测试常用函数1.0(C++)

web⾃动化测试的操作核⼼是能够找到⻚⾯对应的元素,然后才能对元素进⾏具体的操作。常⻅的元素定位⽅式⾮常多,如id,classname,tagname,xpath,cssSelector常⽤的主要由cssSelector和xpath。

2025-03-10 19:54:25 997 6

原创 【软件测试开发】:软件测试开发认识篇

测试往往是产品质量的最后的把关者由于测试⼯作成效很难衡量测试⽤例执⾏bug数⽬的多少都⽆法说明产品的质量是否合格虽然在敏捷模型中团队中每个⼈都需要对产品质量负责,但是产品的测试质量是跟测试⼈员那密切相关的。所以,责任感是最重要的测试必备素质之⼀压⼒,测试⼯作者,特别是属于互联⽹⾏业需要能够抗住各种压⼒⾼频⾯试题为什么⾛测试岗位⽽不⾛开发岗位?回答思路:从岗位⼯作性质分析+个⼈性格/爱好+个⼈职业规划三个⽅⾯阐述1)个⼈兴趣爱好:从性格和兴趣出发,测试⼯作需要测试⼈员具备良好的耐⼼、细⼼,接触了

2025-01-11 14:29:12 1963 1

原创 【LeetCode】:删除回文子数组【困难】

class Solution {public: // 思考:能否用滚动数组进行优化 int minimumMoves(vector& arr) { // 定义状态dp[i][j]为i-j的最小步数 int n = arr.size(); vector dp(n, vector(n, 1e9 + 7)); // 可以把这 1 次理解为一种 最小操作单位 或者 // 基

2025-01-11 14:06:36 569 12

原创 【LeetCode】:稀疏相似度【困难】

这道题是关于计算文档相似度的问题,具体是稀疏相似度。以下是详细的解题思路:### 1. 理解题目要求- 给定一系列文档,每个文档由一个包含不同整数的数组表示(可假定每个整数代表一个单词)。- 需要计算每对文档的相似度,相似度定义为两个文档的交集元素个数除以并集元素个数。- 只输出相似度大于0的文档对,结果以特定格式返回,包括文档对的较小id、较大id以及相似度(精确到小数点后4位)。### 2. 解题方法- 可以使用两层循环遍历所有文档对,对于每对文档,计算它们的交集和并集元素个数,进而得到

2025-01-06 12:27:28 1112 4

原创 【LeetCode】:最长乘积等价子数组【简单】

最大公约数:指两个或多个整数共有约数中最大的一个。例如,12 和 18 的公约数有 1、2、3、6,其中最大公约数是 6。最小公倍数:指两个或多个整数公有的倍数中最小的一个。例如,12 和 18 的公倍数有 36、72、108 等,其中最小公倍数是 36。

2025-01-05 20:46:06 1252

原创 【LeetCode】:解数独【困难】

通过以上思路和方法,就可以编写程序来解决数独问题啦。在实际编程中,还需要注意代码的细节和边界情况的处理,以确保程序的正确性和高效性。

2025-01-05 20:40:16 1094

原创 【Docker】:Docker命令及平台基本使用方法

比如把docker-centos-httpd.tar镜像上传到linux上,就需要用到==docker load -i ==命令。地址:https://cr.console.aliyun.com的控制台,使用支付宝账号登录,左侧加速器帮助页面会为你显示独立的加速地址,这个加速地址每个人的都不同。注意,如果这里报错,TLS handshake timeout,那就是网络原因导致超时,尝试多pull几次。拉去之后我们要如何看到我们下载下来的镜像呢,这里我们就需要学习一个新命令。可以看到此地址,代表配置成功。

2025-01-02 16:14:30 2199 1

原创 【QT】:QT图形化界面概述

多语⾔⽀持:VisualStudio⽀持多种编程语⾔,包括C++、C#、VisualBasic、F#、Python、qmake:qmake是⼀个构建⼯具(buildtool),⽤于⾃动⽣成makefile⽂件。Qbs:Qbs(QtBuildSuite:Qt构建套件)同qmake、CMake⼀样都是构建⼯具。Windows桌⾯应⽤程序、Web应⽤程序、移动应⽤程序、游戏等。配置信息:CONFIG+=c++11(使⽤c++11的特性) CONFIG⽤来告诉qmake关于应⽤程序的配。③:构建套件选择器。

2025-01-01 11:44:43 1631 13

原创 【ProToBuf】:ProToBuf+安装

ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases。在这⾥我们希望⽀持全部语⾔,所以选择protobuf-all-21.11.zip,右键将下载链接复制出来。出现以上错误的原因是test的模块⾥⾯有⾮常多的测试⽤例,这些⽤例对服务器环境要求特别严格,需。到此,需要你回忆⼀下在执⾏configure时,如果当时选择了第⼀种执⾏⽅式,也就是。可以不⽤下载最新版本,课件以v21.11为例,具体的下载根据⾃⼰电脑情况选择。

2025-01-01 11:22:46 1654

原创 【Docker】:Docker容器使用

docker-ce:docker 的开源版本,CE指Community Edition。同年7月,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等。2015 年 6 月 22 日,由 Docker 公司牵头,CoreOS、Google、RedHat 等公司共同宣。在 Docker 1.12 及更高版本中,Swarm 模式与 Docker 引擎集成,为 Docker 容器提供。chroot 系统调用是在 1979 年开发第 7 版 Unix期间引入的。

2025-01-01 11:05:00 1200

原创 【蓝桥杯】:蓝桥杯之路径之谜

通过以上思路和算法思想,可以尝试编写代码来解决这道路径谜题。

2024-12-31 16:17:00 1707 8

原创 【Docker】:Docker容器技术

Greenplum、TiDB、Postgresql XC、HAWQ等,商用的如南大通用的GBase、kubernetes,简称 K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。为不同的服务器(比如性能不同)赋予不同的权。目前最流行的容器化技术是Docker,最流行的容器管理服务是Kubernetes(K8S),应。一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是。

2024-12-31 16:04:16 1191 2

原创 【Redis】:初识Redis

redis-server 是 Redis 服务器程序,其余的⼏个例如:redis-check-aof、redis-check-rdb、redissentinel 也都是 redis-server 的软链接。redis-check-aof 是修复 AOF ⽂件⽤的⼯具,同理 redischeck-rdb 是修复 RDB ⽂件的⼯具,redis-sentinel 是 Redis 哨兵程序。假如现在有⼈问 Redis 的作者都有谁在使⽤ Redis,我想他可以开句玩笑的回答:还有谁不使⽤。

2024-12-29 11:19:57 789 1

原创 【Linux】:Linux套接字Socket网络编程

IPv4和IPv6的地址格式定义在netinet/in.h中,IPv4地址用sockaddr_in结构体表示,包括16位地址类型, 16。处是程序的通用性, 可以接收IPv4, IPv6, 以及UNIX Domain Socket各种类型的sockaddr结构体指针做为参数。IPv4、IPv6地址类型分别定义为常数AF_INET、AF_INET6. 这样,只要取得某种sockaddr结构体的首地址,不需要知道具体是哪种类型的sockaddr结构体,就可以根据地址类型字段确定结构体中的内容.

2024-12-29 11:03:18 791

原创 【Linux】:Linux网络协议

址不是真实的 mac 地址, 可能会冲突;IP 协议有两个版本, IPv4 和 IPv6. 我们整个的课程, 凡是提到 IP 协议, 没有特殊说明的, 默认都是指 IPv4。• IP 地址在整个路由过程中,一直不变(目前,我们只能这样说明,后面在修正) • Mac 地址一直在变。上面的内容,我们只是懂了一些基本概念,还是达不到我们的目标,下面我们再次重。• 首先,即便是单机,你的计算机内部,其实都是存在协议的,比如:其他设备和。• 截止到目前,我们还没接触过任何协议,但是如何朴素的理解协议,我们已经可。

2024-12-29 10:55:35 1006

原创 【Linux】:Linux网络编程基础

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完。信的七层协议结构,尽管在实际应用中,TCP/IP协议族更为普遍,但OSI模型仍。信的七层协议结构,尽管在实际应用中,TCP/IP协议族更为普遍,但OSI模型仍。OSI模型定义了网络通。是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协。是构成TCP/IP协议族的协议)的志愿组织,通过RFC发布新的或者取代老的协。TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

2024-12-29 10:45:55 1152 9

原创 【Linux】:信号与信号量以及信号捕捉与处理(为多线程和网络做准备)

信号的定义:信号是 Linux 操作系统中用于进程间通信、处理异常等情况的一种机制。它是由操作系统向一个进程或者线程发送的一种异步通知,用于通知该进程或线程某种事件已经发生,需要做出相应的处理信号的作用:进程间通信:进程可以通过向其他进程发送信号的方式进行通信,例如某个进程在完成了某项工作之后,可以向另一个进程发送 SIGUSR1 信号,通知其进行下一步的操作。

2024-04-27 15:03:16 1626 12

空空如也

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

TA关注的人

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