自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是一言

测试开发记忆

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

原创 通过OpenManus的极简实现来理解通用人工智能Agent-免费领取源码马上体验

就像从命令行进化到图形界面,Manus 代表了从"写代码"到"说话"的交互革命。你不需要记住复杂的命令,只要说出你想要什么,它就能帮你实现!这就是为什么 Manus 这样的 AI Agent 框架会成为未来软件开发的重要趋势 -就像人的大脑,负责理解你说的话,然后想出解决方案。,它能听懂你说的话,然后帮你干活。

2025-07-23 17:37:23 444

原创 OpenManus 项目深度解析

OpenManus 是一个开源的通用AI智能体框架,设计思想是创建一个无需邀请码即可使用的Manus替代方案。该框架采用了分层架构设计,支持多种LLM模型,具备强大的工具集成能力和多智能体协作功能。核心设计理念:就像在测试自动化中,我们需要一个统一的测试框架来管理不同的测试工具和测试场景一样,OpenManus提供了一个统一的智能体框架来管理不同的AI工具和任务场景。A: 继承BaseAgent或其子类,实现特定的业务逻辑。例如DataAnalysisAgent专门处理数据分析任务。

2025-07-23 15:23:23 831

原创 浏览器元素定位工具-项目源码免费领取

插件页面使用效果。

2025-07-18 15:30:53 972

原创 一文搞懂autogen以及接入mcp,附项目源码,免费领取

项目实现了AutoGen框架与MCP服务器的完整集成方案,展示了多智能体系统如何通过Server-Sent Events(SSE)实时通信从外部知识库获取信息。# 创建新的智能体system_message="你的系统提示..."

2025-07-16 23:19:42 969

原创 AutoGen框架官方文档梳理-完整学习指南

随着AI技术的快速发展,多智能体系统将在更多领域发挥重要作用。掌握AutoGen框架,将为我们在AI时代的技术发展提供强有力的支撑。AutoGen作为微软开源的多智能体框架,为构建复杂的AI系统提供了强大而灵活的解决方案。- 为Python测试自动化工程师量身定制的学习路径。- 快速上手,开箱即用的多智能体解决方案。- 底层事件驱动架构,支持分布式部署。- 实际编程时必须掌握的核心API。- 让智能体具备记忆和学习能力。- 丰富的第三方组件和集成。能够创建简单的多智能体应用。Core - 事件驱动引擎。

2025-07-12 10:55:55 879

原创 一文理解mcp原理和运行逻辑(附完整项目源码,免费领取)

