自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python:实现一个算法来压缩字符串

【代码】python:实现一个算法来压缩字符串。

2025-06-06 18:00:31 108

原创 RADIUS-管理员获取共享密钥

共享密钥是 RADIUS 通信的“信任锚点”,管理员通过它实现:

2025-06-05 16:50:44 902

原创 RADIUS-如何获取凭证

获取 RADIUS 凭证(即用于 RADIUS 认证的用户名和密码/密钥)取决于您的角色和场景。合同/设备标签:查看光猫或路由器背面的贴纸(部分运营商将 RADIUS 密码印在设备上)。禁止明文存储密码 → 始终使用哈希(如 SHA-1, MD5)或加密字段。默认凭证:初始密码可能为身份证后6位、学号等(首次登录需修改)。开户时获取:办理业务时工作人员提供用户名密码(如。用户仅分配必要权限(如限制带宽/VLAN)。:查看 RADIUS 配置文件(如。定期轮换密钥(如每 90 天)。

2025-06-05 16:46:33 533

原创 RADIUS 协议 (Remote Authentication Dial-In User Service)

负责对用户进行认证(Authentication)、授权(Authorization)和记账(Accounting)。集成于 VPN、WiFi 网络(如 WPA2-Enterprise)、运营商宽带等场景。确定用户权限(如分配 IP 地址、带宽限制、VLAN 等)。支持多种认证方式:PAP、CHAP、EAP(扩展性强)。通过配置策略动态授权(如基于用户组、时间段的访问控制)。记录用户会话信息(登录/登出时间、流量使用等)。验证用户身份(如用户名/密码、数字证书)。支持代理和漫游(跨域认证)。

2025-06-05 16:37:22 401

原创 LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)认证

它是企业IT基础设施中实现统一身份认证(IAM)的基石,解决了用户信息分散、管理困难、认证不一致的核心痛点。:相比更复杂的目录协议(如X.500),LDAP 设计简洁,适合 TCP/IP 网络,易于实现。:几乎所有主流系统(操作系统、邮件、VPN、Web应用、网络设备)都支持 LDAP 认证集成。:用于执行认证操作的用户DN(可以是最终用户,也可以是用于搜索的应用服务账号)。(如用户账号、部门、权限等)的通信协议。目录数据按树状结构组织(类似DNS)。= 档案页上的信息(姓名、电话、邮箱、职位、工位号)。

2025-05-30 15:59:40 564

原创 连续质数和

因为 41小于100 且 41是一个质数 ,还是6个连续质数2 + 3 + 5 + 7 + 11 + 13的和。编写一个程序,找出一个小于指定数的质数,且该质数可以表示为最多连续质数的和。

2025-05-23 16:40:14 242

原创 快速排序(Quick Sort)Python 实现

通过选择一个基准元素将数组分为两部分,递归排序子数组,最终合并完成整体排序。快速排序体现了“分而治之”的核心思想,是学习高级算法(如快速选择、分治策略)的重要基础。:从数组中选择一个元素作为基准(通常选第一个、最后一个或中间元素)。将数组分为两部分:比基准小的元素放在左侧,比基准大的元素放在右侧。:对左右子数组重复上述步骤,直到子数组长度为1或0(天然有序)。基准值最终位于正确的位置(即排序后的最终位置)。:不稳定(分区操作可能改变相同元素的相对位置)。:选择首、中、尾元素的中位数作为基准。

2025-05-22 17:21:41 370

原创 选择排序 Python实现

选择排序是一种简单直观的排序算法,通过重复选择未排序部分的最小元素并放置到已排序部分的末尾。选择排序的核心思想是逐步确定元素的位置,虽然效率不高,但代码简单易懂,适合教学或简单应用场景。:将数组分为已排序(左)和未排序(右)两部分。初始时,已排序部分为空。:将最小元素与未排序部分的第一个元素交换,将其纳入已排序部分。第4轮:找到最小值25(已在位),数组不变。:不稳定(可能改变相同元素的相对位置)。:遍历未排序部分,找到最小元素的索引。:重复上述步骤,直到所有元素排序完成。:O(1)(原地排序)。

2025-05-22 17:17:55 249

原创 二分查找 Python 实现

默认返回任意一个匹配的索引。若需找到第一个或最后一个,需修改条件(参考。二分查找(Binary Search)是一种高效的搜索算法,适用于。否则需先排序(排序成本可能抵消二分查找的优势)。通过不断将搜索范围缩小一半,快速定位目标值的位置。需要频繁查找但数据不频繁变动的情况。内存有限时(二分查找无需额外空间)。,初始时分别指向数组的起始和末尾。(索引2),匹配成功,返回索引2。,效率远高于线性搜索(O(n))。(如数据库索引、日志文件)。或抛出异常,依需求而定。时,未找到目标,返回。大 → 搜索左半部分。

2025-05-22 17:06:01 396

原创 python: *args 与 **kwargs 用法

特性*args**kwargs参数类型位置参数关键字参数打包为元组字典解包对象列表/元组字典典型应用可变数量输入动态配置选项语法位置普通参数之后所有参数最后掌握*args和**kwargs能显著提升代码的灵活性和可扩展性!

2025-05-14 17:49:16 723

原创 python: union()函数用法

union()是集合操作中高效的去重合并工具。支持合并多个集合或可迭代对象。若需保留元素顺序,需将结果转为列表后排序。

2025-05-13 18:34:48 644

原创 python: update() 函数的用法和例子

函数通常用于字典(dictionary)对象,以更新其键值对。该函数会将另一个字典或可迭代对象中的元素添加到当前字典中,如果键已经存在,则覆盖对应的值;如果键不存在,则添加新的键值对。被关键字参数中的内容更新了,添加了新的键值对。中的内容更新了,其中键。中的内容更新了,其中键。,并且添加了新的键值对。,并且添加了新的键值对。在 Python 中,

2025-05-09 17:17:44 473

原创 python: 列表切片

Python 中的列表切片语法是一种非常灵活且强大的方式,用于获取列表的一部分元素。这里,start是切片开始的位置的索引(包含),stop是切片结束的位置的索引(不包含),而step是切片的步长,即每次跳跃的元素数。

2025-05-08 18:24:46 340

原创 栈和调用栈(Call Stack )的区别

在程序内存布局中,栈(Stack Memory)是一块预分配的内存区域,专门用于存储调用栈的栈帧。因此,“栈”有时也指这块内存区域,而“调用栈”是其中存储的具体内容。栈(Stack)和调用栈(Call Stack)是计算机科学中密切相关的两个概念,但它们在不同上下文中扮演不同的角色。调用栈是栈的一个具体应用,利用栈的 LIFO 特性管理函数调用顺序。栈是通用数据结构,而调用栈是栈的一种特定应用。两者关系类似于“工具”和“工具的用途”——调用栈依赖栈的特性,但专为程序执行服务。操作受限:仅允许在栈顶操作。

2025-05-08 14:58:40 811

原创 判断程序是否使用调用栈(Call Stack)

在 IDE(如 VS Code、PyCharm)中设置断点,运行时可查看完整的调用栈信息(如当前函数、调用链)。异步任务可能通过事件循环(Event Loop)而非调用栈管理,但同步代码仍使用调用栈。程序崩溃时,错误信息中通常包含堆栈跟踪(Stack Trace),明确显示调用栈内容。若编译器优化尾递归,栈帧会被复用,调用栈深度不变,但本质上仍在使用调用栈。:任何函数或方法的嵌套调用(包括递归)都会隐式使用调用栈。若代码仅通过循环(而非函数调用)实现逻辑,不涉及调用栈。,直接证明调用栈被使用。

2025-05-08 14:40:37 836

原创 调用栈(Call Stack)

当函数A调用函数B时,函数A的当前状态(如变量、执行位置)会被暂存,函数B被压入栈顶;程序出错时,调试工具会显示调用栈信息(如错误日志中的堆栈跟踪),帮助定位错误发生的位置。如果递归函数没有终止条件,或函数调用层级过深,栈空间会被耗尽,导致程序崩溃(如抛出。调用栈是程序运行的基础机制,理解它对掌握代码执行逻辑、调试和优化至关重要。函数执行结束后,返回值会传递给调用者(上一个栈帧)。:确保递归有终止条件,或改用迭代(循环)降低栈深度。:通过断点查看调用栈,理解代码执行流程。每个函数调用在栈中对应一个。

2025-05-08 14:35:21 215

原创 python:​‌ elif 和多个 if 连用的主要区别

‌互斥性‌:elifelifelseifif if if ‌执行顺序‌:elif‌if if if if ‌性能‌:elif‌if if ‌可读性‌:

2025-04-28 15:37:22 258

原创 python: range()函数用法总结

函数用于生成一个不可变的整数序列,常用于循环操作和生成索引。函数能满足大多数整数序列生成需求,是Python中高效且常用的工具。返回迭代器(惰性计算),适合处理大范围数据。对象不可直接修改,需转换为列表(如。返回生成器(类似Python3的。:所有参数必须为整数,否则抛出。,行为等同于Python2的。:Python3 的。

2025-04-17 15:03:23 640

原创 在用户目录下创建了 .ssh,用ll 查看时未显示

这个问题可能是由于隐藏文件不显示造成的。在Linux中,以点()开头的文件是隐藏文件,通常在文件管理器中不会默认显示。

2025-04-15 17:49:47 351

原创 Conda 的常用命令

命令时,如果后面没有指定具体的环境名称,Conda会自动激活这个基础环境,因此在命令行提示符中会显示。1. 创建环境 → conda create -n myenv python=3.9。2. 激活环境 → conda activate myenv。5. 退出环境 → conda deactivate。环境是默认的环境,包含了基本的包和库。这表示你当前的工作环境是这个基础环境‌。这样就会返回到基础环境(base)‌。如果你想要切换到其他环境,可以在。创建新环境隔离依赖。

2025-04-15 17:34:48 514

原创 使用 PyCharm 创建 Python 项目时,默认生成的 .venv 文件夹是属于什么类型的虚拟环境

PyCharm 在创建 Python 项目时,默认生成的.venv文件夹属于 ‌venv。

2025-03-26 18:19:07 2009

原创 当键入网址,到网页回显,期间发生了什么

2025-03-25 17:45:18 115

原创 JSONPath 的介绍

类似于 XPath(用于 XML),JSONPath 是一种。,用于通过路径表达式定位 JSON 结构中的节点。筛选符合条件的数据(如价格大于 100 的商品)。动态解析 API 返回的 JSON 响应。从复杂嵌套的 JSON 中提取特定字段。:对超大 JSON 数据谨慎使用递归。:不同库的过滤语法可能略有不同(如。:JSON 属性名是大小写敏感的。:轻量级库,语法略有差异。:数组的第一个元素索引为。

2025-03-21 09:53:57 605

原创 接口自动化脚本优化的多个关键维度及具体方法总结

CI/CD集成与团队通知提升协作效率。:并行执行与依赖复用缩短测试时间。:分层设计与日志报告提升可维护性。:精准覆盖业务场景和异常分支。:异常处理和容错机制减少误报。

2025-03-14 17:56:14 809

原创 UI自动化:poium测试库使用文档

通过Page类和Element类实现Page层元素层的定义。

2025-03-13 15:03:01 949

原创 UI自动化:poium测试库

基于 Selenium 的。

2025-03-12 17:55:32 1136

原创 UI自动化:seldom框架和Selenium

是 Selenium 的。

2025-03-12 16:26:28 1130

原创 Python中的`if __name__ == ‘__main__‘`这个语句的作用

让代码既能作为工具库被其他模块复用,又能独立运行完成特定任务。是一个常见的代码块,用于控制脚本的执行逻辑。块内的代码才会被执行;如果该文件被导入为模块,则不会执行。脚本的主入口:将主要逻辑放在此处,使模块可复用且可独立运行。是 Python 的一个内置变量,表示当前模块的名称。模块的测试代码:在开发时添加测试逻辑,避免被导入时触发。,当它被导入时,顶层的测试代码会被自动执行。的值是该模块的名称(即文件名去掉。:在模块中直接测试函数逻辑。:只有直接运行该文件时,在 Python 中,:主程序,导入并使用。

2025-03-11 17:53:02 541

原创 python:“魔法“方法

在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做魔法方法,如:__init__() 方法__init__() 方法,在创建一个对象时默认被调用,不需要手动调用__init__(self) 中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么中出了 self作为第一个形参外还需要2个形参,例如 __init__(self,x,y)__init__(self) 中的self参数,不需要开发者传递,python。

2025-03-11 17:43:13 181

原创 UI自动化:常用的元素定位工具

特殊情况:碰到元素在鼠标悬停后才会出现,移走鼠标后页面收缩,没办法去定位元素的信息。可以使用以下方法来进行定位:鼠标悬停到标签上后,在Sources中按Ctrl + \ 组合键,进入debug模式,动效JS会停止继续执行,然后正常定位元素信息即可。:右键元素 → Copy → Copy selector / Copy XPath(自动生成路径,但可能不够优化)。启动浏览器并录制操作,自动生成代码和定位表达式。输入 XPath 表达式,页面自动高亮匹配元素。点击元素,自动生成表达式并验证结果。

2025-03-11 11:53:39 873

原创 UI自动化:Selenium常规的页面元素定位方法

中定位页面元素是自动化测试的核心操作之一。:使用相对 XPath 或 CSS 选择器,减少对页面结构的依赖。掌握这些方法后,可以覆盖 99% 的页面元素定位场景!:ID 唯一且加载快,但部分动态页面可能缺失或重复。灵活性高,支持层级、属性、文本等多种定位方式。:适用于表单元素,但 Name 可能不唯一。性能略低于 CSS 选择器,但适合复杂场景。:Class 可能重复,需确保唯一性。:改用 CSS 选择器或优化表达式。:使用其他固定属性或层级关系定位。:等待元素加载完成后再操作。中,或等待时间不足。

2025-03-10 18:03:49 1211

原创 几种常见的虚拟环境工具(Virtualenv、Conda、System Interpreter、Pipenv、Poetry)的区别和特点总结

在 PyCharm 中创建虚拟环境是一个非常直接的过程,可以帮助你管理项目依赖,确保不同项目之间的依赖不会冲突。

2025-03-10 15:21:15 1079

原创 UI自动化:Python + Selenium4.6+版本 环境搭建

通过环境变量指定驱动缓存位置:bash复制# Windows。

2025-03-07 18:06:36 1129

原创 UI自动化:Python + Selenium4.6以前的版本 环境搭建

以下是。

2025-03-07 18:01:24 790

原创 selenium 组成和原理

它支持多种浏览器和编程语言,能够模拟用户操作(如点击、输入、页面跳转等)。支持多语言(Java、Python、C#、JavaScript 等),通过语言绑定库调用 WebDriver。支持跨平台、跨浏览器测试(如同时运行 Chrome、Firefox、Safari)。每个浏览器(如 Chrome、Firefox、Edge)需要对应的驱动(如。:兼容 Chrome、Firefox、Safari、Edge 等主流浏览器。:直接与浏览器交互,执行自动化操作(如元素定位、表单提交、页面导航等)。

2025-03-07 16:54:51 798

原创 HttpRunner框架 核心知识的系统复习

基于 Python 的。

2025-03-06 17:32:42 1042

原创 unittest框架 核心知识的系统复习及与pytest的对比

适用场景:适合需要与Python标准库无缝集成的项目,或团队习惯xUnit风格。优势无需额外安装,兼容性强。清晰的类与方法结构。劣势:灵活性较低,扩展依赖第三方库。推荐搭配:结合ddt(参数化)、coverage(覆盖率)、(报告)提升效率。

2025-03-05 16:42:26 1055

原创 pytest框架 核心知识的系统复习

核心优势:简洁语法 + 插件生态 + 高度可定制化。最佳实践使用参数化减少重复代码。结合 CI/CD(如 Jenkins、GitHub Actions)自动化测试。通过 Allure 或 HTML 报告直观分析结果。

2025-03-05 16:25:03 1466

原创 用例设计方法在自动化测试中的应用

assert response.code == 400 # 无效等价类断言异常。assert response.code == 200 # 有效等价类断言成功。assert order.state == "paid" # 断言状态未改变。assert response.code == 403 # 断言权限错误。:使用工具(如Selenium、Cypress、Postman)模拟用户操作链。:使用工具自动生成边界值(如0, 1, max-1, max, max+1)。

2025-03-04 18:21:12 981

原创 轻松理解正交实验法

茶底:红茶、绿茶、乌龙茶甜度:全糖、半糖、无糖加料:珍珠、椰果、布丁如果全组合测试,一共要喝 3×3×3=27杯奶茶!但正交实验法的核心是:用最少的测试组合,覆盖最多的可能性。比如选9杯奶茶,就能覆盖所有因素的典型组合!列出所有影响因素(变量):茶底、甜度、加料。设计正交表:一张表格,每一行代表一种组合,每一列代表一个因素。测试这9种组合,就能发现大部分问题(比如乌龙茶+无糖+椰果是否难喝),而不需要喝27杯!覆盖性强:每个因素的每个值都和其他因素的值搭配过。例如:红茶、绿茶、乌龙茶都分别搭配过全糖、半糖

2025-03-04 18:13:55 279

空空如也

空空如也

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

TA关注的人

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