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

在编写测试用例的过程中,测试工程师会通过需求文档,研发的概要设计等信息编写测试用例,测试用例的输出格式常常为思维导图或者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_tool

retriever_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 将需求文档转为测试用例的技巧
全部评论

相关推荐

投票
电科 销售管培生 年包16到22 本科二本, 硕士双非
点赞 评论 收藏
分享
11-15 20:44
中北大学 Python
自我介绍现在大三 学校让实习嘛 最早什么时候到岗  1.  讲一讲你的项目 和我们业务相契合的地方算法工程方面的- 讲了之前部署的mutualAI社区的事情 还有在strikingly的业务- ollama3 通译7b 2. 之前处理的数据都是文本数据 有处理过类似pdf这样的文件嘛之前处理的确实是文本数据 后面也用过Python的解析库 但是时间有点长 具体讲不明白了3.  Agent框架   用过魔搭社区的4. Python的后端框架都用过那几个   FastAPI Flask Django都用过5. 用没用过FastAPI的后台管理框架 和权限管理的框架?- 没有了解过 之前都是用的Django的6. 爬虫框架你用过嘛- 没用过框架 感觉他们的东西有点重- 用过requests框架 Aiohttp这样的框架 7. Nginx配置跨域 - 这个好久没做忘了8.  Docker 和 K8s用过嘛- 用过docker 没用k8s9.  MySQL优化 怎么优化Mysql- 应该是加索引  redis缓存 本地缓存 联合索引 MySQL的八股需要看一下10. 会构建 数据表嘛- 这个应该是阿里和三范式那一套 记不清楚了(好久没建表了)11. 对我们有什么疑问嘛 - ​问了具体干一些什么事情 听着好像tmd运维 后端 算法全要干 好黑奴12. 机器学习 深度学习了解多少​会一点逻辑回归 支持向量机 随机森林这样的 ​深度学习会CNN RNN这样的13. CICD了解过吗   没做过工程应用 之前 配置了一下 后面交给另一个人了 用gitlab 没有机会学习
查看13道真题和解析
点赞 评论 收藏
分享
目前就读于洛杉矶某QS100+学校CS硕。正常毕业时间是2025.12,这次秋招想着试一下吸取一下经验,要是运气好真找到了就提前毕业工作了。不过结果也是没啥结果了,目前就一个家乡的薪资还行的测开(查了一下这几年招人挺多的而且网上说猛裁应届生,而且感觉没啥发展前途不太想去)。自己本科有过一点后端Spring的项目,但经过面试发现学的不是很精,八股也背的少了被狠狠拷打。然后就是硕士在学校学的比较多的就是AI方面的,上了一些ai agent,ML,NLP的课。不过感觉整得几个项目深度貌似也不是特别深,有点小打小闹的感觉,主要是没啥创新点。感觉上课的这种硕也很难发什么论文出来。看了一下现在很多AI相关的岗位都是招博士要论文什么的,感觉自己也是不够精通这方面。然后就是因为没脑子缺少职业规划,只有一段很短的强化学习学术方面的实习和一段小厂测开(后面面测开还被拷打不够精通,某些自动化测试框架和流程不熟悉)的实习。现在感觉很迷茫,正在恶补一遍青空霞光大佬的java web到spring boot的学习路线,想把这个学精一些。还是选择从github上找个学习路线把AI方面比如LLM狠狠学一学,还是走别的ai相关的路线。求各位佬支个招前段时间每天都在学业和就业双重压力下苟活,无限焦虑#秋招##如果再来一次,你还会选择这个工作吗?#
投递光大集团等公司10个岗位 如果再来一次,你还会选择这个工作吗?
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务