当前位置: 首页 > news >正文

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

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

图片

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

图片

实践演练
需求说明

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

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

实现思路

图片

完整代码
 

from langchain_community.document_loaders import TextLoaderfrom langchain_community.vectorstores.faiss import FAISSfrom langchain_core.tools import toolfrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain.agents import AgentExecutor, create_openai_tools_agentfrom langchain import hubfrom plantuml import PlantUML# 声明模型llm = ChatOpenAI()# # 1. 读取文件。loader = TextLoader("./需求文档.md")data = loader.load()# 3. embeddingembeddings = 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","找到需求文档中具体说明需求的地方",)@tooldef 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 将需求文档转为测试用例的技巧

最后感谢每一个认真阅读我文章的人,下方这份完整的软件测试教程已经整理上传完成,需要的朋友们可以文末自行领取:【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


http://www.mrgr.cn/news/63585.html

相关文章:

  • Rust 力扣 - 2090. 半径为 k 的子数组平均值
  • 代码随想录 -- 动态规划 -- 不同路径 II
  • 【jvm】堆的默认最大值和默认最小值的计算
  • 基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目
  • TELERAD公司介绍
  • 开源协议类型及长安链开源协议介绍
  • CSS3新增长度单位(二)
  • (六)Python结构数据类型
  • 一文读懂Zypher Research服务器抽象叙事,2024末段的热点
  • 20241101编译Rockchip原厂的RK3566平台的Buildroot【使用荣品的DTS】
  • 12月长沙EI会议征稿,你不能错过的传感和测量盛会
  • ERROR: btree index is not supported for ustore, please use ubtree instead
  • 【C语言】动态内存开辟
  • scRank从untreated数据推断药物有反应细胞类型
  • 逻辑磁盘管理 附实验:逻辑卷的组成与划分
  • 测序公司给的分析报告中为什么没有Ensembl GTF注释版本?
  • 「Math」初等数学知识点大纲(占位待处理)
  • BigDecimal 详解
  • python-函数前一行加@xxxx的含义参数的约束条件检查装饰器
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day8
  • 使用Linux连接阿里云
  • 动态规划-回文串问题——5.最长回文子串
  • 【UML】- 用例图(结合银行案例解释其中的奥义)
  • 残差块(Residual Block)
  • [每日一练]分组后元素最多的组别(all函数的全局比对)
  • 品牌怎么找到用户发的优质内容,进行加热、复制?