Accesorios Cypress: 5 datos importantes que debe saber

Una de las mejores prácticas en la automatización de pruebas es separar los datos de prueba de los archivos de prueba. Este aspecto es uno de los requisitos principales al diseñar el marco de prueba. Cypress nos ayuda a tener la capacidad de separar los datos de prueba con Cypress Partidos de fútbol. En este tema, estaremos discutiendo sobre Luminarias Cypress con implementación práctica y ejemplos en tiempo real

Índice del contenido

¿Qué es un accesorio en Cypress?

Se pueden utilizar accesorios Cypress datos de origen de archivos externos. Los accesorios en Cypress te ayudan a leer o escribir en archivos. Uno de los marcos populares en la automatización de pruebas es el marco basado en datos, donde separamos los datos de los archivos de prueba. Por lo general, mantenemos los datos en un archivo externo como Excel y los leemos usando bibliotecas externas. Cypress nos proporciona la misma función para leer datos de archivos.

Cypress nos proporciona una carpeta llamada accesorios, donde podemos crear archivos JSON y leer datos de ellos, donde podemos leer esos archivos en múltiples archivos de prueba. Almacenaremos los datos como valor clave emparejar y acceder a ellos.

¿Cómo utilizar Cypress Fixtures en pruebas?

Podemos acceder a los dispositivos Cypress a través de la siguiente sintaxis que se indica a continuación

cy.fixture(filePath)
cy.fixture(filePath, encoding)
cy.fixture(filePath, options)
cy.fixture(filePath, encoding, options)

Entenderemos los parámetros que se pueden pasar en los aparatos.

ruta de archivo - la ruta hacia donde ha almacenado sus datos de prueba

codificación - La codificación que se usa al usar un archivo. Algunas de las codificaciones son ascii, base64, hexadecimal, binario, etc.

opciones - En opciones, podemos pasar el tiempo de espera respuesta. Es para especificar el tiempo de espera para resolver cy.fixture ()

¿Cómo leer datos de accesorios en Cypress?

Definiremos los datos de prueba en un archivo bajo el accesorio carpeta. Accederemos a los datos de prueba desde el archivo JSON en el script de prueba usando accesorios Cypress.

Ahora, entendamos un ejemplo de ciprés accesorios Iniciaremos sesión en la url utilizando el nombre de usuario y la contraseña. Entonces, almacenemos los valores de nombre de usuario y contraseña en un archivo.

Creemos un archivo llamado credenciales.json debajo de la carpeta de accesorios. Estaremos definiendo las variables en formato JSON.

{
    "username" : "[email protected]",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
arreglar 1
Ejemplo de archivo de accesorio

Accediendo a los valores del archivo Fixture al archivo de prueba

Dado que hemos definido nuestros valores JSON en el credenciales.json archivo, veremos cómo podemos acceder a ellos en nuestro archivo de prueba usando accesorios Cypress.

Accederemos a los datos del aparato usando el this palabra clave en el gancho antes

describe("Ejemplo de accesorios de Cypress", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) })

En el ejemplo anterior, estamos accediendo a nuestro archivo JSON a través de cy.fixture ('credenciales'). Dado que nuestro nombre de archivo JSON es credenciales.json, Que son pasando el nombre del archivo en cy.fixture (). Ahora estamos usando el concepto de alias y definiendo nuestros datos como datos de prueba. Con la variable datos de prueba, podemos usar los valores de nombre de usuario y contraseña en nuestro archivo de prueba

describe("Ejemplo de accesorios de Cypress", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) it("Iniciar sesión con credenciales válidas ", function () { cy.visit(this.testdata.adminUrl) cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testdata .nombre de usuario) cy.get('[id=Contraseña]').clear() cy.get('[id=Contraseña]').type(this.testdata.password) cy.get('[tipo=enviar] ').click(); cy.url().should('be.equal', this.testdata.adminUrl) }); });

