Vertical Odoo · v0.2.0 en PyPI · Apache 2.0

ODOOFX · Automatización de pruebas de Odoo para Robot Framework

ODOOFX (paquete robotframework-odoofx) es una biblioteca de código abierto para Robot Framework dedicada a la automatización de pruebas de Odoo Community y Enterprise: la API RPC, la interfaz web y el ORM, con los cinco agentes y el método Spec-Test-Driven Development ya probados en SAP. La versión 0.2.0 está en PyPI: sus dos canales, la API RPC (XML-RPC y JSON-2) y el cliente web (inicio de sesión, navegación, lectura de las vistas, entrada y guardado de formularios, botones de acción), están probados en vivo en Odoo 16 y 19. Esta página dice lo que existe, lo que se está construyendo y en qué orden.

117 Pruebas ejecutadas en vivo Odoo 16 y 19 · 23 suites
69 Keywords documentadas Versión 0.2.0 · en PyPI
849 Pruebas unitarias Sin Odoo · 13 de octubre de 2026
0 € Coste de licencia Código abierto Apache 2.0
El diagnóstico

Un ERP que cambia cada año, pruebas que deben seguirle el ritmo

Odoo publica una versión principal al año, cada empresa lo enriquece con módulos y personalizaciones, y sus API evolucionan. Una herramienta de prueba genérica ve páginas web; ODOOFX quiere ver modelos, campos y estados de flujo de trabajo.

Actualizaciones de versión

Una versión principal al año

Los menús, las etiquetas y las vistas cambian de una versión a otra. ODOOFX apunta a una única base de código con detección de versión, en lugar de una suite de pruebas por versión que haya que mantener en paralelo.

Detección de versión Correspondencia de menús Etiquetas normalizadas
Módulos de negocio

Módulos y personalizaciones propios de cada empresa

Ventas, inventario, contabilidad, módulos de la comunidad y desarrollos internos: los agentes parten de la instancia real (modelos, campos, vistas) y no de una descripción genérica de Odoo.

Community Enterprise Módulos a medida
API en transformación

API que cambian de forma

Odoo 19 declara obsoletos /xmlrpc y /jsonrpc en favor de la API JSON-2, con una retirada anunciada en la versión 22. El canal RPC de ODOOFX ya admite ambas vías: XML-RPC hasta Odoo 18, JSON-2 a partir de Odoo 19.

XML-RPC JSON-2 (Odoo 19) Elección según la versión
Arquitectura

Tres canales para actuar y verificar

El mismo principio que SAPFX, que unifica SAP GUI, Fiori y las API: una prueba actúa por el canal más fiel al recorrido del usuario y verifica por el canal más directo.

Canal 1

Interfaz web

El cliente web de Odoo pilotado por la biblioteca Browser (Playwright): inicio de sesión con prueba del destino, navegación por los menús mediante identificadores externos, lectura de las vistas, entrada y guardado de formularios (texto, fechas, listas de selección por código, casillas, relaciones, líneas), botones de acción y control de los estados. Es el recorrido que vive el usuario. Operativo en la 0.2.0: escrituras en pantalla cerradas por defecto y registradas, y un formulario a medio rellenar nunca se guarda por accidente. Por llegar: los botones que abren un asistente, las líneas de sección y de nota, la supresión de línea.

Browser / Playwright Formularios Menús
Canal 2

API RPC

Crear, leer, modificar, buscar y eliminar registros, llamar a un método de negocio (confirmar, cancelar) sin pasar por la pantalla. Operativo desde la 0.1.0: escrituras cerradas por defecto y registradas, destino demostrado (URL, base de datos, versión) antes de cualquier escritura.

XML-RPC JSON-2 CRUD
Canal 3

Introspección ORM

Leer los campos de un modelo con su tipo y sus relaciones, los modelos cuyo nombre contiene un texto, el estado de un módulo, los códigos de un campo de selección, el estado de flujo de trabajo de un registro y el identificador que hay detrás de un identificador externo: en la 0.2.0, probado en lectura en Odoo 16 (XML-RPC) y 19 (JSON-2). Es lo que leerán los agentes para redactar una especificación.

Modelos Campos Estados de flujo de trabajo

La aplicación móvil de Odoo (Appium) queda fuera del alcance de la primera versión.

Casos de uso

Lo que la 0.2.0 automatiza desde hoy

Tres usos cubiertos por la versión publicada, por la API y en pantalla, probados en Odoo 16 y 19.

No regresión

Pruebas de regresión por la API

