Selenium
Convierte pruebas de Selenium WebDriver en Java, Python, C# o JavaScript en casos de prueba de Autonomy con pasos de resultados esperados, sin objetos de página ni esperas explícitas.
Las suites de Selenium varían según el lenguaje, pero comparten una forma: un driver, locators, esperas explícitas y objetos de página. La migración no depende del lenguaje, porque el agente de programación lee lo que comprueba cada prueba, no sus bindings.
Prompt
Pega esto en un agente de programación conectado al servidor MCP de Autonomy, desde dentro del repositorio:
Migra las pruebas de Selenium de este repositorio a Autonomy con las herramientas MCP de Autonomy.
Preparación
1. Llama a autonomy_project_list y pregúntame qué proyecto usar. Llama a autonomy_environment_list con su projectId y pregúntame en qué entorno ejecutar.
2. Llama a autonomy_test_case_list con el projectId. Omite las pruebas que ya cubra un caso de prueba existente.
Para cada prueba
3. Crea UN caso de prueba con autonomy_test_case_create: projectId, name = el método de prueba o su nombre visible, platforms = ["web"].
4. Escribe cada paso como un resultado esperado: lo que es cierto cuando el paso termina, en palabras sencillas ("Existe una cuenta nueva para un correo nuevo"). Di lo que demuestra la prueba, no cómo: sin clics, locators, esperas, reintentos ni llamadas a assert. Un paso puede abarcar varias acciones que sirven a un mismo resultado esperado. Usa 12 pasos o menos; divide una prueba más larga en varios casos de prueba.
5. Cada paso es {id, text, attachments[]}. Cada adjunto tiene id, kind y exact. Tipos: account {role}, inbox (sin dirección = una bandeja de entrada nueva por ejecución), phone, file, screenshot, data {label, value} o {label, intent} para datos generados.
6. Nunca escribas una contraseña, un token o una clave en un paso. Por cada cuenta con la que la suite inicia sesión (objetos de página de login, métodos de setup, archivos properties), pídeme que la guarde en el panel (Sign-ins del proyecto, New sign-in) y que te diga su nombre de cuenta; después empieza la prueba con un paso como "El propietario de la tienda ha iniciado sesión" con esa cuenta adjunta. Para otros secretos de archivos de configuración o variables de entorno, propón nombres y referéncialos como {{env.NAME}}; añádelos como valores secretos con autonomy_environment_upsert solo después de que yo esté de acuerdo.
7. Los valores sobre los que trata la prueba (el texto que getText() devuelve a un assert, un cupón que debe aplicarse, una entrada que debe rechazarse): un adjunto data con exact: true. El resto de la configuración: {{env.NAME}}.
8. Datos de registro (correos, nombres, contraseñas, sufijos aleatorios): una bandeja de entrada nueva y datos generados, nunca un valor fijo.
9. Integra los métodos de los objetos de página en lo que demuestra la prueba; descarta sus locators. Descarta WebDriverWait, ExpectedConditions, Thread.sleep y las reglas de reintento. En las pruebas dirigidas por datos, crea un caso de prueba por fila solo cuando las filas esperan resultados distintos; si no, usa datos de prueba.
Al terminar
10. Si la suite agrupa pruebas (clases, grupos de TestNG, etiquetas de JUnit, markers de pytest), ofréceme crear un plan de pruebas por grupo con autonomy_test_plan_create.
11. Ejecuta un caso de prueba migrado con autonomy_run_trigger en el entorno que elegí. Síguelo con autonomy_run_get (pasa el último cursor y waitMs) hasta que termine. Para cada paso que no se haya superado, lee autonomy_run_step_actions y cuéntame qué pasó.
12. Termina con una tabla: prueba de origen, ID del caso de prueba, número de pasos y todo lo que no hayas podido trasladar.Equivalencias
| Selenium | Autonomy |
|---|---|
| Un método de prueba | Un caso de prueba. |
| Clases de prueba, grupos, etiquetas, markers | Opcionalmente, un plan de pruebas. |
driver.get, click, sendKeys, locators By.*, objetos de página | Integrados en el resultado esperado del paso. El agente encuentra los controles. |
assertEquals("Order placed", el.getText()) | El resultado esperado, con Order placed como adjunto data marcado como Exact. |
WebDriverWait, ExpectedConditions, sleeps, reglas de reintento | Se descartan. |
| Objetos de página de login, métodos de setup | Un paso con la sesión iniciada y un inicio de sesión guardado adjunto como account. |
| Credenciales y configuración en archivos properties | Inicios de sesión para las cuentas; {{env.NAME}} para el resto, marcado como secreto cuando es una credencial. |
| URL base | El objetivo Web del entorno. |
sendKeys con una ruta de archivo | Un adjunto file de los Files del proyecto. |
getScreenshotAs | Un adjunto screenshot. |
| Data providers, pruebas parametrizadas | Un caso de prueba por fila solo cuando las filas esperan resultados distintos. |
| Grid y capacidades del navegador | No hacen falta. Las ejecuciones web usan un Chrome nuevo. |
Consulta el resumen de la migración para ver un ejemplo completo.
¿No lo encontraste?
Puppeteer
Convierte pruebas de Puppeteer y jest-puppeteer en casos de prueba de Autonomy con pasos de resultados esperados, sin waitForSelector ni bucles de reintento escritos a mano.
Appium
Convierte pruebas de Appium en Java, Python o JavaScript en casos de prueba de Android de Autonomy con pasos de resultados esperados, sin capabilities, drivers ni locators.