跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

基于 OpenClaw 的 AI Agent 自动生成测试用例并导出 Excel

介绍如何使用轻量级 Agent 框架 OpenClaw,结合 OpenAI LLM 实现自动化测试用例生成。通过定义 Skill 工具(TestCaseGenerateTool 和 ExcelWriteTool),用户只需输入需求描述,Agent 即可自动调用大模型生成结构化测试用例,并将其写入规范的 Excel 文件中。该方案代码简洁、无复杂工作流依赖,适合具备编程能力的测试工程师快速集成到自动化流程中。

佛系玩家发布于 2026/4/5更新于 2026/7/2551 浏览
基于 OpenClaw 的 AI Agent 自动生成测试用例并导出 Excel

核心前提

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

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

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

环境准备

安装 OpenClaw 及依赖

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

配置 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:生成测试用例 =====================
class TestCaseGenerateTool(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", =, description=, required=)
    ]

     () -> :
        prompt = 
        llm = OpenAILLM(model=, temperature=)
        response = llm.chat.completions.create(
            messages=[{:,: prompt}],
            model=
        )
        test_cases = json.loads(response.choices[].message.content.strip())
         i,   (test_cases, ):
            [] = 
         json.dumps(test_cases, ensure_ascii=)


 ():
    name = 
    description = 
    parameters = [
        Parameter(name=, =, description=, required=),
        Parameter(name=, =, description=, required=)
    ]

     () -> :
        :
            cases = json.loads(test_cases)
            wb = openpyxl.Workbook()
            ws = wb.active
            ws.title = 
            headers = [, , , , , , ]
             col, header  (headers, ):
                cell = ws.cell(row=, column=col, value=header)
                cell.font = Font(bold=, color=)
                cell.fill = PatternFill(start_color=, end_color=, fill_type=)
                cell.alignment = Alignment(horizontal=)
             row,   (cases, ):
                 col, header  (headers, ):
                    cell_value = .get(header, )
                    ws.cell(row=row, column=col, value=cell_value)
                    ws.cell(row=row, column=col).alignment = Alignment(horizontal=)
            col_widths = [, , , , , , ]
             i, width  (col_widths, ):
                ws.column_dimensions[(+i)].width = width
            wb.save(file_path)
             
         Exception  e:
             


 ():
    llm = OpenAILLM(model=, temperature=)
    tools = [TestCaseGenerateTool(), ExcelWriteTool()]
    agent = Agent(
        llm=llm,
        tools=tools,
        system_prompt=,
        verbose=
    )
     agent


 __name__ == :
    agent = init_openclaw_agent()
    user_task = 
    result = agent.run(user_task)
    ()
    (result)
type
"str"
"用例优先级(高/中/低)"
True
def
run
self, requirement: str, module: str, priority: str
str
f"""作为资深软件测试工程师,根据以下需求生成{priority}优先级的{module}测试用例: 需求描述:{requirement} 要求: 1. 用例字段:用例 ID、模块、用例标题、前置条件、操作步骤、预期结果、优先级 2. 用例 ID 格式:模块缩写 + 序号(比如登录模块→DL001) 3. 覆盖所有功能点、边界条件、异常场景 4. 返回纯 JSON 数组,无多余文字"""
"gpt-3.5-turbo"
0.3
"role"
"user"
"content"
"gpt-3.5-turbo"
0
for
case
in
enumerate
1
case
"用例 ID"
f"{module[:2].upper()}00{i}"
return
False
# ===================== Skill 2:写入 Excel =====================
class
ExcelWriteTool
Tool
"excel_writer"
"""软件测试专用工具:把 JSON 格式的测试用例列表写入 Excel,生成规范的测试用例文档 支持字段:用例 ID、模块、用例标题、前置条件、操作步骤、预期结果、优先级"""
"test_cases"
type
"str"
"JSON 格式的测试用例列表"
True
"file_path"
type
"str"
"Excel 保存路径"
True
def
run
self, test_cases: str, file_path: str
str
try
"功能测试用例"
"用例 ID"
"模块"
"用例标题"
"前置条件"
"操作步骤"
"预期结果"
"优先级"
for
in
enumerate
1
1
True
"FFFFFF"
"4472C4"
"4472C4"
"solid"
"center"
for
case
in
enumerate
2
for
in
enumerate
1
case
"无"
"center"
10
15
30
20
40
30
10
for
in
enumerate
1
chr
64
return
f"成功!测试用例已写入 {file_path},共 {len(cases)} 条用例"
except
as
return
f"失败:{str(e)}"
# ===================== 初始化 Agent =====================
def
init_openclaw_agent
"gpt-3.5-turbo"
0.3
"""你是软件测试专属 Agent,负责: 1. 先调用 test_case_generator 生成测试用例 2. 再调用 excel_writer 把用例写入 Excel 3. 最终返回 Excel 生成结果"""
True
return
# ===================== 执行 =====================
if
"__main__"
"""请生成登录模块的高优先级测试用例,需求: 用户登录功能支持手机号 + 验证码登录,手机号非 11 位提示「请输入正确手机号」, 验证码错误 3 次后账号锁定 10 分钟,登录成功跳转到首页。 生成后把用例写入 ./登录模块测试用例.xlsx"""
print
"\n===== 最终结果 ====="
print

