ToB企服应用市场:ToB评测及商务社交产业平台

标题: 基于 LangChain 的主动化测试用例的天生与实行 [打印本页]

作者: 守听    时间: 2024-10-2 07:30
标题: 基于 LangChain 的主动化测试用例的天生与实行
应用价值


实践演练

实现原理


实现思路

在理解需求之后,我们可以相识到我们需要让 Agent 具备两个功能:
如此,可以通过如下两个步骤实现需求:
工具包封装

为了让工具包更易被大模型理解,我们将注释调解为英文,提升准确率。同时为了传参的时候不出现格式错误题目,通过args_schema限制参数结构与格式(tools 章节有具体解说)。
  1. from langchain_core.tools import tool
  2. from pydantic.v1 import BaseModel, Field
  3. class PythonFileInput(BaseModel):
  4.     # 定义参数的描述   
  5.     filename: str = Field(description="filename")   
  6.     source_code: str = Field(description="source code data")
  7.    
  8. class PytestFileName(BaseModel):
  9.     # 定义参数的描述   
  10.     filename: str = Field(description="The name of the file to be executed")
  11.    
  12. @tool(args_schema=PythonFileInput)
  13. def write_file(filename, source_code):
  14.     """   
  15.     Generate python files based on input source code   
  16.     """   
  17.     with open(filename, "w") as f:   
  18.         f.write(source_code)
  19.         
  20. @tool(args_schema=PytestFileName)
  21. def execute_test_file(filename):
  22.     """   
  23.     Pass in the file name, execute the test case and return the execution result   
  24.     """   
  25.     import subprocess   
  26.     # 使用subprocess模块执行pytest命令   
  27.     result = subprocess.run(['pytest', filename], capture_output=True, text=True)   
  28.     # 检查pytest的执行结果   
  29.     if result.returncode == 0:   
  30.         print("测试运行成功!")   
  31.     else:   
  32.         print("测试运行失败:")   
  33.     print(result.stdout)   
  34.     return result.stdout
复制代码
通过 AGENT 实现需求

  1. #  注意:需要再原提示词的基础上添加 {code} 变量
  2. # prompt = hub.pull("hwchase17/structured-chat-agent")
  3. llm = ChatOpenAI()
  4. agent1 = create_structured_chat_agent(llm, tools_all, prompt)
  5. agent_executor = AgentExecutor(
  6.     agent=agent1, tools=tools_all,   
  7.     verbose=True,   
  8.     return_intermediate_steps=True,   
  9.     handle_parsing_errors=True)
  10. if __name__ == '__main__':
  11.     agent_executor.invoke({"input": "请根据以上源码生成文件", "code": """def test_demo(): return True"""})
复制代码
由以上的步骤,即可天生一个源码文件:

\1. 在天生源码文件后,可以继续增补提示词,要求Agent 实行对应的测试用例:


到这里,通过 Agent 就能主动天生测试用例文件实行测试用例了。
与其他的场景结合

在前面的章节中,已经实现了主动天生接口主动化测试用例的操作。可以直接与前面的操作结合,主动天生接口主动化测试用例,并实行测试用用例。
注意:load_case 怎样实现在前面章节:《基于LangChain手工测试用例转接口主动化测试天生工具》,已有对应解说
  1. # load_case 的返回结果是接口的自动化测试用例
  2. chain = (
  3.         RunnablePassthrough.assign(code=load_case) | agent1
  4. )
  5. agent_executor = AgentExecutor(
  6.     agent=chain, tools=tools_all,   
  7.     verbose=True,   
  8.     return_intermediate_steps=True,   
  9.     handle_parsing_errors=True)
  10.    
  11. if __name__ == '__main__':
  12.     agent_executor.invoke({"input": """      
  13.                请根据以下步骤完成我让你完成操作,没有完成所有步骤不能停止:               
  14.                1. 先根据以上源码生成文件。               
  15.                2. 根据上一步生成的源码文件,进行执行测试用例操作,并返回终的执行结果               
  16.                """})
复制代码
实行之后,即可在控制台看到天生的接口主动化测试用例的实行记录。

总结


怎样学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给各人。 至于能学习到多少就看你的学习毅力和本领了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习册本手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋侪们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【包管100%免费】
一、全套AGI大模型学习门路

AI大模型期间的学习之旅:从基础到前沿,把握人工智能的核心技能!

二、640套AI大模型报告合集

这套包罗640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研职员、工程师,照旧对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强盛的语言理解和天生本领,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

四、AI大模型商业化落地方案


作为平凡人,入局大模型期间需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的康健发展贡献力量。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4