探索Dify自动化测试:ollama+skyvern赋能高效测试新体验——ollama 与 skyvern 结合(上篇)

张开发
2026/4/17 16:22:39 15 分钟阅读

分享文章

探索Dify自动化测试:ollama+skyvern赋能高效测试新体验——ollama 与 skyvern 结合(上篇)
技术融合架构ollama 与 skyvern 在 Dify 自动化测试中共同构建起了一个紧密协作、高效运行的技术融合架构宛如一个精密而复杂的交响乐团每个乐器组都各司其职又相互配合共同演奏出美妙的测试乐章 。从整体架构来看ollama 作为智能大脑主要负责测试用例的生成和智能分析。它基于自然语言理解和生成技术能够根据测试人员输入的自然语言描述自动生成详细的测试用例。例如测试人员只需简单地描述 “测试电商网站的购物流程包括商品搜索、添加购物车、结算支付等环节”ollama 就能迅速理解需求并生成涵盖各种正常和异常情况的测试用例如搜索热门商品、搜索不存在的商品、添加限购商品到购物车、使用不同支付方式进行结算等。同时ollama 还能够对测试结果进行智能分析挖掘出潜在的问题和风险为测试人员提供有价值的建议和改进方向。skyvern 则专注于网页自动化操作和元素识别。它利用先进的视觉大模型和计算机视觉技术实现对网页元素的精准定位和操作。在测试过程中skyvern 就像是一个不知疲倦的机器人能够按照 ollama 生成的测试用例自动在网页上进行各种操作如点击按钮、输入文本、选择下拉框等。而且skyvern 的元素识别能力非常强大它不受网页元素定位方式变化的影响能够准确地识别出各种复杂网页中的元素确保测试的稳定性和可靠性。Dify 则作为整个架构的核心枢纽负责协调 ollama 和 skyvern 之间的数据交互和任务执行。它通过可视化工作流设计将 ollama 生成的测试用例和 skyvern 的自动化操作有机地结合起来形成一个完整的测试流程。在 Dify 的工作流中测试人员可以轻松地配置测试环境、选择测试用例、监控测试进度和结果实现对整个测试过程的全面掌控。在数据交互流程方面当测试人员在 Dify 中发起一个测试任务时首先会将测试需求以自然语言的形式输入给 ollama。ollama 接收到需求后经过分析和处理生成相应的测试用例并将这些测试用例发送给 Dify。Dify 根据测试用例的要求调用 skyvern 对网页进行自动化操作。skyvern 在操作过程中会实时将操作结果反馈给 DifyDify 再将这些结果传递给 ollama 进行分析。ollama 根据分析结果生成测试报告并将报告返回给测试人员。整个数据交互流程就像是一条高效的生产线各个环节紧密配合确保测试工作的顺利进行。实际测试流程演示以用户登录流程测试为例让我们来详细领略一下 ollama 与 skyvern 结合后在 Dify 自动化测试中的神奇表现 。第1步登录 Dify浏览器打开http://192.168.0.18:8080自己地址第2步创建新工作流点击创建应用→工作流命名为 自动化登录 配置工作流节点节点1开始节点点击开始节点添加输入变量变量名user_input类型文本标题测试需求节点2集成Ollma1添加结点2选择LLM3上下文设置变量值选择user_input4SYSTEM中维护如下内容你是测试助手。将用户的自然语言测试需求转换为操作步骤列表。用户需求{{#开始.user_input#}}输出格式每行一个步骤打开 http://192.168.0.130/ceshi输入用户名 [具体用户名]输入密码 [具体密码]点击登录按钮等待3秒规则1. 如果用户说登录系统使用用户名 admin密码 admin1232. 如果用户提供了用户名和密码使用用户提供的3. 必须输出具体的用户名和密码不要输出占位符如 {用户名}4. 只输出步骤不要输出解释5. 每步一行不要编号示例1用户说登录系统输出打开 http://192.168.0.130/ceshi输入用户名 admin输入密码 admin123点击登录按钮等待3秒示例2用户说登录系统用户名 test密码 123456输出打开 http://192.168.0.130/ceshi输入用户名 test输入密码 123456点击登录按钮等待3秒示例3用户说登录 http://example.com账号 john密码 secret输出打开 http://example.com输入用户名 john输入密码 secret点击登录按钮等待3秒节点3代码结点1添加结点2选择代码执行3输入变量 变量名input_data ,选择LLM下text4PYTHON3中维护如下代码defmain(input_data):# 如果输入是字符串ifisinstance(input_data,str):description input_data# 如果输入是字典elifisinstance(input_data,dict):description input_data.get(text,)else:description str(input_data)return{description: description}5输出变量 变量名description 变量类型String

更多文章