基于LangChain手工测试用例生成工具

news/2024/10/5 22:22:30/文章来源:https://www.cnblogs.com/hogwarts/p/18274176

在编写测试用例的过程中,测试工程师会通过需求文档,研发的概要设计等信息编写测试用例,测试用例的输出格式常常为思维导图或者excel等数据信息。

在以上的流程中,一个测试工程师可以根据比较详细的需求文档以及研发的概要设计输出对应的测试点,以及测试用例。而如果和人工智能进行结合的话,人工智能代替的工作就是测试工程师目前的位置。

实践演练

需求说明

接下来,则通过一个小实战练习完成整个流程,以下为某个产品的需求文档(需要右键另存为)。

实战要完成具体的操作为,根据对应的需求文档,生成一个思维导图。

实现思路

完整代****码

from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores.faiss import FAISS
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain import hub
from plantuml import PlantUML# 声明模型
llm = ChatOpenAI()
# # 1. 读取文件。
loader = TextLoader("./需求文档.md")
data = loader.load()
# 3. embedding
embeddings = OpenAIEmbeddings()
# # 4. 向量存储
vector = FAISS.from_documents(data, embeddings)
retriever = vector.as_retriever()from langchain.tools.retriever import create_retriever_toolretriever_tool = create_retriever_tool(retriever,"search_demand","找到需求文档中具体说明需求的地方",
)
@tool
def generate_png(uml_code, filename):"""输入plantuml代码生成图像并保存为文件"""plantuml = PlantUML(url='https://plantuml.ceshiren.com/img/')image_bytes = plantuml.processes(uml_code)with open(f'{filename}.png', 'wb') as f:f.write(image_bytes)tools = [retriever_tool, generate_png]
llm_with_tools = llm.bind_tools(tools)prompt = hub.pull("hwchase17/openai-tools-agent")
agent = create_openai_tools_agent(llm, tools, prompt, )
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": """我是一个测试工程师,我需要从以上的需求文档中梳理出来需求信息,请帮我将所有的需求梳理出来,""思维导图的第一级是需求文档中的4.x开头的标题信息,表示功能模块,第二级是该功能模块的测试点,""请先输出一个 plantuml 格式的源码,源码格式如代码内所示@startmindmap* root node* some first level node* second level node* another second level node* another first level node@endmindmap然后再根据源码信息输出一个plantuml格式的思维导图文件。生成一个图片文件,文件名为 hogwarts加任意随机数"""
})

总结

  1. 掌握 LangChain 中Retrieval的使用。
  2. 掌握 LangChain 中 agent 的使用。
  3. 掌握通过 LangChain 将需求文档转为测试用例的技巧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/732988.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ros Slam 之Nav2导航框架介绍与安装

1.Nav2是什么Nav2项目继承并发扬ROS导航栈的精神。该项目力求以安全的方式让移动机器人从A点移动到B点。Nav2也可以应用于其他应用,包括机器人导航,如下动态点跟踪,在这个过程中需要完成动态路径规划、计算电机的速度、避免障碍、恢复行为。2.Nav2如何做到的Nav2使用行为树调…

Cilium VxLAN with eBPF 模式

Cilium VxLAN with eBPF 模式Cilium VxLAN with eBPF 模式 查看此文档前需要熟悉 VxLAN 相关信息,可以查看此文档 Linux 虚拟网络 VXLAN 一、环境信息主机 IPubuntu 172.16.94.141软件 版本docker 26.1.4helm v3.15.0-rc.2kind 0.18.0kubernetes 1.23.4ubuntu os Ubuntu 20.04…

Profibus协议转profinet协议网关模块连接电机保护器与PLC通讯

本文介绍了Profibus协议转Profinet协议网关模块(XD-PNPBM20)在工业自动化系统中的作用。通过使用Profibus协议转Profinet协议网关模块(XD-PNPBM20),用户可以实现实现Profibus DP从站设备与Profinet主站设备之间通信的关键设备。一、背景 工业通讯中常见的协议有:Modbus协…

记录---实现一个支持@的输入框

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣近期产品期望在后台发布帖子或视频时,需要添加 @用户 的功能,以便用户收到通知,例如“xxx在xxx提及了您!”。然而,现有的开源库未能满足我们的需求,例如 ant-design 的 Mentions 组件:但是不难发现跟微信飞书对比下…

前端异常监控平台Sentry安装配置使用及问题

一、Docker安装 这里我们使用Docker环境来安装Sentry,这里简述下载CentOS系统中安装Docker的过程。卸载旧版本的 Docker(如果有的话): 如果之前安装过 Docker,需要先卸载: sudo yum remove -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-l…

VUE 调用电脑摄像头进行拍照并上传到服务器保存,附前后端代码

前端代码 <template><div id="picUpload"><div><el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="120px"><el-row><el-form-item label="文件来源系统&q…

.net core如何读取appsettings的配置文件

假设建立一个.netcore mvc网站, 在appsettings.json添加如下代码: 如何读取这些配置的数值呢? 法一: 1. 先安装如下包: 2. 然后在HomeController.cs里添加如下代码: 测试结果如下: 法二: 1.先定义一个Model,如下: 2.然后去Startup.cs文件里,找到ConfigureServices方…

SUB-1G超低功耗收发芯片DP10RF001支持200MHz~960MHz(G)FSK/OOK调制无线抄表工业传感无线遥控

简介DP10RF001是一款工作于 200MHz~960MHz 范围内的低功耗、高性能、单片集成的(G)FSK/OOK无线收发芯片。内部集成完整的射频接收机、射频发射机、频率综合器、调制解调器,只需配备简单、低成本的外围器件就可以获得良好的收发性能。芯片支持灵活可设的数据包格式,支持自动应…

NCHU-软件学院-232019班-23201125-罗伊鑫-第三次Blog

前言 总结两次题目集的题目的知识点、题量、难度等情况 1.知识点 两次题目集都对于类的设计的提前规划好有着必要的需求,还有就是对于继承与多态的合理的使用。接着就是对于正则表达式的使用的检测,然后就是要有清晰的逻辑编程表达。 2.题量 总的来说,两次题目集的题量还是充…

未来教育新篇章:可视化大屏引领知识革命

在这个信息爆炸的时代,教育资源的获取和呈现方式正在经历一场前所未有的变革。想象一下,当所有的教育资源都以一种直观、生动的方式展现在你眼前,那会是一种怎样的体验?今天,就让我们一起走进这个充满无限可能的“教育资源可视化大屏”世界。传统的教育模式往往受限于教材…

ETL服务器连接GaussDB(DWS)集群客户端配置

问题描述:给ETL的服务器上安装gsql的工具,用来连接GaussDB(DWS)集群,做数据抽取用 DWS:GaussDB(DWS) 8.2.1-ESL 1.获取软件包 登录FusionInsight Manager系统,在“集群”下拉列表中单击需要操作的集群名称。选择“更多 >->下载客户端->下载集群客户端,不选择保存…