- 博客(139)
- 收藏
- 关注
原创 Selenium自动化测试概念篇【第一次Web自动化测试】
本文介绍了Selenium自动化测试的基本概念和应用。首先阐述了自动化的定义及其在生活与软件测试中的应用,重点说明了自动化测试主要用于回归测试。接着对自动化测试进行分类,包括接口自动化测试和UI自动化测试(Web和移动端),并介绍了自动化测试金字塔模型。文章详细讲解了Web自动化测试中驱动的作用与安装方式,推荐使用webdriver-manager工具进行驱动管理。最后通过一个搜狗搜索的实例演示了Selenium的基本用法,包括打开浏览器、定位元素和操作页面等步骤,并解释了Selenium与浏览器驱动的工作
2025-11-18 00:54:34
989
原创 数据结构进阶——红黑树
本文介绍了红黑树的基本概念、性质及插入操作。红黑树是一种自平衡二叉搜索树,通过节点着色和旋转操作保持平衡,确保最长路径不超过最短路径的两倍。文章详细阐述了红黑树的五个性质,重点讲解了插入操作的处理逻辑:新节点默认为红色,根据父节点颜色和叔叔节点情况进行调整。具体分为五种情况处理:叔叔为红时变色处理;左左黑、右右黑时单旋变色;左右黑、右左黑时双旋变色。每种情况都配有图示说明,帮助理解红黑树的插入调整机制。
2025-11-14 18:15:12
1231
原创 MySQL快速入门——使用C_C++连接
本文介绍了在Ubuntu系统上安装MySQL的C/C++开发包的方法。主要包括三种安装方式:1)检查系统是否已存在MySQL客户端开发包;2)从MySQL官网下载历史版本的开发包手动安装;3)使用apt命令自动安装推荐的开发包。同时提供了验证安装是否成功的方法,即通过调用mysql_get_client_info()函数来测试连接。文中推荐使用apt安装方式,因其能自动处理依赖关系,是最简单方便的安装方法。
2025-11-12 22:58:42
693
原创 MySQL快速入门——用户管理
MySQL用户管理入门摘要:MySQL用户信息存储在mysql数据库的user表中,包含host、user和authentication_string(密码)等关键字段。通过root用户管理存在安全隐患,需要创建专门用户。使用SELECT host,user,authentication_string FROM user;可查看用户列表,DESC user显示表结构包含多个权限字段(N/Y枚举值)。用户管理可提升数据库安全性,建议避免长期使用root账户操作。
2025-11-12 15:30:22
932
原创 MySQL快速入门——视图
MySQL视图快速入门:创建虚拟表简化查询 摘要:本文介绍了MySQL视图的基本概念和使用方法。视图是基于SQL查询的虚拟表,可以简化复杂查询。主要内容包括: 视图创建语法:create view 视图名 as select语句 视图使用示例:创建员工-部门映射视图,并展示查询、更新和删除操作 视图规则和限制: 必须唯一命名 无数量限制但需考虑性能 不能添加索引和触发器 可提高数据安全性 注意ORDER BY的覆盖规则 可与表联合使用 注意:虽然视图能简化操作,但部分企业规范禁止使用视图。
2025-11-12 13:41:37
372
原创 MySQL快速入门——索引
MySQL索引快速入门摘要: 索引是提高数据库查询性能的关键技术,无需修改程序或增加硬件即可显著提升查询速度(可达百倍)。常见索引类型包括主键索引、唯一索引、普通索引和全文索引。通过800万条数据的雇员表演示,无索引查询耗时7.52秒,创建索引后查询时间降至0秒,验证了索引的高效性。索引原理基于优化磁盘IO操作,数据以扇区形式存储在磁盘上。需要注意的是,索引会降低插入、更新和删除操作的性能,需权衡读写需求进行合理设计。本文还介绍了创建海量测试数据的方法和索引的实际应用场景。
2025-11-11 21:21:08
921
原创 MySQL快速入门——表的内外连接
MySQL连接查询分为内连接和外连接。内连接使用WHERE或INNER JOIN筛选符合条件的记录,是开发中最常用的方式。外连接包含左外连接(LEFT JOIN)和右外连接(RIGHT JOIN),左连接会显示左表所有记录,右连接显示右表所有记录,未匹配的字段显示为NULL。示例展示了如何使用内连接查询SMITH员工信息,以及左/右外连接查询学生成绩,包括无成绩的学生和无对应学生的成绩记录。左右连接可以通过调换表顺序相互转换,掌握一种即可满足需求。
2025-11-10 20:34:53
268
原创 MySQL快速入门——复合查询
本文介绍了MySQL复合查询的基本操作,以经典的emp表为例,演示了多种查询技巧:1)使用条件组合查询满足特定条件的雇员信息;2)通过ORDER BY实现多字段排序;3)利用IFNULL函数计算年薪并排序;4)演示子查询找出工资最高的员工。这些示例涵盖了条件筛选、排序计算和嵌套查询等核心SQL技能,适合MySQL初学者快速掌握复合查询的常用方法。
2025-11-10 20:11:09
522
原创 MySQL快速入门——内置函数
本文介绍了MySQL常用的内置函数,主要分为日期函数和字符串函数两大类。日期函数包括获取当前日期、时间、时间戳的current_date()、current_time()、current_timestamp(),以及日期加减、计算日期差等功能。字符串函数则包含字符串连接、大小写转换、子串查找、长度获取等常见操作。通过具体案例展示了如何在表操作中应用这些函数,如显示留言日期、查询指定时间内的帖子等。这些内置函数可以大大简化SQL查询中的数据处理操作。
2025-11-09 21:25:14
788
原创 MySQL快速入门——基本查询(下)
本文介绍了MySQL中UPDATE和DELETE操作的基本语法及实际应用。UPDATE用于修改数据,通过示例展示了单字段更新(孙悟空数学成绩改为80)、多字段更新(曹孟德数学60分、语文70分)、条件更新(给总成绩倒数前三名的数学加30分)以及全表更新(所有学生语文成绩翻倍)。DELETE用于删除数据,示例演示了删除孙悟空同学的考试成绩。文章强调全表更新和删除操作的危险性,提醒谨慎使用。
2025-11-08 21:30:45
1012
原创 MySQL快速入门——基本查询(上)
MySQL基本查询操作摘要 本文介绍MySQL数据库中基本的CRUD操作,重点讲解Create(创建)和Retrieve(读取)两部分: Create操作: 单行全列插入:values必须包含所有列值 多行指定列插入:可批量插入多行数据 插入否则更新(on duplicate key):主键/唯一键冲突时更新已有数据 替换(replace):冲突时先删除再插入 Retrieve操作: 全列查询:SELECT * FROM(不推荐) 指定列查询:可自定义列顺序 表达式查询:包含常量表达式 结果展示:包含表结构
2025-11-07 21:47:32
777
原创 MySQL快速入门——表的约束
本文介绍了MySQL中常用的表约束类型,包括空属性(null/not null)、默认值(default)、列描述(comment)、零填充(zerofill)、主键(primary key)、自增长(auto_increment)和唯一键(unique key)。重点讲解了各类约束的作用、使用场景和实际案例,如not null保证数据不为空,default设置默认值,primary key确保字段唯一且非空,auto_increment实现自动递增,unique key保证业务字段不重复等。这些约束条件共
2025-11-07 16:38:28
624
原创 Qt的下载和安装【Windows】
Qt是一款跨平台的C++图形用户界面框架,支持Windows、Linux、macOS等多种操作系统。本文介绍了Qt的发展历史、支持平台、版本特点及优势,并详细讲解了在Windows系统下下载和安装Qt 5.14.2开发环境的过程。安装步骤包括:选择合适的版本、断网安装、设置英文路径、选择组件(建议全选)等。Qt Creator作为官方推荐的轻量级IDE,集成了可视化界面设计、代码编辑、调试等功能,适合开发桌面、移动和嵌入式应用程序。安装完成后即可开始Qt应用程序开发。
2025-11-07 15:45:42
613
原创 Kali安装AWVS漏洞扫描工具
本文介绍了在Kali Linux系统中安装AWVS漏洞扫描工具的详细步骤。首先将安装脚本和补丁文件复制到系统中,修改权限后执行安装程序,按照提示完成配置(包括主机名、邮箱和密码设置)。安装完成后,通过复制补丁文件到指定目录并运行来激活工具。为保护许可证文件不被修改,执行特定命令锁定相关文件权限。最后重启AWVS服务,通过浏览器访问本地端口完成登录验证。整个过程需在root权限下操作,确保安装顺利进行。
2025-11-07 12:22:44
314
原创 Kali的下载和安装【ISO安装】
本文介绍了渗透测试的基本概念和Kali Linux的下载安装方法。渗透测试是在授权情况下模拟攻击以评估系统安全性的过程,包括目标确定、信息收集、漏洞扫描、利用和报告等步骤。Kali Linux是专为渗透测试设计的发行版,文章详细讲解了通过ISO镜像在VMware中安装Kali的流程,包括虚拟机配置、磁盘分区、用户设置等关键步骤。建议初学者选择简单的分区方案和英语界面,以顺利完成安装并开始学习渗透测试技术。
2025-11-06 16:08:38
554
原创 ProtoBuf速成【基于C++讲解】
ProtoBuf快速入门摘要 ProtoBuf是一种高效的结构化数据序列化方法,具有语言无关、平台无关的特点。它通过定义.proto文件描述数据结构,使用protoc编译器生成对应语言的接口代码。相比XML,ProtoBuf更小、更快、更简单。本文通过通讯录1.0示例,演示了如何定义包含姓名和年龄的联系人message,并介绍了字段类型、编号规则等基本语法。编译.proto文件会生成C++头文件和源文件,开发者只需包含这些文件即可实现数据的序列化和反序列化操作。ProtoBuf特别适合用于网络通信和数据存储
2025-11-04 15:18:33
1147
2
原创 ProtoBuf安装【Windows/Linux】
本文详细介绍了在Windows和Linux(Ubuntu)系统下安装Protocol Buffers(ProtoBuf)的步骤。Windows安装部分包括下载编译器、解压安装包以及配置环境变量;Linux安装部分则涵盖了依赖库安装、源码下载编译以及环境配置等内容。文章还提供了安装成功后的验证方法,并通过图片和命令行示例帮助用户顺利完成安装。特别针对Linux系统可能出现的问题给出了解决方案,确保用户能够正确配置并使用ProtoBuf工具。
2025-11-01 17:44:39
849
原创 Docker使用【容器】
本文介绍了Docker容器的核心概念和使用方法。容器是镜像的运行实例,具有独立的命名空间隔离和资源限制,提供了初建、运行、停止、暂停和删除五种状态。文章通过生活案例类比镜像与容器的关系,并详细阐述了容器的生命周期管理,包括正常操作流程和异常处理(如OOM问题)。最后列举了常用的容器操作命令,涵盖创建、运行、监控、维护等全流程操作,重点解析了docker create命令的语法和关键参数,为容器化应用部署提供了实用指导。
2025-10-30 21:56:26
600
1
原创 Docker使用【镜像】
Docker镜像是只读的模板文件,用于创建容器。它采用分层存储结构(Union FS),每一层都是只读的文件系统,上层修改会覆盖底层可见性。镜像解决了环境一致性问题,通过打包完整的操作系统文件,实现应用便捷部署和共享。常用命令包括拉取(pull)、推送(push)、删除(rmi)、保存(save为tar文件)和加载(load)镜像等。镜像分层存储技术既节省空间又提高效率,是Docker的核心贡献之一。实战案例展示了如何拉取、存储和共享Nginx镜像。
2025-10-25 19:41:07
970
原创 Docker使用【Registry镜像仓库】
Docker镜像仓库概述 Docker镜像仓库(Registry)用于存储、管理和分发镜像,提供登录认证和镜像检索功能。镜像仓库分为公有(如DockerHub)和私有仓库(如Harbor),支持通过docker pull/push命令拉取或上传镜像。 核心内容 仓库分类:公有仓库对外开放(如DockerHub),私有仓库供内部使用(如企业自建Harbor)。 工作流程:开发人员推送镜像至仓库,测试/生产环境拉取使用。国内用户可配置镜像加速器(如阿里云)提升下载速度。 常用仓库: DockerHub:官方仓库
2025-10-24 21:05:12
642
原创 Docker基础【虚拟化/容器化/Docker是什么】
本文介绍了虚拟化和容器化的基本概念及其实现方式。虚拟化通过技术将一台计算机虚拟为多台逻辑计算机,提高资源利用率;容器化则是一种轻量级的虚拟化技术,共享操作系统内核。文章通过物理机、虚拟机和容器的比喻形象说明了三者的区别,并阐述了虚拟化和容器化的优势,包括资源隔离、环境标准化、弹性伸缩等。虚拟化实现方式分为主机虚拟化(Type1/Type2 Hypervisor)和容器虚拟化(基于Namespace和Cgroups)。容器利用Linux内核的Namespace实现资源隔离,确保各容器拥有独立的系统资源。相较于
2025-10-23 22:55:45
700
原创 Docker使用【Ubuntu安装/Windows安装】
Docker安装指南摘要 本文详细介绍了在Ubuntu和Windows11系统下安装Docker的完整流程。对于Ubuntu系统,重点说明了依赖检查、旧版本卸载、源配置、安装步骤以及镜像源和存储目录的配置方法。Windows11部分则涵盖虚拟化功能开启、WSL2安装和Docker桌面版下载安装的关键步骤。两种安装方式均包含详细的命令操作和配置说明,并配有验证安装成功的检查方法。文章还特别强调了生产环境推荐使用Server版本,并提供了修改Docker默认存储目录的解决方案,适用于不同磁盘空间需求的场景。
2025-10-22 21:50:46
1229
原创 LXC容器操作实战【Linux】
本文介绍了LXC容器的基本操作和实战演练。首先概述了8个常用LXC命令,包括容器创建、启动、查看、进入和删除等操作。接着详细说明了在Ubuntu系统上安装LXC的步骤和卸载方法。最后通过实际操作演示了创建Ubuntu容器、启动运行、进入容器执行命令以及停止删除容器的完整流程。文章提供了详细的命令示例和截图说明,适合初学者快速掌握LXC容器的基本使用方法。
2025-10-21 15:49:19
541
原创 CGroups资源控制实战【Linux】
本文介绍了CGroups资源控制的实战操作。首先讲解了pidstat和stress工具的基础用法,包括安装和常用参数。然后通过三个实操案例演示了CGroups的实际应用:1) 查看系统CGroups版本、子系统和挂载信息;2) 使用CGroups对内存进行控制,成功限制进程内存使用;3) 使用CGroups对CPU进行控制,将进程CPU使用率限制在20%。每个案例都详细展示了命令操作步骤和效果验证过程,图文并茂地记录了资源限制前后的系统状态变化,为Linux系统资源管理提供了实用参考。
2025-10-20 16:52:27
723
原创 Namespace隔离实战【Linux】
本文介绍了Linux命名空间隔离的实战操作,重点讲解了dd、mkfs、df、mount和unshare等关键命令的使用。文章通过两个实战案例演示了PID和Mount命名空间的隔离:使用unshare命令创建PID隔离的新bash进程后,进程列表仅显示当前命名空间的进程;在Mount隔离环境下创建并挂载磁盘镜像,外部进程无法看到该挂载点。实验表明,命名空间隔离能有效限制进程的视图范围,当隔离进程退出后,相关挂载操作会自动卸载。这些技术为容器化提供了基础隔离机制。
2025-10-19 17:45:27
585
原创 VSCode配置mql开发环境
本文介绍了如何在VSCode中配置MQL开发环境。首先安装MQL Tools插件,然后通过四步操作完成配置:1)打开MQL4/5文件夹;2)添加编译器路径和标准库路径;3)生成settings.json配置文件;4)添加文件图标。配置完成后即可在VSCode中编写MQL代码,并通过快捷键编译,最后在MetaTrader平台运行生成的EA程序。该配置显著提升了MQL开发体验,解决了原生编辑器功能不足的问题。
2025-10-13 17:01:38
838
原创 Python异步编程
Python异步编程摘要(148字) Python异步编程主要通过协程实现轻量级并发。协程是用户态线程,通过事件循环调度实现单线程并发,比进程/线程更高效。核心要点:1)使用async/await语法定义协程;2)通过asyncio.run()启动事件循环;3)用create_task将协程转为任务实现并发;4)TaskGroup可批量管理并发任务。关键优势在于:1)资源消耗低;2)适合I/O密集型场景;3)避免GIL限制。注意协程中必须使用异步I/O(如asyncio.sleep),同步操作会阻塞事件循环
2025-07-13 16:53:54
920
原创 封装Tcp Socket
本文中用到的Log.hpp。TCP相对于UDP更加复杂,这里只介绍TCP的封装,学习完后,大家可以自己尝试UDP的封装。1. 服务端if(argc!sleep(1);// 注意资源的释放return 0;2. 客户端if(argc!if(!return 0;sleep(1);return 0;3. 通信测试。
2025-04-13 16:42:46
641
原创 Backtrader从0到1——Data Feeds【入门篇】
所谓Data Feeds,翻译过来就是数据推送。笔者在学习Data Feeds模块时,发现官网上很多部分的代码都过分冗余,并且真正有实际应用意义的内容也不多。本文将着重介绍CSV格式文件的加载方式,以及pandas数据的加载方式。笔者在加载这些数据时,已经形成了一套自己的体系,包括CSV文件内容格式,如何读取,以及自定义CSV类型参数持久化,都有自己的一套规范。希望大家在学习时,也能形成一套自己的使用体系。
2025-04-12 15:25:44
1301
原创 Backtrader从0到1——第一个回测策略
本人翻阅了大量资料,以及市面上的Backtrade教程,大多都晦涩难懂,或者模棱两可,也不系统。迫于无奈,只能通过Backtrader的官方文档慢慢学习。可官方文档是英文的,使用翻译软件翻译的结果,也差强人意,只能凭借着即将消失的英文记忆,慢慢啃原文。于是,笔者决定,将啃到的内容做一下整理,分享给大家。也是做一个Backtrader的系统性教程,希望大家支持。本系列文章除了讲解文档中的内容外,还有一些我自己的理解。笔者不生产文档,只是文档的搬运工!!!
2025-04-10 23:17:49
1336
原创 CSRF跨站请求伪造——入门篇【DVWA靶场low级别writeup】
本文将带你实现一次完整的CSRF攻击,内容较为基础。了解cookie;已经安装了DVWA的靶场环境(本地的或云的);下载了专业版BurpSuite;1. 模拟一次“正常”的上网行为有一天,我打开了一个银行的网页(我们模拟的银行网站),想要给我的朋友转钱:转完钱后,我又去浏览了其他“好看”的网页:看了一会儿之后,再次回到银行页面查看余额,发现钱没了!!!又刷新了一次好看的页面,再去看银行,钱更少了!!!这是什么情况?2. 分析作为一名网络安全的选手,怎么甘心钱就这么消失了呢?肯定有猫腻。
2025-04-03 22:44:40
1195
原创 PHP基础二【变量/输出/数据类型/常量/字符串/运算符】
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问(先创建,再访问),要在一个函数中访问一个全局变量,需要使用。在上面的例子中,我们不难发现,在给变量赋值时,不需要指定变量的数据类型,编译器会根据所给的值自行判断。你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。我们把5赋值给变量x,把6赋值给变量6,把x+y的值,赋值给变量z,最后输出z的值。在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
2025-04-03 17:52:45
1266
原创 Ollama部署本地大模型【部署DeepSeek】
总的看来,大模型的本地部署,有它的必要性(数据安全问题),但是也有很大局限性,尤其是在硬件资源不足的情况下,很难运行起来。即使能运行,资源不足,也是一些“智障”模型。!!
2025-04-02 16:28:32
1038
原创 守护进程化
相信大家已经知道它的两个参数是什么意思了,和我们写的功能一样,只不过含义相反。但是我们一般不建议使用系统的。,因为不同系统的这个函数,默认行为可能有所差别,还是使用自己的比较稳妥,且这个接口实现起来也不麻烦。终端是“窗口”,提供交互界面;Bash是“大脑”,处理命令逻辑。系统也提供了将进程守护化的接口。
2025-03-24 23:28:09
668
原创 网络编程套接字【端口号/TCP&UDP/网络字节序/socket编程接口/UDP&&TCP网络实验/TCP通信全流程】
学习日志。并且要对Linux系统有一定的了解,遇到知识盲区可以去看我的Linux专栏。
2025-03-18 22:44:26
1205
原创 网络基础(一)【网络发展/认识协议/网络 VS 系统/以太网通信原理/重谈协议/网络中的地址管理】
同一个局域网中的主机,连接在同一个网线中,如果主机A想向主机B发送一个消息“你好”,只需要知道主机A和主机B网卡的mac地址即可,这个信息携带着主机A和主机B网卡的mac地址,发送到了网线上,所有连接在这个网线上的主机都收到了这个信息,只是有的主机解析该信息后,发现mac地址不是自己的,也就不是发给自己的,就把这个信息丢弃了。在同一个局域网中,两台主机可以直接通信,每一个网卡都有一个mac地址,这个mac地址是全球唯一的(mac地址也可以虚拟,例如虚拟机的mac地址就是虚拟出来的)
2025-03-08 23:19:56
1119
原创 MySQL快速入门——数据类型
说明:不建议在添加枚举值,集合值的时候采用数字的方式,因为不利于阅读。表示的范围更大,其他所有地方都一样。即可,只是占空间8个字节,比。
2025-02-25 15:28:20
788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