手把手教你用AI打造一个「接口测试用例自动生成助手」(附完整代码)
面试求职「面试试题小程序」 内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试命中率杠杠的。大家刷起来…职场经验干货软件测试工程师简历上如何编写个人信息一周8个面试软件测试工程师简历上如何编写专业技能一周8个面试软件测试工程师简历上如何编写项目经验一周8个面试软件测试工程师简历上如何编写个人荣誉一周8个面试软件测试行情分享这些都不了解就别贸然冲了.软件测试面试重点搞清楚这些轻松拿到年薪30W软件测试面试刷题小程序免费使用永久使用做接口自动化的同学每天最耗时的工作是什么写测试用例。尤其是当你面对一份几十个接口的文档时每个接口都要写请求、构造数据、写断言… 重复劳动不说还容易遗漏边界场景。如果能让AI帮你读接口文档直接生成pytest测试代码你只需要复核一下那该多好今天我就用30行Python代码调用大模型API实现这样一个「AI测试用例生成助手」。代码可以直接复制运行只需替换你的API Key。一、先看效果输入一段接口描述OpenAPI格式或自然语言{ path: /api/login, method: POST, parameters: { username: string, 必填, password: string, 必填, 长度6-20 }, response: { 200: {token: string} } }AI自动生成的测试代码pytestimport pytest import requests def test_login_success(): url http://example.com/api/login payload {username: testuser, password: 12345678} resp requests.post(url, jsonpayload) assert resp.status_code 200 assert token in resp.json() def test_login_missing_password(): url http://example.com/api/login payload {username: testuser} resp requests.post(url, jsonpayload) assert resp.status_code 400整个过程不到3秒再也不用手敲了。二、核心原理说白了就三步把接口定义Swagger/JSON/自然语言塞进Prompt让大模型输出pytest格式的测试代码保存成.py文件直接运行我们用的是OpenAI API你也可以换成国产的通义千问、智谱GLM等调用方式几乎一样。三、环境准备只需两步1. 安装依赖pip install openai requests pytest2. 获取API Key访问 OpenAI Platform注册并创建Key或使用国内模型百度千帆、阿里百炼、智谱AI文末有替换方法四、完整代码可直接运行import os import re from openai import OpenAI # 配置区 # 请替换成你自己的 API Key API_KEY sk-xxxxxxxxxxxxxxxxxxxxxxxx BASE_URL https://api.openai.com/v1 # 国内用户需使用代理或替换成国内模型地址 MODEL gpt-3.5-turbo # 或 gpt-4 # client OpenAI(api_keyAPI_KEY, base_urlBASE_URL) def generate_test_cases(api_description: str) - str: 调用大模型根据接口描述生成 pytest 测试用例代码 :param api_description: 接口描述文本 (支持 JSON / 自然语言) :return: 生成的 Python 代码字符串 prompt f你是一个资深的接口自动化测试工程师。 请根据以下接口描述生成完整的 pytest 测试用例代码。 要求 - 使用 requests 库发送请求 - 包含至少3个测试用例正常场景、异常场景、边界场景 - 每个测试用例要有明确的断言状态码、返回字段 - 代码要可以直接复制运行 接口描述如下 {api_description} 只输出 Python 代码不要多余的解释。 try: response client.chat.completions.create( modelMODEL, messages[ {role: system, content: 你是专业的测试开发工程师只输出可执行的Python代码。}, {role: user, content: prompt} ], temperature0.3, # 降低随机性保证输出稳定 ) code response.choices[0].message.content # 去掉 markdown 代码块标记如果模型加了 code re.sub(rpython\n?|\n?, , code) return code.strip() except Exception as e: print(f调用AI生成失败: {e}) return def save_test_file(code: str, filename: str test_generated.py): 保存生成的代码到文件 with open(filename, w, encodingutf-8) as f: f.write(code) print(f✅ 测试用例已保存到 {filename}) if __name__ __main__: # 示例接口描述你可以替换成自己的接口文档 api_desc 接口路径: POST /api/user/register 请求体 (JSON): { username: 字符串必填3-20位, email: 邮箱格式必填, password: 字符串必填6-20位 } 响应: 成功 200: {code:0, message: success, user_id: 123} 失败 400: {code: 1001, message: 用户名已存在} 失败 422: {code: 1002, message: 参数校验失败} print( 正在生成测试用例请稍候...) test_code generate_test_cases(api_desc) if test_code: save_test_file(test_code) print(\n生成的代码如下\n) print(test_code) # 可选立即运行生成的测试需确保依赖已安装 run input(\n是否立即执行生成的测试y/n: ).strip().lower() if run y: os.system(pytest test_generated.py -v) else: print(❌ 生成失败请检查网络或API Key)五、如何把这段代码用到你的实际工作中1. 对接Swagger/OpenAPI如果你们的接口文档是Swagger JSON稍加改造就能自动读取import json, requests # 拉取Swagger文档 swagger_url http://your-api.com/v2/api-docs doc requests.get(swagger_url).json() # 提取每个接口的path、method、参数 for path, methods in doc[paths].items(): for method, detail in methods.items(): description f{method.upper()} {path}\n参数{detail.get(parameters, [])}\n响应{detail.get(responses, {})} test_code generate_test_cases(description) save_test_file(test_code, ftest_{path.replace(/, _)}.py)2. 增加断言自定义你可以在Prompt中告诉AI公司内部的校验规则比如“断言时统一检查返回码是否为0如果不是0则打印message”AI会自动把规则写进代码。3. 连续生成批量运行写出一个脚本一口气把几十个接口的测试用例全生成然后pytest批量执行。六、常见问题与解决方案Q1我没有OpenAI API Key怎么办用国产模型替换只需改BASE_URL和MODEL。以智谱AI为例 API_KEY 你的智谱API Key BASE_URL https://open.bigmodel.cn/api/paas/v4/ MODEL glm-4-flash 其他模型通义千问、文心一言同理参照官方文档改endpoint。Q2生成的代码有语法错误或跑不通可以增加一个简单的语法校验或者把错误信息喂回给AI让它修正import subprocess result subprocess.run([python, -m, py_compile, test_generated.py], capture_outputTrue) if result.returncode ! 0: # 把错误信息重新发给AI修正 fix_prompt f代码有语法错误请修正\n{result.stderr.decode()}Q3生成的测试用例不够全面优化你的Prompt增加细节例如“请覆盖边界值username长度为3和20密码包含特殊字符”。七、进阶方向让助手更智能支持多轮对话生成后不满意可以继续让AI修改自动执行并分析失败AI根据报错信息自动修复断言集成到CI接口文档有变更自动触发重新生成用例这些都超出了纯自动化的范畴但你现在的代码已经打下了基础——你已经开始用AI改造自己的工作流了。写在最后测试开发人员的核心竞争力从来不是熟练度而是搭建高效工具的能力。这个AI助手花半小时就能跑起来但它每天能帮你节省1小时的手工编写时间。更重要的是它展示了一种思路凡是重复的脑力劳动都可以交给AI。如果你成功跑起来了欢迎在评论区晒出你生成的第一个测试用例。下一期我将分享《AI自动修复接口测试报错》让你的用例不仅能生成还能自愈。最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】