Streamlit + AutoGen + DeepSeek:智能生成测试用例的实战指南

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


最近,在知识星球《AI技术实践案例》中看到一位小伙伴分享了《AutoGen + DeepSeek实战》的文章,深受启发。于是,我结合自己的测试工作场景,尝试将 StreamlitAutoGen 和 DeepSeek 结合起来,实现从 PRD 文件智能生成测试用例的全流程自动化。本文将分享我的实践过程,包括如何通过 Streamlit 快速构建交互式应用、利用 AutoGen 实现多智能体协作,以及调用 DeepSeek 模型生成高质量测试用例。希望我的经验能为大家提供一些参考和灵感!


工具组合的核心价值

  1. Streamlit

    • 快速构建交互式 Web 应用,支持上传 PDF 文件、输入 PRD 内容、选择导出格式等功能。

    • 实时展示生成的测试用例,提供友好的用户界面。

  2. AutoGen

    • 通过多智能体协作,模拟测试团队的分工与协作(如需求分析、测试设计、用例评审)。

    • 支持自定义角色,提升复杂需求的解析能力。

  3. DeepSeek

    • 深度理解 PRD 内容,提取关键需求点并生成高覆盖率的测试用例。

    • 支持多种格式导出,满足不同团队的需求。


实战场景与操作步骤

场景 1:上传 PDF 格式的 PRD 文件生成测试用例

需求:用户上传 PDF 格式的 PRD 文件,系统自动解析内容并生成测试用例。

步骤

  1. Streamlit 界面设计

    import streamlit as st
    
    # 设置页面配置
     st.set_page_config(
         page_title="上传需求文档&测试用例生成器",
         page_icon="✅",
         layout="wide"
     )
     ...
    # 创建选项卡
     source_tab1, source_tab2 = st.tabs(["📄 文档上传", "✏️ 手动输入"])
    
    with source_tab1:
         uploaded_file = st.file_uploader("上传需求文档", type=["pdf"])
    
         if uploaded_file isnotNone:
             # 保存上传的文件到data目录
             file_path = os.path.join("data", uploaded_file.name)
             with open(file_path, "wb") as f:
                 f.write(uploaded_file.getvalue())
    
             st.session_state.uploaded_file_path = file_path
             st.success(f"文件已上传并保存到: {file_path}")
            # 调用 AutoGen 和 DeepSeek 解析 PRD 并生成测试用例
    
    • 创建文件上传组件,支持上传 PDF 文件。

    • 添加按钮,触发测试用例生成流程。

  2. AutoGen 多智能体协作

    from autogen import AssistantAgent
    # 从PDF提取文本
    def extract_text_from_pdf(pdf_file) -> Dict[str, Any]:
         """从PDF文件中提取文本内容"""
         start_time = time.time()
    
         try:
             # 直接从内存加载PDF
             pdf_bytes = pdf_file.getvalue()
             doc = fitz.open(stream=pdf_bytes, filetype="pdf")
    
             # 提取文本
             
         
    # 创建测试用例生成器
     @st.cache_resource
    def get_testcase_writer():
         return AssistantAgent(
             name="testcase_writer",
             model_client=model_client,
             system_message=TESTCASE_WRITER_SYSTEM_MESSAGE,
             model_client_stream=True,
         )
    
    • 解析 PRD 内容。

    • 生成测试用例。

  3. DeepSeek 生成测试用例

    示例输出

    • 输出测试用例,支持多种格式导出(Excel、JSON、Markdown)。

  4. 导出功能实现

     # 导出为Markdown
    def export_to_markdown(testcases: TestCaseCollection) -> str:
    """将测试用例导出为Markdown格式"""
    
    # 导出为Excel
    def export_to_excel(testcases: TestCaseCollection) -> bytes:
         """将测试用例导出为Excel文件"""
    
    # 导出为JSON
    def export_json(testcases: TestCaseCollection) -> str:
       """将测试用例导出为JSON字符串"""
    
    • 添加导出选项,支持 Excel、JSON、Markdown 格式。


场景 2:手动输入 PRD 内容生成测试用例

需求:用户手动输入 PRD 内容,系统生成测试用例。

