news 2026/4/17 16:22:34

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
探索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 在操作过程中,会实时将操作结果反馈给 Dify,Dify 再将这些结果传递给 ollama 进行分析。ollama 根据分析结果,生成测试报告,并将报告返回给测试人员。整个数据交互流程就像是一条高效的生产线,各个环节紧密配合,确保测试工作的顺利进行。

实际测试流程演示

以用户登录流程测试为例,让我们来详细领略一下 ollama 与 skyvern 结合后在 Dify 自动化测试中的神奇表现 。

第1步:登录 Dify

浏览器打开:http://192.168.0.18:8080(自己地址)

第2步:创建新工作流

  1. 点击创建应用工作流

  2. 命名为 "自动化登录"

📝 配置工作流节点

节点1:开始节点

点击开始节点,添加输入变量:

  • 变量名:user_input

  • 类型:文本

  • 标题:测试需求

节点2:集成Ollma

(1)添加结点

(2)选择LLM

(3)上下文设置变量值,选择user_input

(4)SYSTEM中维护如下内容

你是测试助手。将用户的自然语言测试需求转换为操作步骤列表。

用户需求:{{#开始.user_input#}}

输出格式(每行一个步骤):

打开 http://192.168.0.130/ceshi

输入用户名 [具体用户名]

输入密码 [具体密码]

点击登录按钮

等待3秒

规则:

1. 如果用户说"登录系统",使用用户名 admin,密码 admin123

2. 如果用户提供了用户名和密码,使用用户提供的

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下text

(4)PYTHON3中维护如下代码

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 16:22:20

vue2+vue3 知识点讲解

目录 vue2 vue3 vue2 vue是什么?是一个用于构建用户界面的渐进式框架 创建实例:new Vue ( { el 指定挂载点,data 提供数据 } ) 插值表达式 {{ 表达式 }} 注意:不能在标签属性中使用 vue核心特性:响应式…

作者头像 李华
网站建设 2026/4/17 16:22:07

基于51单片机的煤气/天然气泄漏报警与排风系统 | 保姆式教程 开源可复刻

⚠️【高危安全强制警示】本项目涉及220V强电操作,绝对禁止带电接线、带电调试强电部分,所有强电接线必须在完全断电、确认无市电输入的状态下操作,建议由具备电工资质的专业人员完成强电回路接线,必须做好双重绝缘防护与短路保护,杜绝触电、火灾、爆炸等安全隐患。本内容…

作者头像 李华
网站建设 2026/4/17 16:20:11

从零到一:LVGL 9.0在Linux桌面环境下的移植与SDL图形界面实战

1. LVGL 9.0与Linux桌面环境适配基础 LVGL(Light and Versatile Graphics Library)作为嵌入式领域最受欢迎的轻量级图形库之一,其9.0版本带来了更强大的渲染性能和模块化架构。在Linux桌面环境下搭建SDL模拟器,相当于为嵌入式UI开…

作者头像 李华
网站建设 2026/4/17 16:19:49

【RH294知识点汇总】第 3 章 《 管理变量和事实 》2

目录 第二部分:Ansible Vault - 机密管理 2.1 为什么需要 Vault? 2.2 Vault 命令速查表 2.3 在 Playbook 中使用加密文件 方式一:交互式输入密码 方式二:使用密码文件 方式三:Playbook 中引用加密变量 2.4 最佳…

作者头像 李华