核心代码解释

  1. Skill 定义核心:

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

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

运行效果

控制台输出

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

Excel 文件内容

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

进阶扩展

1. 解析 PDF/Word 需求文档

class DocumentParseTool(Tool):
    name = "document_parser"
    description = "解析 PDF/Word 格式的产品需求文档,提取核心需求文本"
    parameters = [Parameter(name="file_path", type="str", description="文档路径", required=True)]

    def run(self, file_path: str) -> str:
        import PyPDF2
        with open(file_path, "rb") as f:
            reader = PyPDF2.PdfReader(f)
            content = "\n".join([page.extract_text() for page in reader.pages])
        return content

2. 对接 TestLink

class TestLinkUploadTool(Tool):
    name = "testlink_uploader"
    description = "把测试用例导入 TestLink 测试管理平台"
    parameters = [Parameter(name="test_cases", type="str", description="JSON 用例列表", required=True)]

    def run(self, test_cases: str) -> str:
        # 调用 TestLink API 实现导入
        return "用例已成功导入 TestLink"

总结

OpenClaw 核心流程:

  1. 定义 Tool(技能)
  2. 注册给 Agent
  3. 输入一句话任务
  4. Agent 自动选择工具、自动执行、自动输出结果

优势:

  • 轻量、无冗余
  • 代码完全可控
  • 适合嵌入自动化脚本、CI/CD
  • 比可视化平台更灵活、更适合测试开发

目录

  1. 核心前提
  2. 环境准备
  3. 安装 OpenClaw 及依赖
  4. 安装 OpenClaw 核心框架
  5. Excel 操作 + LLM 调用
  6. 配置 LLM 密钥
  7. 替换成你的 OpenAI API Key
  8. 完整实现代码(测试用例生成 + 写入 Excel)
  9. ===================== Skill 1:生成测试用例 =====================
  10. ===================== Skill 2:写入 Excel =====================
  11. ===================== 初始化 Agent =====================
  12. ===================== 执行 =====================
  13. 核心代码解释
  14. 运行效果
  15. 进阶扩展
  16. 1. 解析 PDF/Word 需求文档
  17. 2. 对接 TestLink
  18. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 18 种大模型指令调优方法详解
  • Stable Diffusion 画质增强:Consistency Decoder 使用教程
  • 游戏开发上手:Pygame、SDL 与 OpenGL 的基础实践
  • AI 大模型开发经典书籍推荐与学习路径
  • Python 爬虫开发指南:从 Requests 到 Scrapy 分布式实战
  • 宇树机器人 G1 二次开发:FAST-LIO 建图及 RViz 配置指南
  • 基于 Django 与 Vue 的红色旅游网站设计与实现
  • 基于 Docker 部署 FastGPT 与本地大模型实战指南
  • 大语言模型(LLM)基础原理与应用
  • 实测 ToClaw 信息检索与分析能力:AI 实现先找后写
  • 基于 Docker 部署 Nginx 并通过内网穿透实现远程访问
  • 在 Trae 和 VS Code 中使用第三方 API 配置 Claude、GPT 及 Gemini 模型
  • Windows 家用电脑部署 Gemma3 大模型:Ollama+Open WebUI 搭建 AI 聊天室
  • C++ 函数重载:核心规则、实现细节与实战
  • 35 岁失业建议尝试的 9 个行业方向
  • Python 爬虫结合 AI 绘画模型自动化采集艺术素材
  • 前缀和算法进阶:中心下标与子数组求和
  • Python 量化实战:AKshare 获取全市场金融数据
  • VS Code 远程开发 GitHub Copilot 失效排查指南
  • 递归算法实战:汉诺塔与合并有序链表详解

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online