步骤

  1. Streamlit 界面设计

    with source_tab2:
     manual_input = st.text_area(
         "需求描述",
         height=300,
         placeholder="请详细描述你的功能需求,例如:\n开发一个用户注册功能,要求用户提供用户名、密码和电子邮件。用户名长度为3-20个字符,密码长度至少为6个字符且必须包含数字和字母,电子邮件必须是有效格式。",
         key="manual_requirements_input"
     )
    
     if manual_input:
         st.session_state.extracted_text = manual_input
       # 调用 AutoGen 和 DeepSeek 生成测试用例
    
    • 创建文本输入框,支持用户手动输入 PRD 内容。

  2. AutoGen 多智能体协作

    • 使用与场景 1 相同的流程,生成测试用例。

  3. 导出功能实现

    • 支持与场景 1 相同的导出功能。


常见问题

  1. 安装环境问题

    • 确保 Python 版本 >= 3.11。

    • 安装依赖库:

pip install -r requirements.txt
# 若遇到如图所示的问题,则安装
pip install openai

  1. 调用模型失败

    • 检查网络连接,确保能访问 DeepSeek API。

    • 确认 API 密钥配置正确。

  from autogen_ext.models.openai import OpenAIChatCompletionClient
  
  model_client = OpenAIChatCompletionClient(
  model="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
  base_url="https://api.siliconflow.cn/v1",
  api_key=your_api_key,
  model_info={
      "vision": False,
      "function_calling": True,
      "json_output": True,
      "family": "unknown",
  },
)

3.用例结果调优

    • 在 PRD 中明确需求细节(如边界值、异常场景)。

    • 调整 AutoGen 的提示词(prompt),增加生成用例的精准度。

    • 调整不同 AI模型,例如:Qwen/QwQ-32B、deepseek-ai/DeepSeek-R1

    • 文件过大时,建议将需求拆成模块,阶段分别生成对应用例,单次生成用例数在30条内


七、总结

通过 Streamlit + AutoGen + DeepSeek 的组合,测试工程师可以:

  1. 快速解析 PRD 文件,无论是上传 PDF 还是手动输入内容,都能高效生成测试用例。

  2. 支持多种格式导出,满足不同团队的需求(如 Excel 用于测试管理工具、Markdown 用于文档共享)。

  3. 提升测试设计效率,将需求到测试用例的转化时间从几周缩短到几分钟。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述​​​​
在这里插入图片描述​​​​

### DeepSeekAutoGen概述 DeepSeekAutoGen代表了当前AI领域内两种不同的技术解决方案,旨在提升自动化生成内容的质量以及简化其部署过程。对于希望利用这些先进工具实现特定业务目标的企业和个人开发者而言,理解两者的工作原理及其应用场景至关重要。 #### DeepSeek简介 作为一款专注于自然语言处理(NLP)任务的强大引擎,DeepSeek提供了多种预训练模型供用户选择,并支持微调以适应更具体的场景需求[^1]。该平台不仅限于文本生成,在问答系统、情感分析等方面同样表现出色。通过API接口轻松接入现有工作流中,使得即使是不具备深厚机器学习背景的知识工作者也能迅速上手操作。 #### AutoGen详解 相比之下,AutoGen则更加侧重于自动代码生成功能。它允许使用者定义模板并通过简单的参数设置来自动生成符合要求的应用程序源码片段或完整模块。这种能力极大地提高了软件开发效率并减少了人为错误的发生几率。更重要的是,借助内置优化算法,所产出的结果往往具备较高的性能表现[^2]。 #### 集成配置方法 为了更好地发挥各自优势并将二者有机结合在一起,可以考虑如下策略: - **环境准备**:确保本地计算机已安装Python解释器及相关依赖库;注册账号获取必要的API密钥。 - **数据交换机制设计**:基于RESTful API标准建立稳定的数据传输通道,以便于两套系统间的信息互通无阻。 - **联合调试流程制定**:针对可能出现的问题提前规划好排查思路和技术手段,比如日志记录、异常捕获等措施。 ```python import requests def call_deepseek_api(prompt, api_key): url = "https://api.deepseek.com/v1/generate" headers = {"Authorization": f"Bearer {api_key}"} payload = {"prompt": prompt} response = requests.post(url, json=payload, headers=headers) return response.json() def generate_code_with_autogen(template_id, params, autogen_token): endpoint = f"https://autogen.io/templates/{template_id}/generate" auth_header = {'Authorization': 'Token ' + autogen_token} result = requests.get(endpoint, params=params, headers=auth_header).text return result ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值