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

OpenClaw 实战:AI Agent 自动生成测试用例并写入 Excel

OpenClaw 实战:AI Agent 自动生成测试用例并写入 Excel 一、核心前提 OpenClaw 是轻量级 Agent 框架,核心聚焦: **Skill 注册 → 工具选择 → 任务执行** 没有 Dify 的可视化界面 没有知识库、没有复杂工作流 代码极简洁、上手极快 适合:测试开发 / 有编程能力的测试工程师 一句话定位: **OpenClaw = 极简、轻量、只专注做工具调用的小…

PhpPioneer发布于 2026/4/6更新于 2026/9/1078K 浏览
OpenClaw 实战:AI Agent 自动生成测试用例并写入 Excel

OpenClaw 实战: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:生成测试用例 =====================
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",
            type="str",
            description="用例优先级(高/中/低)",
            required=True
        )
    ]

    def run(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, case in enumerate(test_cases, 1):
            case["用例 ID"] = f"{module[:2].upper()}00{i}"
        return json.dumps(test_cases, ensure_ascii=False)

# ===================== Skill 2:写入 Excel =====================
class ExcelWriteTool(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
        )
    ]

    def run(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 in enumerate(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, case in enumerate(cases, 2):
                for col, header in enumerate(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 in enumerate(col_widths, 1):
                ws.column_dimensions[chr(64 + i)].width = width
            wb.save(file_path)
            return f"成功!测试用例已写入 {file_path},共 {len(cases)} 条用例"
        except Exception as e:
            return f"失败:{str(e)}"

# ===================== 初始化 Agent =====================
def init_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 需求文档

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. OpenClaw 实战:AI Agent 自动生成测试用例并写入 Excel
  2. 一、核心前提
  3. 二、环境准备
  4. 1. 安装 OpenClaw 及依赖
  5. 安装 OpenClaw 核心框架
  6. Excel 操作 + LLM 调用
  7. 2. 配置 LLM 密钥
  8. 替换成你的 OpenAI API Key
  9. 三、完整实现代码(测试用例生成 + 写入 Excel)
  10. ===================== Skill 1:生成测试用例 =====================
  11. ===================== Skill 2:写入 Excel =====================
  12. ===================== 初始化 Agent =====================
  13. ===================== 执行 =====================
  14. 四、核心代码解释
  15. 五、运行效果
  16. 六、OpenClaw 进阶扩展
  17. 1. 解析 PDF/Word 需求文档
  18. 2. 对接 TestLink
  19. 七、总结

更多推荐文章

查看全部
  • 利用 AudioLDM-S 实现 VR 3D 空间音效生成
  • 算法专题:完全背包、零钱兑换及爬楼梯问题解析
  • CosyVoice 安装 openai-whisper 时报错 pkg_resources 缺失的解决方案
  • iOS 自动化测试实战:WebDriverAgent + go-ios 跨平台方案
  • OpenClaw AI 物理级离线部署指南
  • Python 语音助手配置指南:智能语音交互系统搭建
  • Java 注解与反射实战:自定义日志与参数校验
  • Python 调用 Web Scraper API 抓取 Glassdoor 数据全流程实战
  • 宇树 G1 阿勒泰极寒测试解析:低成本方案与商业化演进
  • Linux 进程优先级与调度机制详解
  • Spring AI 多轮对话记忆机制实战指南
  • Prometheus + Grafana 实现 Java 应用数据监控系统
  • 鸣潮 QQ 机器人部署指南:集成大模型与游戏功能
  • 基于 CesiumJS + React + Go 实现三维无人机编队实时巡航可视化系统
  • Web 自动化测试入门指南:从概念到 Selenium 实战
  • PHPStudy Pro 本地 PHP 环境搭建与使用指南
  • Vivado IP 核 DDS 配置与原理详解
  • Embedding 模型的选择和微调
  • 深度解析 RAG:核心优化方法与实施策略
  • MATLAB 多模型 AI 编程助手:在编辑器内直接调用大模型

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • 随机西班牙地址生成器

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

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

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