Como puede ver arriba, en .type() estamos pasando el valor de nuestro archivo credentials.json como this.testdata.nombre de usuario. Del mismo modo, para la contraseña estamos accediendo al valor mediante esta.prueba.de.contraseña. Para la URL, usamos la misma forma que el nombre de usuario y la contraseña.

Cuando ejecutamos el caso de prueba, puede ver el valor que se imprime en el tablero. De esta manera, hemos ejecutado nuestro caso de prueba usando Cypress Fixtures

arreglar 2
Resultado de la prueba del accesorio

Accesorios múltiples de Cypress

En esta sección, entenderemos cómo usar Cypress Fixtures con múltiples archivos de fixture.

Si queremos usar datos de dispositivos diferentes para el mismo archivo de prueba, por ejemplo, hay dos conjuntos de credenciales que debemos verificar para la página de inicio de sesión, ¿cómo podemos acceder a los archivos?

Una forma es escribir varios it bloques que replicarán el mismo código una y otra vez. De otra manera, podemos usar Accesorios de ciprés para acceder a diferentes pruebas. datos en el archivo de especificaciones. Veamos cómo podemos lograr eso usando luminarias Cypress

Ya tenemos un archivo de accesorio llamado credenciales.json.

{
    "username" : "[email protected]",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

Ahora creemos otro archivo de aparato llamado datosdeusuario.json donde usaremos un nombre de usuario y contraseña no válidos diferentes.

{
    "username" : "[email protected]",
    "password" : "user",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

Ahora veamos cómo podemos acceder a los dos datos diferentes en nuestro archivo de prueba.

Refactorizaremos el mismo archivo de prueba usando la condición de usar dos archivos de accesorios diferentes.

const testValueFixtures = [ { "name": "credentials", "context": "1" }, { "name": "userData", "context": "2" } ] describe('Automation Test Suite - Fixtures', function () { //recorriendo ambos accesorios testValueFixtures.forEach((fixtureData) => { describe(fixtureData.context, () => { // accediendo a los datos de prueba del archivo de dispositivo antes de(function () { cy. fixture(fixtureData.name).then(function (testData) { this.testData = testData; }) }) it("iniciar sesión", función () { cy.visit('https://admin-demo.nopcommerce.com /admin/') cy.get('[id=Correo electrónico]').clear() cy.get('[id=Correo electrónico]').type(this.testData.username) cy.get('[id= Contraseña]').clear() cy.get('[id=Contraseña]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( ).debería('ser.igual', this.testData.adminUrl) }) }) }) })
arreglar 3
Acceso a dos ejemplos de datos de dispositivos

Inicialmente, estamos creando una variable llamada pruebaValorAccesorios como una matriz donde estamos creando el contexto de dos archivos de accesorios. En el primer contexto, estamos pasando el nombre como 'Cartas credenciales'y el segundo como'datos del usuario', ya que representan nuestros nombres de archivo JSON donde tenemos nuestro valor definido.

En segundo lugar, estamos recorriendo las dos variables de fijación en el bloque de descripción. Y como discutimos anteriormente, estamos accediendo a los datos antes del bloque usando .this()

El resto del código es el mismo, donde estamos pasando los datos en el cy.get()

Cuando ejecutamos nuestra prueba, se ejecutará en dos conjuntos donde el primer caso pasa con credenciales válidas y el segundo falla debido a credenciales no válidas.

arreglar 4
Aparato usando el primer archivo de aparato

Como puede ver arriba en la instantánea, el primer caso de prueba ha pasado y ha ingresado el valor del primer archivo de dispositivo. credenciales.json

arreglar 5
Ejemplo de aparato usando el segundo archivo de aparato

Como puede ver en la captura de pantalla anterior, la prueba ha fallado y los valores pasados ​​son del segundo archivo de dispositivo. datosdeusuario.json

También puede ver cómo escribir accesorios Cypress usando el Modelo de objetos de página aquí