Reproducir un flujo de negocio (presupuesto, confirmación, envío, cancelación) por XML-RPC o JSON-2, o en pantalla en el cliente web (entrada de un contacto, entrada y confirmación de un presupuesto con su botón), y verificar los códigos de estado, sea cual sea el idioma de la interfaz. La misma capa de negocio, neutra respecto a la versión, se ejecuta en Odoo 16 y 19.

Códigos de estado XML-RPC / JSON-2 Odoo 16 y 19 Entrada en pantalla
Datos de prueba

Datos de prueba limpios y trazables

Cada registro creado lleva un marcador de ejecución; cada escritura queda registrada (prevista, hecha, fallida, desconocida) y su desaparición se demuestra sobre el registro identificado. Las escrituras siguen cerradas mientras la conexión no las autorice.

Marcador de ejecución Registro de escrituras Vuelta atrás
Permisos y destino

Permisos de acceso y prueba del destino

Comprobar que un usuario pertenece, o no, a un grupo designado por su identificador externo, y demostrar la URL, la base de datos y la versión de Odoo antes de cualquier escritura: dos versiones de Odoo pueden convivir sin riesgo de confusión.

Grupos Identificadores externos Versión esperada
Método STDD

Cinco agentes, un método común

ODOOFX aplica el Spec-Test-Driven Development definido en rf-test-agents: la especificación, escrita en lenguaje humano y confrontada con la instancia viva de Odoo, guía la prueba; la prueba guía la biblioteca. La misma lógica que TDD, un ladrillo antes: la spec, verde por defecto en teoría, se confronta con el sistema real antes de escribir ningún test. Los agentes llevaron a cabo la primera campaña (dos planes observados en Odoo 16 y 19, quince suites RPC generadas y ejecutadas en vivo, una revisión independiente de solo lectura y una revisión ISTQB) y después una segunda: ocho suites web y ORM ejecutadas en vivo, seis de ellas revisadas por la revisión independiente y la revisión ISTQB. Viven en un repositorio de taller privado, con un plugin de rf-mcp y la capa odoofx-mcp; PyPI y el repositorio público entregan la biblioteca.

Exploración specs/

odoo-planner

Confronta la especificación humana (objetivo, historia de usuario, escenario BDD, suite existente) con la instancia real: vistas, modelos y campos ORM, estados de flujo de trabajo. Redacta su versión observada en specs/, revisada por una persona.

Generación .robot

odoo-generator

Produce la suite de Robot Framework a partir del plan, con cada paso ejecutado en vivo antes de escribirse, y la sella con la huella SHA256 del plan: un plan modificado sin regenerar la suite hace fallar el control.

Reparación limitada resources/

odoo-healer

Repara la capa resources/, nunca la prueba ni sus aserciones. Presupuestos fijados (2 candidatos, 20 llamadas, 900 segundos) y cinco veredictos, entre ellos application_defect cuando es Odoo el que ha cambiado.

Diseño normalizado ISTQB

odoo-istqb

Diseña planes y casos de prueba ISTQB reproducibles, y revisa cada suite generada: trazabilidad de los requisitos, valores límite, transiciones de estado, independencia y mantenibilidad, con un veredicto fechado.

Solo lectura Auditoría

odoo-verifier

Revisión independiente de solo lectura: fidelidad de la ejecución, exactitud de los veredictos, cobertura cumplida respecto a lo prometido en el plan. No escribe nada y no puede ser influido.

Constatar, no corregir en silencio

Una suite en rojo se comunica, no se maquilla: ninguna omisión artificial, ninguna aserción debilitada para obtener verde. Lo que una prueba exige y la biblioteca todavía no sabe hacer se convierte en una keyword de OdooFxLibrary, nunca en un rodeo dentro de una suite.

Previsto · Datos y pruebas

Datos de prueba válidos que no salen del equipo

Tres necesidades concretas de las pruebas de ERP, inscritas en el backlog y definidas el 23 de septiembre de 2026. Nada de ello está implementado todavía.

Identificadores

Identificadores de negocio válidos por construcción

SIREN y SIRET (identificadores franceses de empresa), número de IVA intracomunitario e IBAN ficticios pero válidos, proporcionados por un paquete de Robot Framework compartido con SAPFX. Una semilla registrada permite reproducir un fallo con el mismo dato.

SIREN / SIRET IVA Semilla reproducible
Documentos

Presupuestos, facturas y albaranes leídos en PDF

El PDF se obtiene mediante la ruta de informes de Odoo con la sesión autenticada y después se verifica su texto. Un PDF sin capa de texto falla indicándolo, nunca con una lectura vacía.

Informes de Odoo Texto normalizado Importes localizados
Correos electrónicos

