<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[即使是不成熟的尝试，也胜于从不执行的策略。]]></title><description><![CDATA[赢的人反思：侥幸在哪里；输的人反思：哪些事情做好了，我们就会赢。]]></description><link>https://blog.youkuaiyun.com/brawly</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; brawly]]></copyright><item><title><![CDATA[Mac 上怎么找到这个目录 /Users/你的用户名/Library/Application Support/JetBrains]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/161456735</link><guid>https://blog.youkuaiyun.com/brawly/article/details/161456735</guid><author>brawly</author><pubDate>Wed, 27 May 2026 15:53:01 +0800</pubDate><description><![CDATA[摘要：本文介绍如何在Mac上访问JetBrains软件的隐藏配置目录~/Library/Application Support/JetBrains。提供两种方法：1）通过访达快捷键Shift+Command+G直接输入路径；2）手动显示隐藏文件后逐层查找。特别提醒该目录包含重要配置数据，删除会导致设置重置，并强调修改软件可能带来的安全风险。最后询问是否需要补充配置文件备份方法。（149字）]]></description><category></category></item><item><title><![CDATA[【大模型】1_智能体 _命令行安装OpenClaw并接入本地模型]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159426814</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159426814</guid><author>brawly</author><pubDate>Tue, 24 Mar 2026 14:52:28 +0800</pubDate><description><![CDATA[飞书在保存长连接配置时会实时检测 WebSocket 连接——如果 OpenClaw 网关未运行，飞书会报"未检测到应用连接信息"错误，无法保存。第六步：进入"版本管理与发布"，点击"创建版本"，填写版本号后提交发布申请。第二步：创建企业自建应用：点击"创建企业自建应用"，填写名称（如"OpenClaw 助理"）和描述，点击"创建"。2、选择"Feishu/Lark"，输入 App ID 和 App Secret，其余保持默认。第四步：进入"添加应用能力" → “机器人”，点击"添加"。]]></description><category></category></item><item><title><![CDATA[IOS历史版本下载]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159350267</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159350267</guid><author>brawly</author><pubDate>Sun, 22 Mar 2026 13:42:36 +0800</pubDate><description><![CDATA[摘要： 本文介绍了一款用于搜索和下载iOS应用包(ipa文件)的命令行工具。主要内容包括：1）通过auth login命令登录指定地区的Apple账号；2）使用list-versions查询应用历史版本号，以优快云 Plus为例展示版本列表；3）通过download命令下载指定版本号的ipa文件。该工具支持身份验证、版本查询和下载功能，适用于开发者获取应用历史版本。]]></description><category></category></item><item><title><![CDATA[【项目部署】1_TPShop环境部署、数据库验证]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159345525</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159345525</guid><author>brawly</author><pubDate>Sun, 22 Mar 2026 02:03:39 +0800</pubDate><description><![CDATA[本文详细介绍了TPshop电商项目的环境部署与验证流程。主要内容包括：1）环境安装步骤，推荐使用LNMP一键安装套件；2）部署验证方法，通过systemctl命令检查MySQL、Nginx、PHP等服务状态；3）项目部署具体操作，涵盖文件上传、权限设置、Nginx配置修改等；4）数据库初始化与TPshop安装步骤；5）数据库表结构说明及常用SQL查询示例。文章提供了完整的项目部署流程和常见问题解决方案，适合开发人员参考实施电商项目部署。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】8_python版 _树与树算法]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159173036</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159173036</guid><author>brawly</author><pubDate>Tue, 17 Mar 2026 20:24:29 +0800</pubDate><description><![CDATA[树是一种重要的非线性数据结构，由节点和边组成的层次集合。它具有根节点、子节点、父节点等基本概念，以及度、深度、高度等术语。二叉树是每个节点最多有两个子树的树结构，具有先序、中序、后序三种深度优先遍历方式，以及广度优先的层次遍历。树在计算机科学中有广泛应用，如数据库索引、文件系统、AI算法等。树的存储结构分为顺序存储和链式存储，通常采用链式存储实现。二叉树还具有完全二叉树、平衡二叉树等特殊类型，满足不同的应用需求。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】7_python版 _搜索]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159172993</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159172993</guid><author>brawly</author><pubDate>Tue, 17 Mar 2026 20:21:10 +0800</pubDate><description><![CDATA[摘要：本文介绍了搜索算法中的二分查找方法。二分查找针对有序列表，通过折半比较快速定位目标元素，具有查找速度快但要求数据有序的特点。文章详细阐述了二分查找的原理、实现条件（必须有序且支持下标索引），并提供了Python递归与非递归两种实现方式。同时分析了算法的时间复杂度，最优情况O(1)，最坏情况O(logn)。二分查找适用于不常变动但频繁查询的有序数据集。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】6_python版 _排序算法]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159128620</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159128620</guid><author>brawly</author><pubDate>Mon, 16 Mar 2026 19:31:40 +0800</pubDate><description><![CDATA[本文介绍了三种基础排序算法：冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换实现排序，最优时间复杂度O(n)，最坏O(n²)，稳定；选择排序每次选择最小元素放置有序序列末尾，时间复杂度均为O(n²)，不稳定；插入排序将无序元素插入有序序列正确位置，最优O(n)，最坏O(n²)，稳定。文章详细阐述了各算法的原理、代码实现（Python示例）及时间复杂度分析，并比较了它们的效率差异。这些排序算法是计算机科学中处理数据排序的基础方法。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】5_python版 _队列]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159128584</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159128584</guid><author>brawly</author><pubDate>Mon, 16 Mar 2026 19:26:27 +0800</pubDate><description><![CDATA[本文介绍了队列和双端队列的基本概念及Python实现。队列是先进先出（FIFO）的线性表，支持队尾插入和队头删除操作。文章展示了用顺序表实现的队列类，包含入队、出队等基本方法。双端队列则允许在两端进行插入和删除操作，兼具队列和栈的特性，文中同样给出了Python实现代码，包含头部/尾部添加删除等方法。两种数据结构都提供了判空和获取大小等基础功能，并通过示例代码演示了其基本操作流程。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】4_python版 _栈（堆栈）]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159051049</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159051049</guid><author>brawly</author><pubDate>Sat, 14 Mar 2026 18:19:52 +0800</pubDate><description><![CDATA[栈是一种遵循后进先出（LIFO）原则的数据结构，只允许在栈顶进行插入（push）和删除（pop）操作。它可以通过顺序表或链表实现，主要操作包括创建空栈、入栈、出栈、查看栈顶元素、判断是否为空及获取元素个数。示例代码展示了基于顺序表的Python实现，使用列表存储数据，并通过append和pop方法模拟栈操作。栈结构广泛应用于计算机科学领域，如函数调用、表达式求值等场景。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】3_python版 _链表]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159049979</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159049979</guid><author>brawly</author><pubDate>Sat, 14 Mar 2026 18:17:26 +0800</pubDate><description><![CDATA[摘要： 链表是一种动态数据结构，相比顺序表更灵活，无需预先分配连续内存空间。单链表由节点组成，每个节点包含数据域和指向下一节点的指针域。主要操作包括：判断空链表、获取长度、遍历、头部/尾部/指定位置插入、查找和删除节点。Python实现中，通过Node类表示节点，SingleLinkList类封装链表操作，利用游标遍历节点。链表通过改变节点间的指针实现动态增删，避免了顺序表数据搬迁的开销，适用于频繁插入删除的场景。测试代码展示了链表基本操作的正确性。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】2_python版 _顺序表]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159018688</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159018688</guid><author>brawly</author><pubDate>Fri, 13 Mar 2026 21:31:08 +0800</pubDate><description><![CDATA[线性表是程序中管理一组同类型元素的基本数据结构，分为顺序表和链表两种实现形式。顺序表通过连续存储或外置索引方式实现，具有O(1)访问效率。其结构可分为一体式（固定容量）和分离式（动态扩容），后者通过加倍扩容策略优化性能。主要操作包括保序/非保序的插入删除，时间复杂度从O(1)到O(n)不等。Python的list采用分离式动态顺序表实现，初始分配8元素空间，按4倍或加倍策略扩容，既保证高效访问又支持动态增长。tuple则是不可变的顺序表实现。这种设计平衡了空间效率与操作性能。]]></description><category></category></item><item><title><![CDATA[【数据结构与算法】1_python版 _算法概念]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/159018619</link><guid>https://blog.youkuaiyun.com/brawly/article/details/159018619</guid><author>brawly</author><pubDate>Fri, 13 Mar 2026 21:26:04 +0800</pubDate><description><![CDATA[本文系统介绍了算法的基本概念和效率衡量方法。首先阐述了算法的五大特性：输入、输出、有穷性、确定性和可行性。然后重点讲解了时间复杂度分析，包括大O记法、最坏时间复杂度等核心概念，并给出了时间复杂度计算规则。通过Python内置类型性能分析实验，比较了不同列表操作的时间复杂度差异。最后探讨了数据结构与算法的关系，指出程序是数据结构与算法的结合。全文从理论到实践，为算法设计与分析提供了系统性指导。]]></description><category></category></item><item><title><![CDATA[selenium_manager- error trying to connect: 远程主机强迫关闭了一个现有的连接]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158977541</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158977541</guid><author>brawly</author><pubDate>Thu, 12 Mar 2026 20:57:19 +0800</pubDate><description><![CDATA[摘要： 使用Selenium测试网页时出现错误&quot;远程主机强迫关闭连接&quot;(错误10054)，原因是Chrome浏览器自动更新后与ChromeDriver版本不匹配。解决方法是通过指定ChromeDriver路径来更新驱动版本。示例代码展示了如何导入必要模块、创建Service对象指定驱动路径、初始化浏览器对象并执行测试流程，最后关闭浏览器。关键是在代码中明确设置ChromeDriver的可执行路径，从而解决版本不兼容问题。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】8_TPshop项目实战 _APP-根据频道搜索新闻]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158977499</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158977499</guid><author>brawly</author><pubDate>Thu, 12 Mar 2026 20:55:40 +0800</pubDate><description><![CDATA[本文介绍了移动端自动化测试的实现过程，主要分为环境准备和APP测试两部分。在环境准备中，通过安卓模拟器连接设备，使用uiautomatorviewer识别元素，并启动Appium Server进行测试。APP测试部分采用PO模式封装页面对象，实现根据频道搜索新闻的功能。测试案例通过定位频道区域并滑动查找目标频道，验证搜索结果。当测试失败时，会将错误截图保存至Allure报告。整个流程展示了从环境搭建到自动化测试执行的完整方案，适用于移动应用的UI自动化测试场景。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】7_TPshop项目实战 _前台-门户网站]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158932884</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158932884</guid><author>brawly</author><pubDate>Wed, 11 Mar 2026 19:44:11 +0800</pubDate><description><![CDATA[本文介绍了基于PO模式的门户网站自动化测试框架实现。系统采用分层设计，包含页面对象封装层（buyer_page包）和测试脚本层（buyer_script包）。通过IndexPage类实现商品搜索功能，GoodsPage类处理商品详情页和购物车操作。测试用例使用pytest框架编写，包含搜索商品和加入购物车两个核心测试场景。框架实现了浏览器驱动管理、全局商品参数配置、测试顺序控制等功能，并集成allure报告系统捕获异常截图。整个测试流程可重复执行，实现了后台商品发布与前台搜索验证的联动测试。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】6_TPshop项目实战 _allure测试报告]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158932855</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158932855</guid><author>brawly</author><pubDate>Wed, 11 Mar 2026 19:41:21 +0800</pubDate><description><![CDATA[本文介绍了Allure测试报告的安装与使用方法。首先需下载Allure工具包并配置系统环境变量，安装allure-pytest插件并配置pytest.ini文件。生成测试报告分为两步：运行测试用例生成数据文件，再通过命令行将数据文件转换为HTML格式报告。最后介绍了如何在报告中插入错误截图，使用allure.attach方法指定图片类型即可。文中提供了详细的配置步骤和示例代码，并附有相关操作截图说明。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】5_TPshop项目实战 _批量运行测试用例（重点）]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158891837</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158891837</guid><author>brawly</author><pubDate>Tue, 10 Mar 2026 20:21:31 +0800</pubDate><description><![CDATA[本文介绍了如何批量运行测试用例及优化代码的方法。主要内容包括：1）通过pytest.ini配置文件实现批量运行测试用例；2）优化代码逻辑，使批量运行时仅打开/关闭一次浏览器；3）使用pytest-ordering插件对测试用例进行排序控制执行顺序；4）添加开关控制批量运行时的浏览器关闭时机；5）通过命令行运行pytest测试。这些优化措施使自动化测试更接近手工测试流程，提高了测试效率。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】4_TPshop项目实战 _后台管理-新增商品成功]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158891795</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158891795</guid><author>brawly</author><pubDate>Tue, 10 Mar 2026 20:18:35 +0800</pubDate><description><![CDATA[本文介绍了商品管理系统的自动化测试实现，主要包含页面封装和测试脚本两部分。页面封装部分通过AdminBasePage基类实现了后台系统的页面元素定位和操作逻辑，包括登录页面、主页和商品管理页面。测试脚本部分使用Selenium WebDriver完成登录、页面跳转和商品添加的完整流程测试，并包含断言验证和异常处理机制。代码结构清晰，实现了商品管理系统的核心功能测试，包括iframe切换、下拉框选择和表单提交等典型操作场景。测试过程中还加入了截图功能以便于问题排查。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】3_TPshop项目实战 _一个测试用例脚本编写过程]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158852434</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158852434</guid><author>brawly</author><pubDate>Mon, 09 Mar 2026 21:43:09 +0800</pubDate><description><![CDATA[本文介绍了后台登录测试脚本的编写过程。首先通过PO模式封装登录页面元素定位和操作步骤，包括用户名、密码、验证码输入框和登录按钮的定位及登录方法实现。然后构建测试用例类，在setup阶段初始化浏览器并打开测试网址，在teardown阶段关闭浏览器。测试方法中调用封装好的登录方法执行测试，并通过文本断言验证登录结果，失败时自动截图保存。整个流程展示了从页面封装到测试用例实现的完整测试脚本开发过程。]]></description><category></category></item><item><title><![CDATA[【UI自动化测试】2_TPshop项目实战 _初始化代码编写（重点）]]></title><link>https://blog.youkuaiyun.com/brawly/article/details/158852349</link><guid>https://blog.youkuaiyun.com/brawly/article/details/158852349</guid><author>brawly</author><pubDate>Mon, 09 Mar 2026 21:38:57 +0800</pubDate><description><![CDATA[本文摘要： 该代码实现了一个自动化测试工具集，主要包含三个部分：1) DriverUtils类提供Web和App驱动管理功能，支持Chrome浏览器和Appium移动端测试；2) 实用函数包括元素文本获取(el_is_exist_by_text)、元素存在判断(get_el_text)和测试数据读取(build_data)；3) pytest配置文件和全局配置模块。工具集实现了跨平台(Web/App)的自动化测试支持，包含驱动管理、元素操作、断言验证等功能，并通过pytest.ini配置了测试报告生成和测试]]></description><category></category></item></channel></rss>