print(f"📋 可用工具:', '# client.py tools_result = await session . list_tools() available_tools = [ tool . name for tool in tools_result . tools ] print(f"📋 可用工具: {

2025-07-09 23:13:27 738

原创 一文搞懂mcp(附项目源码,免费领取)

这种设计让AI系统能够安全、标准化地扩展功能,而不需要修改核心代码。正如我们demo所展示的,一个简单的计算器服务就能通过MCP协议为AI提供数学计算能力!,允许AI助手安全地连接和使用外部工具、数据源和服务。它解决了AI系统与外部世界交互的标准化问题。:让客户端动态发现服务器提供的所有工具及其参数规范。:执行具体的工具功能并返回结果。MCP实际上实现了一个。

2025-07-09 18:07:31 844

原创 大模型评测工具opencompass解析

支持jsonl和csv两种格式的数据集数据集{"question": "只剩一个心脏了还能活吗?", "answer": "能,人本来就只有一个心脏。"}{"question": "爸爸再婚,我是不是就有了个新娘?", "answer": "不是的,你有了一个继母。\"新娘\"是指新婚的女方,而你爸爸再婚,他的新婚妻子对你来说是继母。"}{"question": "樟脑丸是我吃过最难吃的硬糖有奇怪的味道怎么还有人买", "answer": "樟脑丸并不是硬糖,而是一种常见的驱虫药,不能食用。

2025-06-25 17:16:49 298

原创 大语言模型训练中的自监督学习和其他训练方式

自监督学习是一种不需要人工标注数据的训练方式,模型从数据本身学习特征和模式。# 示例:掩码语言模型(Masked Language Model, MLM)原始文本: "北京是中国的首都"↓训练输入: "北京是[MASK]的首都"训练目标: 预测 [MASK] = "中国"# 示例:自回归语言模型(Autoregressive LM)原始文本: "今天天气很好"↓训练输入: "今天" → 预测: "天气"训练输入: "今天天气" → 预测: "很"

2025-06-24 22:55:41 777

原创 基于BERT和GPT2的实现来理解Transformer的结构和原理

基于BERT和GPT2的实现来理解Transformer的结构和原理

2025-05-28 16:26:37 455

原创 magentic-ui和browser-use深度分析

代表了人机协作AI Agent的未来方向🚀不仅是自动化工具,更是智能协作伙伴Co-Planning和Action Guard体现了负责任AI的发展理念为复杂业务场景提供了可控、透明、安全的解决方案体现了实用主义的工程智慧⚡通过高度优化的技术实现,为开发者提供强大易用的框架轻量化架构设计,满足大规模生产环境的性能要求模块化扩展能力,适应多样化的业务需求。

2025-05-23 11:08:22 1070

原创 celery官方文档笔记

python+django+celery

2023-12-16 07:52:21 1875 1

原创 celery/schedules.py源码精读

太阳事件的种类包括黎明、日出、日中、日落和黄昏等,你可以选择其中一个事件作为任务的触发条件。这个类的目的是解析 Crontab 表达式中的不同部分,将其展开为对应的时间单位集合。通过这样的解析,可以获取计划任务运行的时间规则。此外,还有一些辅助性的属性和方法,用于表示太阳事件的集合、地平线高度、计算方法等。这个类提供了一些基本的调度任务功能,并定义了一些抽象方法,具体的调度任务类需要继承这个基类并实现这些抽象方法。Crontab 表达式中的星号和数字表示通配符,可以非常灵活地定义任务的运行时间。

2023-12-14 10:07:32 470 2

原创 django+vue项目搭建,前后端通信打通,

使用python+django+vue+element-ui打造自动化平台,首先打通开发环境django后端服务和vue的跨域联调问题和生产通信问题

2023-02-17 11:23:41 4698

原创 【一文讲清】【GIT】本地工作区删除了文件,怎么同步到远程仓库?

【一文讲清】【GIT】本地工作区删除了文件,怎么同步到远程仓库?

2023-01-31 11:12:37 2852

原创 启动报错解决__init__() got an unexpected keyword argument ‘maxBytes‘ /Unable to configure handler ‘file‘

django项目部署到linux服务器后,启动报错TypeError: __init__() got an unexpected keyword argument 'maxBytes' ValueError: Unable to configure handler 'file'

2023-01-30 18:36:01 1592

原创 装饰器,可以改装成重跑装饰器函数

import randomdef rerun(c): #c是重跑次数,这里接收装饰器函数的入参5 def deco(func): #闭包,入参func用来接收test_001函数对象 def inner(*arg, **kwargs): #入参接收的是test_001的参数cid for i in range(c): try: print(f"----开始执行第{i}次----") func(*arg, **kwargs) # 被装饰函数执行 break.

2022-04-23 22:13:32 466

原创 windows 启进程,杀进程解决方案,亲身踩坑 靠谱好用

移动端APP自动化平台搭建,我们在执行完case后,需要在后置处理器函数做清理,比如清理chromedriver和appium进程,完整代码放在文章最后。下面开始:清理chromedriverlinux下杀appium进程都比较简单主要是windows下杀appium进程,可能会有比较多同学踩坑,所以在这分享下windows杀进程的方案给用windows写代码的同学,保证靠谱,不靠谱可以评论找我!下面的代码是通过端口号找到进程,plist = subprocess.getstatusoutpu

2022-04-11 12:56:57 1130

原创 subprocess模块最全笔记

文章目录subprocesssubprocess.Popen 类Popen 对象的属性Popen 对象的方法subprocess模块的其他方法subprocess模块的其他属性subprocess模块定义的异常os.system()os.popen()subprocess.run()subprocess.getstatusoutput()subprocess.getoutput()terminate()pidsubprocess使用 Popen 可以在Python进程中创建子进程,如果只对子进程的执行退

2022-04-08 18:02:05 3359

原创 appium ConnectionRefusedError,urllib3.exceptions.NewConnectionError,urllib3.exceptions.MaxRetryError

appium ConnectionRefusedError,urllib3.exceptions.NewConnectionError,urllib3.exceptions.MaxRetryError踩坑报错关键信息ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at

2022-04-08 11:27:38 9326

原创 一维数组切片装入二维数组

l = ['支付宝收款0.01', '激励金+0.01', '2022-01-13 14:32:31', '微信收款0.01', '激励金+0.02', '2022-01-13 14:30:40', '支付宝收款0.01','激励金+0.03', '2022-01-07 15:03:51', '微信退款-0.01', '激励金-0.04', '2022-01-06 22:54:31', '支付宝退款-0.01', '激励金-0.05','2022-01-06 22:54:09', '微信

2022-04-05 19:10:14 193

原创 if __name__ == ‘__main__‘原理,一文讲清

同目录下有两个文件t4.py,t5.pyt4.py的代码class T4: def f1(self): print('t4 TEST f1')t = T4()t.f1()t5.py的代码from output.case.t4 import T4class T5: def f1(self): print('t5 TEST f1') def f2(self): print('t5 TEST f2')t = T5()

2022-04-05 19:09:29 2177

原创 你真的会for循环吗?

for循环和else的千变不离其中,一篇搞清楚for和elsel = [1,2,3,4,5]for i in l: if i == 3: print(i) print(i)else: print(6)1233456# break只要被执行,else就不会执行,通常用来找一个i==3,如果整个遍历都找不到,那就走else逻辑for i in l: if i == 3: break print(i)else: print(6)12for i in l

2022-04-05 19:08:17 280

原创 vue系列 属性

<router-link>属性 <router-link>这里用到了一个to属性,并且把它渲染成<a>标签,他还有其他属性: tag tag可以指定<router-link>之后渲染成什么组件, 比如要渲染成button <router-link to="/home...

2022-04-05 19:07:00 75

原创 为什么要写if __name__ == '__main__': ???

同目录下有两个文件t4.py,t5.pyt4.py的代码class T4: def f1(self): print('t4 TEST f1')t = T4()t.f1()t5.py的代码from output.case.t4 import T4class T5: def f1(self): print('t5 TEST f1')...

2022-04-02 12:24:00 103

原创 vue项目创建完出现found 23 vulnerabilities (2 low, 16 moderate, 5 high),解决办法

found 23 vulnerabilities (2 low, 16 moderate, 5 high)run npm audit fix to fix them, or npm audit for detailsD:\myproject\yiyan_webauto$ npm audit fixnpm ERR! code EAUDITNOPJSONnpm ERR! audit No ...

2022-03-01 12:29:00 10716

原创 【笔记记录】【敏感信息已混淆】k8s生态下 kubectl命令、pod性能验证及监控

trading# k8s生态下 kubectl命令操作pod性能监控环境1C2G 1POD架构拓扑查看命名空间,ns就是namespaces[root@pr-dr-13-47 .kube]# kubectl get nsNAME STATUS AGEdefault Active 327ditwork ...

2022-02-09 11:45:00 919

原创 git - 助你入门 git 的简明指南,木有高深内容

创建新仓库创建新文件夹,打开,然后执行git init创建新的git仓库,非必须的步骤,可以跳过init,直接clonegit init检出仓库创建一个本地仓库的克隆版本git clone /path/to/repository从远端服务器上的仓库克隆到本地仓库git clone username@host:/path/to/repository工作流你的本地仓库由 git 维...

2022-01-20 17:59:00 263

原创 性能场景之业务模型在性能执行场景中的具体实现逻辑

目录系统架构业务模型脚本设计策略一:所有业务接口之间都是独立的,没有任何业务逻辑策略二:业务接口有上下逻辑关系策略二之方法一:策略二之方法二:总结接口代码(fastapi+pydantic)系统架构业务模型业务接口比例Ta20%Tab30%Tabc20%Tabcd30%这里的比例可以通过access访问日志来统计,也可以参照《性能测试30...

2022-01-20 14:38:00 1432

原创 构造类实现mysql增改查以及常用的方法

几个知识点cur.execute()返回值是影响条数fetchone()是取结果集中的第一条,所以多条里取一条记得让目标数据在第一条才能用这个方法fetchmany() 读取多条fetchall()获取全部数据cursor.rownumber 获取当前游标位置cursor.scroll(2,mode='relative')将游标前移2个位置conn.rollback()回滚事务 ...

2022-01-16 00:03:00 719

原创 使用yagmail发送邮件

import yagmailusername = '[email protected]'passwd = 'bbbbbbbb'def send_email(): mail = yagmail.SMTP(user=username, password=passwd, host='a.b.cn',#其他服务器就smtp.qq.com smtp.126.com ...

2022-01-15 23:48:00 1400

原创 python垃圾回收机制

引用计数python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外。(默认对象的引用计数永远不会变成0)所有的计数引用+1的情况:一.对象被创建:1.a = 23  这里23这个对象并没有在内存中新建,因为在Python启动解释器的时候会创建一个小整数池,-5~256之间的这些对象会被自动创建加载到内...

2022-01-14 17:31:00 5066

原创 UI自动化 win32 模拟键盘按键

import win32.win32api as win32apiimport win32.lib.win32con as win32conclass KeyboardKeys(object): ''' 模拟键盘按键类 ''' VK_CODE = { 'enter': 0x0D, 'ctrl': 0x11, '...

2022-01-07 09:05:00 757

原创 selenium 显示等待封装

#encoding=utf-8from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECclass WaitUtil(ob...

2022-01-07 08:58:00 892

原创 selenium获取元素封装

背景在功能自动化这里,不管是selenium还是robotframework等各种开源框架,他们提供的获取元素方法有很多,但是这些框架的函数都抽象的相对原子化,比如通过id获取元素那他就是单纯传入id定位来获取dom元素,这个过程如果元素找不到,比如不可见、不可点击等等,那就是直接抛异常,然后用例也就出错了。那么面临这样的问题,通常就会有两个方案,一个是在原有基础上二开,另一个就是自己造轮子...

2022-01-07 08:51:00 425

原创 分析nginx access.log统计日业务接口访问量

声明以下数据为单节点NGINX的访问日志,所有数据均取自生产环境(x.x.x.x)分析策略及数据采集分析nginx的access.log,获取各个接口uri、访问量随机在12月取三天的日各业务量统计,三天取平均[root@VM_0_999_centos logs]# ls 2021*log -alh-rw-r--r-- 1 root root 3.3M Dec 27 17...

2021-12-28 16:37:00 1325

原创 正则表达式 常用的不常用的都在这了

. 匹配任意一个字符,换行符除外\ 代表字符本身,比如 a\.c匹配a.c,\[匹配[而不是正则中的[][...] `匹配括号中出现的任意单个字符[^...] `不匹配方括号中列出的单个字符,比如[^123]匹配除123以外的字符\d 匹配0-9任意一个数字\D 匹配任意一个非数字的字符,等价于 [^\d]\s 匹配任意一个空白字符,\S 匹配任意一个非空白的字符\w 匹配一个字母或数字,字符范围[A-Za-z0-9_]\W 非单词字符* 匹配前一个字符0次或1次或多次+

2021-12-13 10:42:18 322

原创 mysql数据库级监控及常用计数器解析

监控工具mysqlreportpt-query-digest[官网地址] :https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.htmlmysql_exportor+Prometheus+Grafana

2021-11-16 10:01:00 595

原创 java 27.final

final关键字final关键字代表最终、不可改变的。常见的四种用法:1.可以用来修饰一个类(太监类)final修饰的类,不能有子类。public final class TjClass{ }2.用来修饰一个方法普通类中,final修饰的成员方法,不可被子类覆盖重写。public class CommonC{ public final method(){ // }}3.用来修饰一个局部变量被修饰的局部变量,不能再进行重新赋值,一次赋值,终身

2021-10-03 08:10:07 134

原创 java 26.练习

文章目录背景需求分析示例代码背景前面学习了接口、多态、向上转型、向下转型、instanceof关键字,本节主要是应用这些知识点实现一个小需求。需求笔记本电脑(laptop)通常具备使用usb设备的功能,在生产时,笔记本都预留了可以插入usb设备的usb接口,但具体时什么usb设备,笔记本厂商并不关心,只要符合usb规格的设备都可以。分析定义usb接口,具备最基本的开启和关闭功能,鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守usb规范,实现usb接口,否则鼠标和键盘生产出来也无法使用。

2021-09-30 00:34:05 96

空空如也

空空如也

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

TA关注的人

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