OpenClaw 实战:5 分钟用 AI Agent 自动生成规范测试用例并写入 Excel

OpenClaw 实战:5 分钟用 AI Agent 自动生成规范测试用例并写入 Excel

OpenClaw 实战:5 分钟用 AI Agent 自动生成规范测试用例并写入 Excel

一、核心前提

OpenClaw 是轻量级 Agent 框架,核心聚焦:
Skill 注册 → 工具选择 → 任务执行

  • 没有 Dify 的可视化界面
  • 没有知识库、没有复杂工作流
  • 代码极简洁、上手极快
  • 适合:测试开发 / 有编程能力的测试工程师

一句话定位:
OpenClaw = 极简、轻量、只专注做工具调用的小 Agent 引擎

二、环境准备

1. 安装 OpenClaw 及依赖

# 安装 OpenClaw 核心框架 pip install openclaw # Excel 操作 + LLM 调用 pip install openpyxl openai requests 

2.配置 LLM 密钥

import os # 替换成你的 OpenAI API Key os.environ["OPENAI_API_KEY"]="你的API Key"

三、完整实现代码(测试用例生成 + 写入 Excel)

import json import openpyxl from openpyxl.styles import Font, Alignment, PatternFill from openclaw import Agent, Tool, Parameter from openclaw.llms import OpenAILLM # ===================== Skill 1:生成测试用例 =====================classTestCaseGenerateTool(Tool): name ="test_case_generator" description =""" 软件测试专用工具:根据产品需求生成结构化测试用例,包含用例ID、模块、用例标题、前置条件、操作步骤、预期结果、优先级 必须返回JSON数组格式的用例数据,每个用例是字典 """ parameters =[ Parameter( name="requirement",type="str", description="产品需求描述", required=True), Parameter( name="module",type="str", description="测试模块名称", required=True), Parameter( name="priority",type="str", description="用例优先级(高/中/低)", required=True)]defrun(self, requirement:str, module:str, priority:str)->str: prompt =f""" 作为资深软件测试工程师,根据以下需求生成{priority}优先级的{module}测试用例: 需求描述:{requirement} 要求: 1. 用例字段:用例ID、模块、用例标题、前置条件、操作步骤、预期结果、优先级 2. 用例ID格式:模块缩写+序号(比如登录模块→DL001) 3. 覆盖所有功能点、边界条件、异常场景 4. 返回纯JSON数组,无多余文字 """ llm = OpenAILLM(model="gpt-3.5-turbo", temperature=0.3) response = llm.chat.completions.create( messages=[{"role":"user","content": prompt}], model="gpt-3.5-turbo") test_cases = json.loads(response.choices[0].message.content.strip())for i,caseinenumerate(test_cases,1):case["用例ID"]=f"{module[:2].upper()}00{i}"return json.dumps(test_cases, ensure_ascii=False)# ===================== Skill 2:写入Excel =====================classExcelWriteTool(Tool): name ="excel_writer" description =""" 软件测试专用工具:把JSON格式的测试用例列表写入Excel,生成规范的测试用例文档 支持字段:用例ID、模块、用例标题、前置条件、操作步骤、预期结果、优先级 """ parameters =[ Parameter( name="test_cases",type="str", description="JSON格式的测试用例列表", required=True), Parameter( name="file_path",type="str", description="Excel保存路径", required=True)]defrun(self, test_cases:str, file_path:str)->str:try: cases = json.loads(test_cases) wb = openpyxl.Workbook() ws = wb.active ws.title ="功能测试用例" headers =["用例ID","模块","用例标题","前置条件","操作步骤","预期结果","优先级"]for col, header inenumerate(headers,1): cell = ws.cell(row=1, column=col, value=header) cell.font = Font(bold=True, color="FFFFFF") cell.fill = PatternFill(start_color="4472C4", end_color="4472C4", fill_type="solid") cell.alignment = Alignment(horizontal="center")for row,caseinenumerate(cases,2):for col, header inenumerate(headers,1): cell_value =case.get(header,"无") ws.cell(row=row, column=col, value=cell_value) ws.cell(row=row, column=col).alignment = Alignment(horizontal="center") col_widths =[10,15,30,20,40,30,10]for i, width inenumerate(col_widths,1): ws.column_dimensions[chr(64+i)].width = width wb.save(file_path)returnf"成功!测试用例已写入 {file_path},共 {len(cases)} 条用例"except Exception as e:returnf"失败:{str(e)}"# ===================== 初始化 Agent =====================definit_openclaw_agent(): llm = OpenAILLM(model="gpt-3.5-turbo", temperature=0.3) tools =[TestCaseGenerateTool(), ExcelWriteTool()] agent = Agent( llm=llm, tools=tools, system_prompt=""" 你是软件测试专属Agent,负责: 1. 先调用 test_case_generator 生成测试用例 2. 再调用 excel_writer 把用例写入Excel 3. 最终返回Excel生成结果 """, verbose=True)return agent # ===================== 执行 =====================if __name__ =="__main__": agent = init_openclaw_agent() user_task =""" 请生成登录模块的高优先级测试用例,需求: 用户登录功能支持手机号+验证码登录,手机号非11位提示「请输入正确手机号」, 验证码错误3次后账号锁定10分钟,登录成功跳转到首页。 生成后把用例写入 ./登录模块测试用例.xlsx """ result = agent.run(user_task)print("\n===== 最终结果 =====")print(result)

四、核心代码解释

  1. Skill 定义核心:
Tool= 技能 / 函数 name:工具名 description:Agent 判断什么时候调用该工具 parameters:告诉 AI 需要什么参数 run():真正执行逻辑 

2. Agent 执行逻辑:

 思考:用户需要生成测试用例 → 调用 test_case_generator 参数提取成功 → 生成用例 再思考:需要写入 Excel → 调用 excel_writer 最终返回结果 

五、运行效果

控制台输出

===== 最终结果 ===== 成功!测试用例已写入 ./登录模块测试用例.xlsx,共 5 条用例 

Excel 文件内容

标准 7 列测试用例 美观规范,可直接提交评审 可直接导入测试平台 

六、OpenClaw 进阶扩展

1. 解析 PDF/Word 需求文档

classDocumentParseTool(Tool): name ="document_parser" description ="解析PDF/Word格式的产品需求文档,提取核心需求文本" parameters =[Parameter(name="file_path",type="str", description="文档路径", required=True)]defrun(self, file_path:str)->str:import PyPDF2 withopen(file_path,"rb")as f: reader = PyPDF2.PdfReader(f) content ="\n".join([page.extract_text()for page in reader.pages])return content 
classTestLinkUploadTool(Tool): name ="testlink_uploader" description ="把测试用例导入TestLink测试管理平台" parameters =[Parameter(name="test_cases",type="str", description="JSON用例列表", required=True)]defrun(self, test_cases:str)->str:# 调用 TestLink API 实现导入return"用例已成功导入TestLink"

七、总结

OpenClaw 核心流程:
定义 Tool(技能)
注册给 Agent
输入一句话任务
Agent 自动选择工具、自动执行、自动输出结果
优势:
轻量、无冗余
代码完全可控
适合嵌入自动化脚本、CI/CD
比可视化平台更灵活、更适合测试开发

Read more

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践

PyTorch实战——基于文本引导的图像生成技术与Stable Diffusion实践 * 0. 前言 * 1. 基于扩散模型的文本生成图像 * 2. 将文本输入编码为嵌入向量 * 3. 条件 UNet 模型中的文本数据融合机制 * 4. 使用 Stable Diffusion 模型生成图像 * 相关链接 0. 前言 在本节中,我们将为扩散模型添加文本控制能力。学习如何通过文字描述来引导图像生成过程,实现从"纯噪声+文本"生成图像,而不仅是从纯噪声生成。 1. 基于扩散模型的文本生成图像 在扩散模型的 UNet 模型训练流程中,我们仅训练模型从含噪图像中预测噪声。为实现文生图功能,需使用以下架构,将文本作为额外输入注入 UNet 模型: 这样的 UNet 模型称为条件 UNet 模型 ,或者更精确地说,是文本条件 UNet

AI工具前端提示词实战:从设计原则到工程化落地

快速体验 在开始今天关于 AI工具前端提示词实战:从设计原则到工程化落地 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 AI工具前端提示词实战:从设计原则到工程化落地 在开发AI工具前端时,提示词系统往往是决定用户体验的关键因素。经过多个项目的实战积累,我总结了开发者最常遇到的三大痛点: 1. 语义歧义:自然语言提示词在不同场景下可能产生多种解析结果,导致AI返回不可预期的内容 2. 上下文丢失:

Llama-3.2V-11B-cot部署教程:GPU显存占用优化技巧与batch size调优实测

Llama-3.2V-11B-cot部署教程:GPU显存占用优化技巧与batch size调优实测 1. 引言:为什么你的GPU总是不够用? 如果你尝试过部署Llama-3.2V-11B-cot这个视觉推理模型,大概率会遇到一个让人头疼的问题:显存不够用。明明模型参数只有11B,为什么一运行就提示OOM(内存溢出)?为什么别人的服务器能流畅运行,你的却频频报错? 这其实不是模型本身的问题,而是部署时没有做好显存优化。今天这篇文章,我就来手把手教你如何优化Llama-3.2V-11B-cot的GPU显存占用,并通过实测数据告诉你,不同的batch size设置会带来多大的性能差异。 学习目标: * 理解Llama-3.2V-11B-cot的显存占用原理 * 掌握多种显存优化技巧 * 学会通过batch size调优平衡性能和显存 * 获得可立即使用的优化配置方案 前置知识:只需要基本的Python和命令行操作经验,不需要深度学习专家级知识。我会用最直白的方式解释所有概念。 2. 理解Llama-3.2V-11B-cot的显存占用 在开始优化之前,我们先要搞清楚

前端常用可视化图表组件大全

🖥️ PC端主流图表库(通常也支持移动端) 这些是功能最强大、应用最广泛的库,能覆盖绝大多数PC端仪表盘和后台管理系统的需求。 库名称核心特点适用场景渲染技术开源/许可ECharts国产全能型:图表类型极丰富(50+种),配置灵活,中文文档友好,社区庞大。支持Canvas和SVG双引擎渲染,性能优异 。企业级后台、大屏展示、PC端各类复杂图表需求。Canvas/SVGApache 2.0 (开源)Chart.js简单易用:上手门槛极低,API简洁明了,文档清晰。设计风格清新现代,响应式布局是内置的 。快速原型开发、小型项目、需要简洁美观图表的场景。CanvasMIT (开源)Highcharts成熟稳定:商业级库,兼容性极佳(支持IE6),交互和样式非常精致。被全球众多大公司信赖,文档和示例极其完善 。对浏览器兼容性要求严苛的金融、政府项目;追求极致稳定性的企业应用。SVG/VML免费供非商业使用,商业需许可D3.js定制之王:不提供预制图表,