Un buzón de prueba local

El servidor SMTP saliente de Odoo apunta a un buzón Mailpit en un contenedor local, leído mediante su API: espera acotada de un mensaje, contenido, enlaces. Nunca un buzón público.

Mailpit SMTP local Cero fugas
Hoja de ruta

De la base del proyecto a la versión 1.0, en este orden

Estado a 13 de octubre de 2026. Los plazos son objetivos, no compromisos.

1

Base del proyecto · implantada

Repositorio público, licencia Apache 2.0, integración continua, control de redacción, memoria del proyecto y definición de los cinco agentes. Dos instancias de prueba de Odoo (16 y 19) están aprovisionadas con sus datos de demostración.

2

Canal RPC de la biblioteca · entregado en la 0.1.0

Lectura, escritura cerrada por defecto y registrada, llamada a métodos de negocio, prueba del destino; XML-RPC hasta Odoo 18, JSON-2 a partir de Odoo 19. Las treinta primeras keywords documentadas.

3

Primera campaña en vivo · realizada el 1 de octubre de 2026

El presupuesto de venta, del plan observado a la suite ejecutada: 15 suites RPC y 65 pruebas en Odoo 16 y 19 (creación, confirmación, envío, cancelación y vuelta atrás, permisos, producto almacenable), generadas por los agentes y revisadas por una revisión independiente.

4

Distribución · 0.1.0 el 5 de octubre de 2026, 0.2.0 el 13 de octubre de 2026

Paquete robotframework-odoofx en PyPI (0.1.0 el 5 de octubre, 0.2.0 el 13 de octubre), documentación de las keywords en línea y repositorio público sincronizado.

5

Canal web e introspección del ORM · entregados en la 0.2.0

Mediante la biblioteca Browser: inicio de sesión con prueba de la base de datos y de la serie, navegación por identificadores externos de menús, lectura de las vistas y de los registros, entrada y guardado de formularios (fechas, listas de selección, casillas, relaciones, líneas), botones de acción, cierre de sesión; en lectura, los campos, las relaciones, los modelos y los estados de los módulos por RPC. 69 keywords documentadas, 68 con un ejemplo reejecutado en Robot Framework. Segunda campaña: ocho suites web y ORM, 52 pruebas ejecutadas en vivo en Odoo 16 y 19 del 8 al 13 de octubre de 2026.

6

Agentes equipados · plugin entregado, el resto por llegar

El plugin de rf-mcp y la capa odoofx-mcp (estado de sesión: conexión RPC, sesión web, formulario sin guardar, registro de escrituras) existen en el taller privado y superaron 19 comprobaciones de 19 de extremo a extremo en Odoo 16 y 19. Por llegar: el estado de un registro por el ORM y una primera reparación de una suite por odoo-healer, que todavía no ha reparado ninguna.

7

Cobertura del canal web · por llegar

Los botones que abren un asistente, las líneas de sección y de nota, la supresión de línea, los campos numéricos con formato y un producto almacenable introducido en pantalla, cada uno con su prueba en vivo en Odoo 16 y 19 antes de cualquier publicación.

8

Multiversión e integración continua · por llegar, objetivo: finales de 2026

La detección de versión existe; faltan la adaptación a cada versión, la correspondencia de menús y etiquetas, la medición en Odoo 14, 15, 17 y 18 (hoy solo 16 y 19), instancias Docker descritas en el repositorio y una matriz de CI sobre las versiones objetivo.

9

Versión 1.0 · objetivo: 2027

Firmas estabilizadas, funciones admitidas documentadas versión por versión, versiones objetivo medidas. Los plazos son objetivos, no compromisos.

Primeros pasos

Instalar desde PyPI, con un solo comando

El paquete robotframework-odoofx se instala desde PyPI (Python 3.10 o superior, Robot Framework 7.4 o superior) y la documentación de sus 69 keywords está en línea. Las credenciales pasan por la línea de comandos, nunca por una suite.

# Instalar la biblioteca desde PyPI
pip install robotframework-odoofx

# Opción: la biblioteca Browser, para el canal web
pip install "robotframework-odoofx[web]"
rfbrowser init            # navegadores de Playwright, una sola vez
*** Settings ***
Library    OdooFxLibrary

*** Test Cases ***
Leer el estado de un presupuesto
    Connect To Odoo    http://localhost:8069    mi_base    admin    ${PASSWORD}    channel=xmlrpc
    Assert Quotation Status Is    sale    S00004
    [Teardown]    Disconnect From Odoo

