<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MARIANA MONTENEGRO</title>
    <description>The latest articles on DEV Community by MARIANA MONTENEGRO (@mpm2020).</description>
    <link>https://dev.to/mpm2020</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F626018%2Ff3a700d8-9d62-4a0e-915f-4e44399688a7.jpeg</url>
      <title>DEV Community: MARIANA MONTENEGRO</title>
      <link>https://dev.to/mpm2020</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mpm2020"/>
    <language>en</language>
    <item>
      <title>Mocking de APIs con WireMock</title>
      <dc:creator>MARIANA MONTENEGRO</dc:creator>
      <pubDate>Sat, 26 Sep 2026 16:46:02 +0000</pubDate>
      <link>https://dev.to/mpm2020/mocking-de-apis-con-wiremock-2h5p</link>
      <guid>https://dev.to/mpm2020/mocking-de-apis-con-wiremock-2h5p</guid>
      <description>&lt;p&gt;Mocking de APIs con WireMock: la habilidad que todo QA debería dominar en 2026 ¿Cuántas veces tu equipo de backend te dijo "todavía no está la API" y tuviste que esperar para poder testear? &lt;/p&gt;

&lt;p&gt;Con WireMock eso deja de ser un problema. Te cuento por qué esta herramienta se volvió indispensable en mi día a día como QA. &lt;/p&gt;

&lt;p&gt;🎭 Mock vs Stub: la confusión que casi todos tienen Antes de entrar en WireMock, aclaremos algo que se usa como sinónimo pero no lo es: Stub → Es una respuesta fija y predefinida. Le preguntás algo y siempre te devuelve lo mismo, sin lógica ni verificación. Su objetivo es simplemente "reemplazar" una dependencia para que el test pueda correr. Mock → Además de simular la respuesta, verifica el comportamiento: cuántas veces fue llamado, con qué parámetros, en qué orden. Un mock "sabe" si se usó correctamente. &lt;/p&gt;

&lt;p&gt;👉 En testing unitario esta diferencia es clave (piensen en Mockito). En testing de APIs con WireMock, en la práctica trabajamos mayormente con stubs (definimos request → response), aunque la herramienta también permite verificar llamadas (&lt;code&gt;verify()&lt;/code&gt;), acercándose al concepto de mock. Por eso WireMock se banca ambos mundos: es un stub server que puede comportarse como mock cuando necesitás validar interacciones. &lt;/p&gt;

&lt;p&gt;🤔 ¿Qué es Mocking y cuándo se usa en QA? Simular el comportamiento de una API real sin depender de que esté desplegada, estable o disponible. Es oro puro cuando:  * El backend todavía no está listo pero necesitás avanzar con la automatización. * Querés testear casos límite (errores 500, timeouts) que son difíciles de reproducir contra un servidor real. * Necesitás tests rápidos, aislados y reproducibles, sin depender de red ni de datos de terceros.  &lt;/p&gt;

&lt;p&gt;⚙️ Poniendo manos a la obra Con WireMock levantás un servidor standalone (Java) en minutos, definís tus stubs para GET, POST, PUT, DELETE, jugás con headers y query params, y simulás:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Respuestas exitosas: &lt;code&gt;200 OK&lt;/code&gt;, &lt;code&gt;201 Created&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Errores de cliente: &lt;code&gt;400 Bad Request&lt;/code&gt;, &lt;code&gt;401 Unauthorized&lt;/code&gt;, &lt;code&gt;404 Not Found&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Errores de servidor: &lt;code&gt;500 Internal Server Error&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Condiciones reales: latencia, timeouts, respuestas corruptas  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lo más potente: podés generar respuestas dinámicas, devolviendo distintos JSON según los datos del request. Esto te permite simular flujos completos, no solo respuestas sueltas. &lt;/p&gt;

&lt;p&gt;🧪 De la teoría a la práctica Podés probar tus mocks con Postman, Bruno o simplemente curl. Y cuando ya tenés confianza, el siguiente paso natural es la automatización: integrar WireMock con Karate, gestionarlo con Maven y correrlo en Jenkins dentro de tu pipeline de CI/CD.&lt;/p&gt;

&lt;p&gt;💬 ¿Vos ya usás WireMock en tu stack de testing? ¿O trabajan con otra herramienta para mockear APIs (MockServer, Postman Mock Server, JSON Server)? Me interesa conocer qué usan en sus equipos.&lt;/p&gt;

&lt;h1&gt;
  
  
  QA #Testing #WireMock #API #Automatizacion #SoftwareTesting
&lt;/h1&gt;

</description>
      <category>api</category>
      <category>testing</category>
      <category>tools</category>
    </item>
    <item>
      <title>🚀 Automatización de Pruebas con WebdriverIO: Mi Proyecto Open Source</title>
      <dc:creator>MARIANA MONTENEGRO</dc:creator>
      <pubDate>Sat, 08 Mar 2025 01:04:08 +0000</pubDate>
      <link>https://dev.to/mpm2020/automatizacion-de-pruebas-con-webdriverio-mi-proyecto-open-source-1n5e</link>
      <guid>https://dev.to/mpm2020/automatizacion-de-pruebas-con-webdriverio-mi-proyecto-open-source-1n5e</guid>
      <description>&lt;p&gt;🔹 Introducción&lt;br&gt;
La automatización de pruebas es clave para garantizar calidad en el desarrollo de software. Por eso, decidí crear un proyecto con WebdriverIO, que permite probar tanto aplicaciones web como APIs de manera sencilla y eficiente.&lt;/p&gt;

&lt;p&gt;📌 Repositorio en GitHub → WDIOProject&lt;/p&gt;

&lt;p&gt;🔹 ¿Qué incluye este proyecto?&lt;/p&gt;

&lt;p&gt;✅ Pruebas frontend y backend → Estructura separada para pruebas en UI y API.&lt;br&gt;
✅ Configuración lista para usar → WebdriverIO preconfigurado para ejecutar pruebas rápidamente.&lt;br&gt;
✅ Código modular y reutilizable → Carpeta /common/utils para compartir funciones entre tests.&lt;br&gt;
✅ Ejemplo práctico → Escenarios de prueba listos para ejecutar.&lt;/p&gt;

&lt;p&gt;🔹 Cómo empezar&lt;/p&gt;

&lt;p&gt;1️⃣ Clona el repositorio&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/mpm2020/WDIOProject.git" rel="noopener noreferrer"&gt;https://github.com/mpm2020/WDIOProject.git&lt;/a&gt;&lt;br&gt;
cd WDIOProject&lt;br&gt;
2️⃣ Instala dependencias&lt;/p&gt;

&lt;p&gt;npm install&lt;br&gt;
3️⃣ Ejecuta las pruebas&lt;/p&gt;

&lt;p&gt;npx wdio wdio.conf.js&lt;br&gt;
🔹 Conclusión&lt;br&gt;
Este proyecto es ideal para quienes quieren iniciarse en WebdriverIO o mejorar su framework de pruebas. ¡Dale un vistazo, pruébalo y dime qué opinas!&lt;/p&gt;

&lt;p&gt;📌 Repositorio en GitHub → WDIOProject&lt;/p&gt;

&lt;p&gt;💬 ¿Has trabajado con WebdriverIO? ¿Qué herramientas usas para pruebas automatizadas? ¡Déjame tu comentario!&lt;/p&gt;

&lt;h1&gt;
  
  
  QA #Testing #WebdriverIO #Selenium #Automation #OpenSource
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Selenium with Python Behave (BDD)- Allure Reports</title>
      <dc:creator>MARIANA MONTENEGRO</dc:creator>
      <pubDate>Mon, 24 May 2021 21:05:09 +0000</pubDate>
      <link>https://dev.to/mpm2020/selenium-with-python-behave-bdd-allure-reports-1c3i</link>
      <guid>https://dev.to/mpm2020/selenium-with-python-behave-bdd-allure-reports-1c3i</guid>
      <description>&lt;h1&gt;
  
  
  &lt;em&gt;Como generar reportes atractivos Allure con behave(python bdd framework)&lt;/em&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1.Estructura Proyecto Behave Framework
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F003r5kuw435gfrcf44pa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F003r5kuw435gfrcf44pa.png" alt="image" width="379" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2.Instalar allure-behave
&lt;/h2&gt;

&lt;p&gt;-pip install allure-behave&lt;br&gt;
  -pycharm package&lt;br&gt;
  -npm install -g allure-commandline --save-dev&lt;/p&gt;

&lt;h2&gt;
  
  
  3.Ejecutar tests cases  y generar archivos de reporte de tipo json
&lt;/h2&gt;

&lt;p&gt;behave -f allure_behave.formatter::AllureFormatter -o reports/ features&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F331lxkt1vn5o4jn2fz3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F331lxkt1vn5o4jn2fz3t.png" alt="image" width="353" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4.Generar reportes Allure
&lt;/h2&gt;

