La presente guía tiene como objetivo entregarte un primer acercamiento a la creación de pruebas automatizadas de forma simple utilizando el plugin de CodeGPT para los IDEs Pycharm o IntelliJ para proyectos que utilizan Selenium y Cucumber/Behave.
Aclaro desde ya, esto es un primer acercamiento, todo -como no puede ser de otra forma- es mejorable y te invito a ello, coméntame como mejorar esta prueba y me estarás ayudando también.
1. Pre requisitos:
En este caso en particular describo las versiones con que pude ejecutar todo este proceso sin inconvenientes.
1.1 Proyecto Selenium + Python + Behave: Respecto a su estructura, esta integración es agnóstica (y trataré de que así sea). Idealmente el proyecto debe estar operativo y tener una estructura bien definida. Si bien los ejemplos son desde Pycharm, es igual de valido para IntelliJ (en su ultima versión community al menos)
1.2 Pycharm en la versión 2025.1.3.1 (Community),
1.3 Node. Code GPT lo necesita tener instalado.
2. Instalación
2.1 Instalamos el plugin “CodeGPT: Chat & AI Agents” desde File -> Settings -> Plugins Al momento de hacer esta guía, la última versión es 2.5.0-stable
2.2 Una vez instalado, deberías ver el icono en la barra izquierda
2.3 Si haces click en él, comenzará la auto configuración del plugin, en la que buscará la instalación de Node.js (critico) entre otras configuraciones.
Problema identificado: La búsqueda de Node.js puede dar error, esto en mi caso particular ocurrió una vez, aunque se solucionó la ejecutar IntellJ como Administrador
3. Configuración
3.1 Para utilizar el plugin, debes crear una cuenta en CodeGPT
3.2 Una vez “logeado”, deberías ver algo como esto, por defecto (al menos en mi caso) se utiliza Gemini 2.5 Flash
3.3 Tenemos otros modelos disponibles, así como una posible configuración para API Keys, aunque todos ellos, los PRO, están disponibles en la versión de pago de CODE GPT. En esta guía utilizaremos solo Gemini 2.5 flash
3.4 (Configuración adicional) Habilitamos el contexto desde el archivo actual, esto permitirá al IDE “leer” el archivo que tengamos abierto en IntelliJ. Lo utilizaremos para que lea los archivos .feature
3.5 Vamos a MCP para configurar el MCP de angiejones que le permitirá a CodeGPT abrir chrome driver y utilizar selenium sin problemas.
En la pestaña “MCP” presionamos “Open MCP Config File” (en tu caso en la sección “Available MCP Server” no saldrá nada de momento)
3.6 Registramos el MCP
3.7 Una vez registrado, nos aparecerá en el listado de MCP disponibles
3.8 Vamos con algunas configuraciones adicionales. Podemos darle mas contexto con archivos específicos, en mi caso, le entregaré un pequeño texto a modo de promp y el archivo donde se inicializa selenium en mi proyecto. Esto lo hice desde “File”
3.9 Una vez cargados los veremos aquí. (al final del articulo te comparto el texto del archivo “contextoIA.txt” y me disculparás lo precario)
Por otra parte recomiendo mostrarle específicamente a la IA donde tenemos el archivo que inicializa selenium en nuestro proyecto.
4. Probemos si funciona
4.1 Para probar que tal anda, he generado un archivo feature simple, que como ves, simplemente realiza una búsqueda en Google. Y le he pasado a CodeGPT la frase “crea los steps para satisfacer el escenario del archivo feature”
4.2 Una vez CodeGPT hace su “magia” veremos que ha creado los archivos y, al menos en mi caso, los crea en una subcarpeta en la raíz llamada “createNewFile”, esto pese a que en el archivo contextIA, le indico que utilice la estructura ya existente, en otras palabras, fui ignorado.
Ha creado los archivos Google_page.py (para el pom) y clase07_step.py, todo bien
4.3 Revisemos el archivo de page. Aunque no soy fan de POM, ha creado el archivo correctamente incluyendo comentarios.
4.4 Revisemos el archivo de steps. Todo correcto (y ordenado, para más placer)
4.5 Dejaré manualmente los archivos donde realmente los debería haber dejado y ejecutaré la prueba. Esto claro, en mi caso particular, y dada la estructura de mi proyecto.
4.6 La prueba se ejecutó correctamente
5. Un extra y MCP
¿Se puede solicitar ejecutar la prueba?
Si, si tienes un runner (como en mi caso) simplemente le pido a codegpt que ejecute al finalizar la construcción de los steps el archivo runner.py y listo. Ahora, he intentado que ejecute directamente un tag en concreto con algo como “Al finalizar ejecuta el escenario “@prueba1” pero no logra enviar el comando correctamente a la consola. ¡Si lo logras, avísame!
¿Y que pasa con MCP?
Bueno, aquí el limite es casi “la imaginación”, y si bien lo hemos instalado y no utilizado para la ejecución de la prueba (por ahora), veamos un ejemplo concreto del uso. Solo un ejemplo.
Podemos pedirle a CodeGPT que abra un navegador (abrirá selenium mediante el MCP) y darle instrucciones del paso a paso.
En este ejemplo le pido que abra el navegador, vaya a Google, realice una búsqueda.
Ahora le pediré que cree el codigo completo para satisfacer esta prueba. Inteligentemente, codeGPT, me indica que solo creará el feature, ya que reutilizará la definition de steps que ya existen para satisfacer la prueba.
Ha creado el archivo feature correctamente, aunque claro, utilizando las palabras reservadas de Gherkin en español, aunque sigue siendo completamente funciona.
Bueno ¿y que sigue? Como buen tester, seguir probando
*****
Contenido del archivo contextIA (esto es solo un ejemplo, y no es obligatorio)
Eres un experto en crear y ejecutar pruebas automatizadas con Python,
Selenium y Behave, para mantener la calidad del proyecto debes seguir siempre
estas normas:
1. Al leer un archivo .feature debes crear sus respectivos steps
procurando siempre la reutilización de estos, es decir,
si ya existe un step en el proyecto que pueda satisfacer el paso
declarado en el feature, no debes crear uno nuevo, evitando asi duplicidad
de pasos.
2. El archivo creado para los Steps, debe tener el mismo nombre del ARCHIVO .feature,
por ejemplo: si el archivo se llama prueba1.feature, el step se llamará prueba1_step.py
3. Los steps que crees deben crearse siempre en la carpeta que ya existe
en ./features/steps no debes crear carpetas nuevas
4. Los steps deben coincidir y ser logicos con los pasos declarados en el feature, no
busques optimizar esto, crealos para que sean concordantes.
4. Debes crear un page para caga pagina con que se interactúe, esto siempre
debe ser siguiendo las buenas practicas de Page Object Model (POM),
debes procurar la reutilización siempre y cuando sea posible.
5. Debes considerar que en este proyecto selenium se inicializa en el archivo environment.py, por tanto
debes considerar esta inicialización y no utilizar una nueva, te sugiero utilizar context.driver
para utilizar las funciones de selenium, siendo esta la variable que se inicializa en el archivo environment.
6. El nombre de ls funciones que crees y los mensajes que imprimas, deben ser siempre en español