# Ejecución: el secreto pasa por la línea de comandos
# robot -v "PASSWORD: Secret:<secret>" leer_presupuesto.robot
Preguntas de arquitectura

Comprender ODOOFX

Las respuestas breves a las preguntas que nos hacen sobre el estado del proyecto, las versiones objetivo y el lugar de ODOOFX en el ecosistema de AI Cabra.

ADR 01 · Estado del proyecto v0.2.0 · PyPI

¿En qué punto está ODOOFX hoy?

ODOOFX está en fase alfa, versión 0.2.0, publicada en PyPI el 13 de octubre de 2026 (la 0.1.0 es del 5 de octubre). Dos canales funcionan y están probados en vivo en Odoo 16 y Odoo 19. El canal RPC: lectura, escritura cerrada por defecto y registrada, prueba del destino, por XML-RPC hasta Odoo 18 y por la API JSON-2 a partir de Odoo 19. El cliente web, mediante la biblioteca Browser: inicio de sesión con prueba del destino, navegación por identificadores externos de menús, lectura de las vistas, entrada y guardado de formularios, botones de acción. Se han ejecutado 23 suites y 117 pruebas en las dos instancias (55 en Odoo 16, 62 en Odoo 19), escritas a partir de planes observados en las instancias. Aún no cubiertos: los botones que abren un asistente, las líneas de sección y de nota, la supresión de línea. No se reivindica ningún resultado en una instancia de cliente.

  • Código abierto desde el primer día: el repositorio público refleja el estado real, sin escaparate.
  • Cifras medidas, no anticipadas: cada resultado publicado indica su alcance y sus límites.
ADR 02 · Versiones y API Una base de código

¿Qué versiones de Odoo cubre ODOOFX?

Odoo Community y Enterprise, desde la versión 14, con una única base de código y detección de versión en lugar de una rama por versión. El desarrollo se apoya en Odoo 16, último cliente web histórico, y en Odoo 19, la versión más reciente: son las dos versiones probadas hasta hoy. Odoo 19 declara obsoletos los puntos de entrada /xmlrpc y /jsonrpc en favor de la API JSON-2, con una retirada anunciada en la versión 22: la biblioteca usa XML-RPC hasta Odoo 18 y JSON-2, con una clave de API, a partir de Odoo 19.

  • Dos generaciones de referencia: Odoo 16 y Odoo 19 en contenedores locales.
  • API anticipada: JSON-2 en servicio antes de la retirada de los antiguos puntos de entrada.
ADR 03 · Canales Web + RPC + ORM

¿Por qué probar Odoo mediante la API y el ORM además de la interfaz?

La interfaz demuestra el recorrido del usuario, pero es lenta y sensible a los cambios de visualización. Las llamadas RPC preparan los datos y verifican el estado real de los registros sin pasar por la pantalla; la introspección ORM proporciona a los agentes los modelos, los campos y los estados de flujo de trabajo reales en lugar de suposiciones. Así, una misma prueba puede actuar mediante la interfaz y verificar mediante la API.

  • Actuar por la pantalla, verificar por la API: un control que no depende de la visualización.
  • Especificaciones basadas en la instancia: los agentes leen el ORM, no adivinan.
ADR 04 · Ecosistema AI Cabra Suite

¿Cómo se articula ODOOFX con SAPFX y rf-test-agents?

rf-test-agents define el método común: el Spec-Test-Driven Development y el contrato de los cinco agentes. SAPFX lo aplica a SAP y ODOOFX a Odoo, sin bifurcarlo: una mejora del método descubierta en Odoo sube a rf-test-agents y luego vuelve a las demás verticales. ODOOFX aporta lo que es propio de Odoo: percepción ORM, canales RPC, lectura de las vistas y de los estados de flujo de trabajo.

  • Un método, varios ERP: los mismos agentes razonan del mismo modo sobre SAP y sobre Odoo.
  • Ninguna dependencia de código: cada vertical conserva su propio ciclo de vida.
Pruebas y alcance

Resultados medidos y alcance de la validación

Probar Odoo con Robot Framework a través de la API RPC y de la interfaz web, con introspección del ORM. Revisado el 13 de octubre de 2026. Las fuentes publicadas y las condiciones de medición se detallan a continuación.

Pruebas de Odoo y encuadre

¿Prueba Odoo, o va a tener que hacerlo?

Actualización de versión, módulos a medida, pruebas de aceptación de un proyecto de integración: hablemos de sus recorridos críticos. Sus casos reales orientan la hoja de ruta de ODOOFX.

  • Un intercambio técnico, no comercial
  • Sus datos permanecen en Francia
Descubrir el método STDD

o directamente por correo electrónico: