L'une des meilleures pratiques en matière d'automatisation des tests consiste à séparer les données de test des fichiers de test. Cet aspect est l'une des principales exigences lors de la conception du cadre de test. Cypress nous aide à séparer les données de test avec Cyprès Agencements. Dans ce sujet, nous parlerons de Appareils Cypress avec mise en œuvre pratique et exemples en temps réel
Table des matières
- Qu'est-ce qu'un luminaire dans Cypress?
- Comment utiliser les luminaires Cypress dans les tests ?
- Comment lire les données des appareils dans Cypress ?
- Accéder aux valeurs du fichier de luminaire au fichier de test
- Cypress Plusieurs luminaires
Qu'est-ce qu'un luminaire dans Cypress?
Les luminaires Cypress peuvent être utilisés source de données à partir de fichiers externes. Les appareils à Cypress vous aident à lire ou écrire dans des fichiers. L'un des frameworks les plus populaires dans l'automatisation des tests est le framework piloté par les données dans lequel nous séparons les données des fichiers de test. Nous conservons généralement les données dans un fichier externe comme Excel et les lisons à l'aide de bibliothèques externes. Cypress nous fournit la même fonctionnalité pour lire les données des fichiers.
Cypress nous fournit un dossier appelé agencements, où nous pouvons créer des fichiers JSON et lire des données à partir de là où nous pouvons lire ces fichiers dans plusieurs fichiers de test. Nous stockerons les données comme valeur clé coupler et y accéder.
Comment utiliser les appareils Cypress dans les tests ?
Nous pouvons accéder aux appareils Cypress via la syntaxe suivante donnée ci-dessous
cy.fixture(filePath)
cy.fixture(filePath, encoding)
cy.fixture(filePath, options)
cy.fixture(filePath, encoding, options)
On comprendra les paramètres qui peuvent être passés dans les fixtures
chemin du fichier – le chemin où vous avez stocké vos données de test
codage – L'encodage utilisé lors de l'utilisation d'un fichier. Certains des encodages sont ascii, base64, hexadécimal, binaire, etc.
Options – Dans les options, on peut passer le temps mort réponse. Il s'agit de spécifier le timeout à résoudre cy.fixture()
Comment lire les données des appareils dans Cypress?
Nous allons définir les données de test dans un fichier sous le luminaire dossier. Nous accéderons aux données de test du fichier JSON dans le script de test à l'aide des appareils Cypress.
Maintenant, comprenons un exemple pour le cyprès agencements. Nous nous connecterons à l'URL en utilisant le nom d'utilisateur et le mot de passe. Stockons donc les valeurs du nom d'utilisateur et du mot de passe dans un fichier.
Créons un fichier nommé informations d'identification.json sous le dossier des appareils. Nous allons définir les variables au format JSON.
{
"username" : "[email protected]",
"password" : "admin",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
Accéder aux valeurs du fichier Fixture vers le fichier test
Puisque nous avons défini nos valeurs JSON dans le informations d'identification.json fichier, nous verrons comment y accéder dans notre fichier de test en utilisant les appareils Cypress.
Nous accéderons aux données des appareils en utilisant le this
mot-clé dans le crochet avant
describe("Cypress Fixtures Example", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) })
Dans l'exemple ci-dessus, nous accédons à notre fichier JSON via cy.fixture('informations d'identification'). Puisque notre nom de fichier JSON est informations d'identification.json, nous sommes passer le nom du fichier dans cy.fixture(). Maintenant, nous utilisons le concept d'alias et définissons nos données comme données de test. Avec la variable données de test, nous pouvons utiliser les valeurs de nom d'utilisateur et mot de passe dans notre fichier de test
describe("Cypress Fixtures Example", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) it("Connexion avec des informations d'identification valides ", function () { cy.visit(this.testdata.adminUrl) cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testdata .username) cy.get('[id=Password]').clear() cy.get('[id=Password]').type(this.testdata.password) cy.get('[type=submit] ').click(); cy.url().should('be.equal', this.testdata.adminUrl) }); });
Comme vous pouvez le voir ci-dessus, dans .type()
nous passons la valeur de notre fichier credentials.json comme this.testdata.nom d'utilisateur. De même, pour le mot de passe, nous accédons à la valeur en utilisant ceci.testdata.password. Pour l'url, nous utilisons la même méthode que le nom d'utilisateur et le mot de passe.
Lorsque nous exécutons le scénario de test, vous pouvez voir la valeur s'imprimer dans le tableau de bord. De cette façon, nous avons exécuté notre cas de test en utilisant Cypress Fixtures
Cyprès Multiple Fixtures
Dans cette section, nous allons comprendre comment utiliser les appareils Cypress avec plusieurs fichiers d'appareils.
Si nous voulons utiliser différentes données de luminaire pour le même fichier de test, par exemple, nous devons vérifier deux ensembles d'informations d'identification pour la page de connexion, comment pouvons-nous accéder aux fichiers ?
Une façon est d'écrire plusieurs it blocs qui répliqueront encore et encore le même code. Dans l'autre sens, nous pouvons utiliser Fixations Cypress pour accéder à différents tests données dans le fichier de spécifications. Voyons comment nous pouvons y parvenir en utilisant les luminaires Cypress
Nous avons déjà un fichier de fixation appelé informations d'identification.json.
{
"username" : "[email protected]",
"password" : "admin",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
Créons maintenant un autre fichier de luminaire nommé userData.json où nous utiliserons un nom d'utilisateur et un mot de passe invalides différents.
{
"username" : "[email protected]",
"password" : "user",
"adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
Voyons maintenant comment accéder aux deux données différentes de notre fichier de test.
Nous allons refactoriser le même fichier de test en utilisant la condition d'utiliser deux fichiers d'appareils différents.
const testValueFixtures = [ { "name": "credentials", "context": "1" }, { "name": "userData", "context": "2" } ] describe('Automation Test Suite - Fixtures', function () {//bouclage à travers les deux fixtues testValueFixtures.forEach((fixtureData) => { describe(fixtureData.context, () => { // accéder aux données de test à partir du fichier de fixation avant (function () { cy. fixture(fixtureData.name).then(function (testData) { this.testData = testData; }) }) it("login", function() { cy.visit('https://admin-demo.nopcommerce.com /admin/') cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testData.username) cy.get('[id= Mot de passe]').clear() cy.get('[id=Mot de passe]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( ).devrait('être.égal', this.testData.adminUrl) }) }) }) })
Initialement, nous créons une variable appelée testValueFixturestestValueFixtures en tant que tableau où nous créons le contexte de deux fichiers de luminaires. Dans le premier contexte, nous passons le nom comme 'Lettres de créance' et le second comme 'données d'utilisateur' , car ils représentent nos noms de fichiers JSON où nous avons défini notre valeur.
Deuxièmement, nous parcourons les deux variables de fixture dans le bloc describe. Et comme nous en avons discuté précédemment, nous accédons aux données avant le bloc en utilisant .this()
Le reste du code est le même, où nous passons les données dans le cy.get()
Lorsque nous exécutons notre test, il s'exécutera en deux ensembles où le premier cas réussit avec des informations d'identification valides et le second échoue en raison d'informations d'identification invalides
Comme vous pouvez le voir ci-dessus dans l'instantané, le premier cas de test a réussi et il a entré la valeur du premier fichier de luminaire informations d'identification.json
Comme vous pouvez le voir dans la capture d'écran ci-dessus, le test a échoué et les valeurs transmises proviennent du deuxième fichier de luminaire userData.json
Vous pouvez également voir comment écrire des appareils Cypress à l'aide du modèle d'objet de page ici
Salut… Je m'appelle Aishwarya Lakshmi, j'ai terminé mon B.Tech et j'ai près de 2 ans d'expérience dans le domaine des tests. Je suis un passionné de tests et passionné par les tests et j'aime explorer de nouvelles choses dans mon domaine et les partager avec mes pairs. J'aime écrire des blogs pendant mon temps libre de la manière la plus simple mais efficace. En tant que testeur, j'aime avoir les choses à la perfection, je souhaite donc à mes lecteurs d'avoir une parfaite compréhension de la technologie. Je me tiens au courant des nouvelles technologies liées aux tests et passe du temps à les comprendre. Je suis heureux d'aider les étudiants à comprendre les concepts des tests.
Bonjour cher lecteur,
Nous sommes une petite équipe chez Techiescience, travaillant dur parmi les grands acteurs. Si vous aimez ce que vous voyez, partagez notre contenu sur les réseaux sociaux. Votre soutien fait une grande différence. Merci!