登录  /  注册
博主信息
博文 352
粉丝 0
评论 0
访问量 59248
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
基于LangChain手工测试用例生成工具
霍格沃兹测开学社
原创
192人浏览过

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

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

实践演练

需求说明

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

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

实现思路

完整代码

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

总结

  1. 掌握 LangChain 中Retrieval的使用。
  2. 掌握 LangChain 中 agent 的使用。
  3. 掌握通过 LangChain 将需求文档转为测试用例的技巧
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学