<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[norma_chai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/norma_chai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; norma_chai]]></copyright><item><title><![CDATA[面试题：reids缓存和数据库的区别]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/150773949</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/150773949</guid><author>norma_chai</author><pubDate>Mon, 25 Aug 2025 16:52:59 +0800</pubDate><description><![CDATA[Redis缓存和数据库的核心区别在于它们的定位不同。数据库是数据的持久化存储和真相源，保证数据的完整性和安全性；而Redis是基于内存的高速缓存，目的是提升系统的读写性能。在实际项目中，我们通常将两者结合使用，采用Cache-Aside模式。读请求优先访问Redis，miss后再读库并回写缓存；写请求则先更新数据库，再使对应的缓存失效，以保证数据一致性。]]></description><category></category></item><item><title><![CDATA[Fiddler不仅仅可以抓包]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/150771165</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/150771165</guid><author>norma_chai</author><pubDate>Mon, 25 Aug 2025 15:35:30 +0800</pubDate><description><![CDATA[本文档将深入探讨Fiddler在抓包之外的核心高级功能，揭示其作为前端调试、性能优化、安全测试和自动化辅助的“全能型应用诊断利器”的真正实力。它以瀑布流的形式直观展示了每个请求的耗时，包括DNS查询、TCP连接、TLS/SSL握手、发送请求、等待服务器响应（TTFB）和接收响应数据等阶段。这是Fiddler最强大的功能之一。它会展示这些请求的整体数据，如总请求数、总字节数、压缩后的字节数、各个响应码的统计以及全球各地的大致延迟模拟。Fiddler、Web调试、性能优化、Mock数据、安全测试、自动化。]]></description><category></category></item><item><title><![CDATA[权限越权概念]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/150771110</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/150771110</guid><author>norma_chai</author><pubDate>Mon, 25 Aug 2025 15:33:53 +0800</pubDate><description><![CDATA[权限越权（Privilege Escalation）一个用户（或程序）访问了他本不应该有权限访问的资源或执行了本不应该有权限执行的操作。简单比喻：你的公司门禁卡只能刷开你所在楼层的门（这是你的正常权限）。如果你用某种方法刷开了CEO办公室或者机房的门，这就是“越权”。权限越权是一个严重的安全漏洞，意味着系统“认错了人”或“没查证件”，导致用户访问了超出其权限范围的内容。水平越权是“串门”，垂直越权是“夺权”。防止它的核心在于服务器端对每一次请求都进行严格的、不留死角的权限验证。]]></description><category></category></item><item><title><![CDATA[记录一下面试题：找字符串中第一次出现1次的字符]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/150615089</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/150615089</guid><author>norma_chai</author><pubDate>Fri, 22 Aug 2025 17:36:22 +0800</pubDate><description><![CDATA[print("第一次值只出现1次的字符是%s,位置在%s"%(s[index],index))print("没有只出现一次的字符")题目要求:找字符串中第一次出现1次的字符。面试的时候，脑壳有点懵，一时没想出来。]]></description><category></category></item><item><title><![CDATA[软件测试过程的V 模型，W模型，H模型]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/149348119</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/149348119</guid><author>norma_chai</author><pubDate>Tue, 15 Jul 2025 10:38:08 +0800</pubDate><description><![CDATA[V模型、W模型和H模型代表了软件测试过程的不同理念和方法。V模型提供了清晰的结构，W模型强调早期测试，H模型则提供了最大的灵活性。在实际项目中，测试专家应根据具体情境选择合适的模型或组合使用多种模型，以达到最佳的测试效果。随着敏捷和DevOps的普及，测试过程模型也在不断演进，但理解这些基础模型仍然对构建有效的测试策略至关重要。]]></description><category></category></item><item><title><![CDATA[pycharm无法通过用户名密码提交代码]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/146198989</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/146198989</guid><author>norma_chai</author><pubDate>Wed, 12 Mar 2025 10:47:45 +0800</pubDate><description><![CDATA[原因：新版pycharm默认自带gitlab插件，这个插件默认走令牌认证。可以通过禁用该插件的办法走用户名密码提交代码。在pycharm上通过git提交代码，要输入令牌登录，不能通过用户名密码登录提交代码。]]></description><category></category></item><item><title><![CDATA[Appium+python+雷电模拟器自动化测试入门（附带简单案例）]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/146096579</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/146096579</guid><author>norma_chai</author><pubDate>Fri, 07 Mar 2025 17:00:49 +0800</pubDate><description><![CDATA[如果devices有多个，可以通过adb -s deviceName shell dumpsys window | findstr "mCurrentFocus"，其中deviceName替换成你的设备名称。安装成功后，点击appium，此时APP会监听一个本地的端口，默认是 4723 端口，你可以自己修改成其他没有被占用的端口号。安装包下载完成之后，我们直接点击安装，这儿需要注意一个问题，在安装的时候选择。环境变量配置好之后，在cmd输入adb version,如下图，就代表配置好了。]]></description><category></category></item><item><title><![CDATA[pycharm打开terminal报错：Cannot open LocalFailed to start [C:\Windows\System32\WindowsPowerShell\v1.8\po]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/145993114</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/145993114</guid><author>norma_chai</author><pubDate>Mon, 03 Mar 2025 16:57:22 +0800</pubDate><description><![CDATA[补充：-Dcom.pty4j.windows.disable.bundled.conpty=true。]]></description><category></category></item><item><title><![CDATA[ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/144217794</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/144217794</guid><author>norma_chai</author><pubDate>Tue, 03 Dec 2024 16:18:23 +0800</pubDate><description><![CDATA[MySQL客户端无法通过指定的socket文件连接到本地MySQL服务器。]]></description><category></category></item><item><title><![CDATA[爬虫入门-爬取华为应用商店app的评论]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/144109888</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/144109888</guid><author>norma_chai</author><pubDate>Thu, 28 Nov 2024 14:07:20 +0800</pubDate><description><![CDATA[writer.writerow(["智能证件照",aa])csv_file = '../csv/华为应用商店评论.csv'#爬取到的评论写入csv文件。#appid可以替换成你要爬取的app的appid。# 解析HTML内容。# 检查请求是否成功。]]></description><category></category></item><item><title><![CDATA[Fiddle抓包教程-小白一看就会]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/144086975</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/144086975</guid><author>norma_chai</author><pubDate>Wed, 27 Nov 2024 17:14:25 +0800</pubDate><description><![CDATA[​问题原因 ：VPN的自启动服务SangforSP更改了代理，，即使被其他代理软件更改了，过一时间，还是会更改过来。四、配置Fiddle，点击Tools-Options，勾选红框中的内容。七、手机脸上电脑热点，手动配置代理，输入主机名为第六步获取的ipv4地址，端口填写8888。五、配置好之后，就可以抓本地的包了，比如在浏览器打开www.baidu.com。1、手机连上电脑热点，手动填写代理IP 和端口之后，WIFI显示无互联网访问。六、电脑开热点，打开cmd，输入ipconfig获取ipv4的地址。]]></description><category></category></item><item><title><![CDATA[pytest集成allure]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/140802554</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/140802554</guid><author>norma_chai</author><pubDate>Tue, 30 Jul 2024 17:39:48 +0800</pubDate><description><![CDATA[3、打开cmd执行allure --version，执行成功代表安装成功。执行命令：pip install allure-pytest。--alluredir=report生成测试报告的目录。3、打开cmd安装allure提供的python包。终端执行命令生成allure测试报告需要的数据。找到最新的版本，点击进去，下载对应的zip包。5、根据执行结果，生成allure测试报告。1、下载allure到本地。]]></description><category></category></item><item><title><![CDATA[kafka启动报错：org.apache.kafka.common.errors.CorruptRecordException]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/139827633</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/139827633</guid><author>norma_chai</author><pubDate>Thu, 20 Jun 2024 11:30:04 +0800</pubDate><description><![CDATA[解决方案：把对应的日志删除之后，重启。]]></description><category></category></item><item><title><![CDATA[实时计算窗口含义]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/139444894</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/139444894</guid><author>norma_chai</author><pubDate>Tue, 04 Jun 2024 15:40:33 +0800</pubDate><description><![CDATA[比如窗口长度设置为1分钟，滑动步长为30s,10:00:00发送消息A，10:00:33发送消息B,10:01:01发送消息C,接收端10:01:00接收到消息A和B，10:01:30接收到消息B和C。比如会话超时时间设置为1分钟，10:00:00发送消息A，10:00:59发送消息B，10:01:59发送消息C，一直到10:02:00不发送消息，接收端10:02:00收到消息A、B、C。比如窗口长度设置的是1分钟，10:00:00发送消息A，10:00:30发送消息B,10:01:01发送消息C。]]></description><category></category></item><item><title><![CDATA[python实现通过用户名密码认证的kafka发送消息]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/139441329</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/139441329</guid><author>norma_chai</author><pubDate>Tue, 04 Jun 2024 14:04:04 +0800</pubDate><description><![CDATA[sasl_plain_username='username',  # 替换为你的用户名。sasl_plain_password='password',  # 替换为你的密码。'  # 替换为你要发送的消息。topic = 'topic'  # 替换为你的 Kafka 主题名称。# Kafka 服务器地址，替换为你的kafka地址和端口。# Kafka 生产者配置。# 等待所有消息发送完成。# 要发送的消息和主题。]]></description><category></category></item><item><title><![CDATA[记录kafka连接报错：SyntaxError: invalid syntax]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/139408352</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/139408352</guid><author>norma_chai</author><pubDate>Mon, 03 Jun 2024 10:38:33 +0800</pubDate><description><![CDATA[原因在于：kafka-python1.4.7以下版本中.async关键词和python3.7以后版本冲突，python3.7重新定义了.async关键词，故导致不能用。经过排查，python的版本为3.9.5，kafka的版本为1.3.5。卸载1.3.5版本的kafka,安装1.4.7版本的kafka。]]></description><category></category></item><item><title><![CDATA[crontab执行就报错：exec: java: not found]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/134263533</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/134263533</guid><author>norma_chai</author><pubDate>Tue, 07 Nov 2023 11:29:41 +0800</pubDate><description><![CDATA[In: failed to create symbolic link '/usr/bin/java' : file exists  （软链接已经存在）百度搜索发现原来是java的默认/usr/bin/java路径与我们实际的$JAVA_HOME/bin/java路径不一致导致的。/usr/bin/java    ->  /etc/alternatives/java  (软链接已经变红，不可用)接下来我就是删除软连接，重新建立软连接。再次设置定时任务执行，发现执行成功！]]></description><category></category></item><item><title><![CDATA[kafka挂掉或者崩溃的时候自动检测到并将其启动]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/134262088</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/134262088</guid><author>norma_chai</author><pubDate>Tue, 07 Nov 2023 10:48:17 +0800</pubDate><description><![CDATA[将cron任务加入开启自启动，在 /etc/rc.local 文件中加入：systemctl restart crond。#获取kafka进程数量，正常情况下一台机器一个kafka，所以kakfa正常运行的时候肯定大于1。备注：如何查看是centos几： cat /etc/centos-release。如果上图的脚本有问题，可以采用sh -x command进行调试。#当进程小于等于1的时候启动kafka。2、将启动脚本加入定时任务。]]></description><category></category></item><item><title><![CDATA[pg报错:SQL 错误 [55000]: ERROR: cannot delete from table “caq“ because it does not have a replica identi]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/134242358</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/134242358</guid><author>norma_chai</author><pubDate>Mon, 06 Nov 2023 11:15:14 +0800</pubDate><description><![CDATA[pg报错:SQL 错误 [55000]: ERROR: cannot delete from table "caq" because it does not have a replica identity and publishes updates。如果一张表缺少主键，并且涉及到update和delete，需要执行。]]></description><category></category></item><item><title><![CDATA[mysql建表的时候报错：Column length too big for column ‘aa‘ (max = 21845)； use BLOB or TEXT instead]]></title><link>https://blog.youkuaiyun.com/norma_chai/article/details/134242335</link><guid>https://blog.youkuaiyun.com/norma_chai/article/details/134242335</guid><author>norma_chai</author><pubDate>Mon, 06 Nov 2023 11:14:16 +0800</pubDate><description><![CDATA[字符集是 latin1 时，最多只能指定65532的长度。字符集是 utf8 时，最多只能指定21844的长度。解决方案，修改数据库的字符集为latin1。]]></description><category></category></item></channel></rss>