&lt;p&gt;allure serve reports/&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnx4qv1epdm9h49evnv5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnx4qv1epdm9h49evnv5q.png" alt="image" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>behave</category>
      <category>allure</category>
    </item>
    <item>
      <title>Newman</title>
      <dc:creator>MARIANA MONTENEGRO</dc:creator>
      <pubDate>Fri, 07 May 2021 20:59:34 +0000</pubDate>
      <link>https://dev.to/mpm2020/newman-hmk</link>
      <guid>https://dev.to/mpm2020/newman-hmk</guid>
      <description>&lt;p&gt;Newman nos permite ejecutar y probar sin esfuerzo colecciones de Postman directamente &lt;br&gt;
desde la línea de comandos(consola de windows)&lt;/p&gt;

&lt;p&gt;1.Debemos instalarlo como cualquier otro paquete de node.&lt;/p&gt;

&lt;p&gt;npm install -g newman&lt;/p&gt;

&lt;p&gt;2.Si tenemos Newman y nuestras colecciones disponibles en nuestra máquina(luego de exportarlos desde postman). &lt;br&gt;
Para poder ejecutarlas utilizamos el siguiente comando:&lt;/p&gt;

&lt;p&gt;newman run "ruta/nombre_coleccion.json"&lt;/p&gt;

&lt;p&gt;3.Podemos hacer referencia en la ejecución si ha generado un entorno(environment)para que apunte al mismo&lt;/p&gt;

&lt;p&gt;newman run “ruta/nombre_coleccion.json” -e “ruta/nombre_environment.json”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbb00mzil8f2b2o2ap16w.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbb00mzil8f2b2o2ap16w.PNG" alt="Alt Text" width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkj7fcgykfv8xbddif10h.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkj7fcgykfv8xbddif10h.PNG" alt="Alt Text" width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>postman</category>
      <category>newman</category>
      <category>apitesting</category>
    </item>
    <item>
      <title>Creando un mock server con Postman</title>
      <dc:creator>MARIANA MONTENEGRO</dc:creator>
      <pubDate>Thu, 06 May 2021 01:11:06 +0000</pubDate>
      <link>https://dev.to/mpm2020/creando-un-mock-server-con-postman-4oc9</link>
      <guid>https://dev.to/mpm2020/creando-un-mock-server-con-postman-4oc9</guid>
      <description>&lt;p&gt;Cuando el backend no se encuentre listo todavía, es posible recurrir a postman a través de su servicio Mock Server.&lt;br&gt;
Entonces primero debemos empezar por definir &lt;strong&gt;¿Qué es un Mock Server?&lt;/strong&gt;Simplemente un servidor que provee datos de ejemplo para simular dependencias externas. &lt;br&gt;
Para poder crear nuestro mock server con postman necesitamos una creación de nuestra colección con un recurso.&lt;br&gt;
Nuestro colección y recurso(el cual devuelve un listado de usuarios) se verían de la siguiente manera:&lt;br&gt;
Api URL:&lt;a href="http://api.example.com" rel="noopener noreferrer"&gt;http://api.example.com&lt;/a&gt;&lt;br&gt;
Endpoint:&lt;a href="http://api.example.com/Users" rel="noopener noreferrer"&gt;http://api.example.com/Users&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7kkh1ro86blfc32n18a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv7kkh1ro86blfc32n18a.png" alt="image" width="373" height="83"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsq2t465xewwnbxi5uaa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsq2t465xewwnbxi5uaa.png" alt="image" width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como el backend todavía no está desarrollado, es necesario crear "examples" para nuestro recurso usuarios:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1gwwoeve4xh8hyzqyxv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1gwwoeve4xh8hyzqyxv.png" alt="image" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora nos resta crear un mock server en postman;para ello vamos a nuestra colección, hacemos click sobre el ícono de los 3 puntos (…) y luego buscamos la opción &lt;strong&gt;Mock Collection&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe2rchftz2hinu2mma5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe2rchftz2hinu2mma5h.png" alt="image" width="257" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez creado nuestro mock server(debemos ponerle un nombre)nos aparecerá una pantalla, donde nos indicará la url de nuestro mock server, la cual debemos copiar.&lt;br&gt;
Volviendo a nuestro recurso usuario,reemplazamos el url base  por la del mock server recién creado; presionamos Send y veremos que nos retorna la respuesta que definimos en el example anteriormente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywbfcwz89uf7eg2yx2gi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fywbfcwz89uf7eg2yx2gi.png" alt="image" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
