测试工程师必备!多格式接口用例结合deepseek生成工具完整实现与实战验证


在接口测试中,测试工程师往往需要处理多种格式的文档(HAR、Swagger、Excel 等)以生成测试用例。然而,手动处理这些文档既耗时又容易出错。为了解决这一问题,本文将实现一款基于 PyQt5 的多格式接口用例生成工具,支持从文档导入到解析、推理生成、导出等全流程功能。

文章提供完整的实现代码、详细的测试用例、实用的解析策略,并验证工具的功能,确保测试工程师能够快速上手并应用于实际工作。


工具功能概述

  1. 多格式文档支持
    工具支持导入 HAR 文件Swagger 文档(JSON/YAML 格式)、Excel 文件Markdown 文档JSON 文件YAML 文件TXT 文件,并在 GUI 界面中预览文档内容。har包案例文件已上传云盘。

  2. 文档解析与预览
    自动解析文档内容,提取接口信息(如请求地址、请求方法、请求头、请求参数、请求响应等),并以可视化方式展示解析结果。

  3. 智能推理生成用例
    结合用户输入的提示词和文档内容,调用 阿里云百炼 DeepSeek API,生成智能接口测试用例脚本。

  4. 多格式导出
    支持将生成的接口测试用例导出为 JSONYAMLExcelMarkdownDocx 格式,满足多种使用场景需求。


完整工具实现

以下是工具的完整实现代码,分为多格式解析、推理生成、导出功能等部分。代码中配有详细说明,确保逻辑清晰、功能可用。

1. HAR 文件解析

什么是 HAR 文件?

HAR(HTTP Archive)是一种记录 HTTP 请求和响应的文件格式,通常由浏览器或抓包工具(如 Chrome DevTools、Fiddler)生成。HAR 文件包含接口请求的 URL、方法、Headers、Query 参数和 Body 等信息。

HAR 文件解析代码

以下是解析 HAR 文件的代码,提取请求的 URL、方法、头部信息、参数和请求体。

def parse_har(file_path):
    """
    解析 HAR 文件,提取接口信息
    """
    with open(file_path, 'r', encoding='utf-8') as f:
        har_data = json.load(f)

    interfaces = []
    for entry in har_data.get("log", {
   }).get("entries", []):
        request = entry.get("request", {
   })
        interfaces.append({
   
            "method": request.get("method"),
            "url": request.get("url"),
            "headers": {
   header["name"]: header["value"] for header in request.get("headers", [])},
            "params": {
   param["name"]: param["value"] for param in request.get("queryString", [])},
            "body": request.get("postData", {
   }).get("text", None)
        })
    return interfaces
代码说明
  1. 读取 HAR 文件:通过 json.load 加载 HAR 文件内容。
  2. 提取接口信息:从 entries 字段中获取请求的 URL、方法、Headers、Query 参数和 Body。
  3. 返回接口列表:以结构化的字典形式返回每个接口信息,方便后续处理。

2. Swagger 文档解析

什么是 Swagger 文档?

Swagger 文档是一种描述 RESTful API 的格式,通常以 JSON 或 YAML 形式编写,定义了接口的路径、方法、参数和响应等内容。

Swagger 文档解析代码

以下是解析 Swagger 文档的代码,提取接口路径、方法、参数和响应。

def parse_swagger(file_path):
    """
    解析 Swagger 文档,提取接口信息
    """
    with open(file_path, 'r', encoding='utf-8') as f:
        if file_path.endswith('.yaml') or file_path.endswith('.yml'):
            data = yaml.safe_load(f)
        else:
            data = json.load(f)

    interfaces = []
    paths = data.get("paths", {
   })
    for path, methods in paths.items():
        for method, details in methods.items():
            interfaces.append({
   
                "method": method.upper(),
                "url": path,
                "params": details.get("parameters", []),
                "response": details.get("responses", {
   })
            })
    return interfaces
代码说明
  1. 读取文档:根据文件扩展名选择 yaml.safe_loadjson.load 解析文档。
  2. 提取接口信息:从 paths 字段中获取接口路径、方法、参数和响应。
  3. 返回接口列表:结构化接口信息,便于后续操作。

3. Excel 文档解析

Excel 接口文档的常见格式

Excel 接口文档通常以表格形式记录接口信息,常见结构如下:

Method URL Headers Params Body
GET /api/users {“Authorization”: “token”} {“id”: “1”}
POST /api/users {“Content-Type”: “json”} {“name”: “Tom”}
Excel 文件解析代码

以下是解析 Excel 文件的代码,提取接口信息。

def parse_excel(file_path):
    """
    解析 Excel 文件,提取接口信息
    """
    workbook = openpyxl.load_workbook(file_path)
    sheet = workbook.active

    interfaces = []
    for row in sheet.iter_rows(min_row=2, values_only=True):  # 假设第一行为表头
        interfaces.append({
   
            "method": row[0],  # 第一列为方法
            "url": row[1],     # 第二列为 URL
            "headers": json.loads(row[2]) if row[2] else {
   },  # 第三列为 Headers
            "params": json.loads(row[3]) if row[3] else {
   },   # 第四列为 Params
            "body": json.loads(row[4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python测试之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值