luego de este curso hare uno de DB, me perdi un poco 😢
Introduccion a la Automatización Backend
¿Ya tomaste el Curso de Automatización de Pruebas UI con Cypress?
Backend testing
Herramientas del Navegador
Conociendo Cypress
Preparando nuestro entorno de trabajo
Probando el header
Probando el status code
Validando el contenido de la respuesta
Validando el body
Validando un error
Haciendo diferentes tipos de peticiones
Peticiones REST
Peticiones GraphQL
Bases de Datos
Preparando nuestro entorno para base de datos
Probar con bases de Datos SQL
Pruebas con base de datos NoSQL con MongoDB
Limpiar y crear base de datos NoSQL con MongoDB
Prueba en conjunto
Pruebas en conjunto: API y Base de Datos
Próximos pasos
¿Quieres un Curso de Cypress Avanzado?
Oferta laboral de Cypress en México (temporal)
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en tÃtulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Javier Fuentes Mora
Aportes 5
Preguntas 0
luego de este curso hare uno de DB, me perdi un poco 😢
Para Cypress 12 lo que hcie en mi caso fue lo siguiente:
Por defecto utilice la conexion que te da Mongo al momento de instalarlo y el URI en el archivo cypress.env.json lo puse asi:
"mongo": "mongodb://127.0.0.1:27017/"
|
Este lo pueden sacar desde la opción Copy connection string en MongoDB Compass
|
NOTA: Esta con 127.0.0.1 debido a que con localhost falla y según leà es debido a que con localhost Mongo utiliza una dirección IPv6 y al darle el valor de 127.0.0.1 utiliza la dirección de localhost pero de IPv4
|
La conexion la configure asi en el archivo cypress.config.js
const { defineConfig } = require("cypress");
const { MongoClient } = require("mongodb");
const mysql = require('mysql')
module.exports = defineConfig({
e2e: {
baseUrl: "https://localhost:3000/",
setupNodeEvents(on, config) {
// implement node event listeners here
on('task',{
queryTestDb:function(query) {
const connection = mysql.createConnection(config.env.db)
connection.connect()
return new Promise((resolve, reject) => {
connection.query(query,(err,results)=>{
if(err){
reject(err)
} else {
connection.end()
return resolve(results)
}
})
})
},
queryMongo: async function(object) {
let client;
try {
client = new MongoClient(config.env.mongo);
await client.connect();
console.log("Connected to MongoDB");
const db = client.db('cypress');
const collection = db.collection("tests");
const results = await collection.find(object).toArray();
return results;
} catch (e) {
console.error("Error connecting to MongoDB", e);
throw e;
} finally {
if (client) {
await client.close();
console.log("Disconnected from MongoDB");
}
}
}
})
},
excludeSpecPattern:[
"**/1-getting-started/*.js",
"**/2-advanced-examples/*.js"
]
}
});
En mi caso me cree una base de datos llamada cypress y dentro una coleccion llamada tests, el objeto que cree solo para tener informacion que recuperar de dicha coleccion es {Name: ‘Mauricio’}
|
Y finalmente para el test puse lo siguiente:
describe("Testing mongo", function() {
it('Listing mongo', function () {
let object = { Name: "Mauricio" };
cy.task("queryMongo", object).then((results) => {
cy.log(results);
expect(results).to.have.length(1);
expect(results[0].Name).to.be.eq("Mauricio")
});
});
});
¡Rock n’ Roll! 🤟
Qué complicado…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?