Κυπαρίσσια: 5 σημαντικά γεγονότα που πρέπει να γνωρίζετε

Μία από τις βέλτιστες πρακτικές στον αυτοματισμό δοκιμών είναι ο διαχωρισμός των δεδομένων δοκιμής από τα αρχεία δοκιμής. Αυτή η πτυχή είναι μία από τις πρωταρχικές απαιτήσεις κατά το σχεδιασμό του πλαισίου δοκιμής. Το Cypress μας βοηθά τις ικανότητες να διαχωρίζουμε τα δεδομένα της δοκιμής με Κυπαρίσσι Πρότυπα. Σε αυτό το θέμα, θα συζητήσουμε Κυπαρίσσια φωτιστικά με πρακτική εφαρμογή και παραδείγματα σε πραγματικό χρόνο

Πίνακας περιεχομένων

Τι είναι ένα φωτιστικό στο Cypress;

Μπορούν να χρησιμοποιηθούν φωτιστικά Cypress πηγή δεδομένων από εξωτερικά αρχεία. Τα φωτιστικά στο Cypress σας βοηθούν να ανάγνωση από ή εγγραφή σε αρχεία. Ένα από τα δημοφιλή πλαίσια στον αυτοματισμό δοκιμών είναι το πλαίσιο βάσει δεδομένων όπου διαχωρίζουμε τα δεδομένα από τα αρχεία δοκιμής. Συνήθως διατηρούμε τα δεδομένα σε εξωτερικό αρχείο όπως το Excel και τα διαβάζουμε χρησιμοποιώντας εξωτερικές βιβλιοθήκες. Το Cypress μας παρέχει την ίδια δυνατότητα ανάγνωσης δεδομένων από αρχεία.

Το Cypress μας παρέχει έναν φάκελο που ονομάζεται φωτιστικά, όπου μπορούμε να δημιουργήσουμε αρχεία JSON και να διαβάσουμε δεδομένα από αυτά όπου μπορούμε να διαβάσουμε αυτά τα αρχεία σε πολλαπλά δοκιμαστικά αρχεία. Θα αποθηκεύσουμε τα δεδομένα ως κλειδί-τιμή ζεύξη και πρόσβαση σε αυτά.

Πώς να χρησιμοποιήσετε το Cypress Fixtures στις δοκιμές;

Μπορούμε να έχουμε πρόσβαση στα φωτιστικά Cypress μέσω της ακόλουθης σύνταξης που δίνεται παρακάτω

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

Θα κατανοήσουμε τις παραμέτρους που μπορούν να περάσουν στα φωτιστικά

διαδρομή αρχείου – τη διαδρομή προς το σημείο όπου έχετε αποθηκεύσει τα δεδομένα της δοκιμής σας

κωδικοποίησης – Η κωδικοποίηση που χρησιμοποιείται κατά τη χρήση ενός αρχείου. Μερικές από τις κωδικοποιήσεις είναι ascii, base64, hex, binary κ.λπ

επιλογές – Στις επιλογές, μπορούμε να περάσουμε το χρονικού ορίου απάντηση. Είναι να καθορίσετε το χρονικό όριο για επίλυση cy.fixture ()

Πώς να διαβάσετε δεδομένα από το Fixtures στο Cypress;

Θα ορίσουμε τα δεδομένα δοκιμής σε ένα αρχείο κάτω από το Φωτιστικό ντοσιέ. Θα έχουμε πρόσβαση στα δεδομένα δοκιμής από το αρχείο JSON στο σενάριο δοκιμής χρησιμοποιώντας φωτιστικά Cypress.

Τώρα, ας καταλάβουμε ένα παράδειγμα για το Κυπαρίσσι φωτιστικά. Θα συνδεθούμε στο url χρησιμοποιώντας το όνομα χρήστη και τον κωδικό πρόσβασης. Ας αποθηκεύσουμε λοιπόν τις τιμές του ονόματος χρήστη και του κωδικού πρόσβασης σε ένα αρχείο.

Ας δημιουργήσουμε ένα αρχείο με το όνομα διαπιστευτήρια.json κάτω από το φάκελο του φωτιστικού. Θα ορίσουμε τις μεταβλητές σε μορφή JSON.

{
    "username" : "[email protected]",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
διόρθωση 1
Παράδειγμα αρχείου εξαρτήματος

Πρόσβαση στις τιμές από το αρχείο Fixture στο αρχείο δοκιμής

Εφόσον έχουμε ορίσει τις τιμές JSON μας στο διαπιστευτήρια.json αρχείο, θα δούμε πώς μπορούμε να αποκτήσουμε πρόσβαση στο αρχείο δοκιμής μας χρησιμοποιώντας φωτιστικά Cypress.

Θα έχουμε πρόσβαση στα δεδομένα του φωτιστικού χρησιμοποιώντας το this λέξη-κλειδί στο γάντζο πριν

describe("Cypress Fixtures Example", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) })

Στο παραπάνω παράδειγμα, έχουμε πρόσβαση στο αρχείο JSON μέσω cy.fixture ('διαπιστευτήρια'). Επειδή το όνομα του αρχείου JSON μας είναι διαπιστευτήρια.json, είμαστε μεταβίβαση του ονόματος αρχείου στο cy.fixture(). Τώρα χρησιμοποιούμε την έννοια του ψευδωνύμου και ορίζουμε τα δεδομένα μας ως δεδομένα δοκιμής. Με τη μεταβλητή δεδομένα δοκιμής, μπορούμε να χρησιμοποιήσουμε τις τιμές του ονόματος χρήστη και του κωδικού πρόσβασης στο αρχείο δοκιμής μας

describe("Cypress Fixtures Example", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = testdata }) }) it("Σύνδεση με έγκυρα διαπιστευτήρια ", 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) }); });

Όπως μπορείτε να δείτε παραπάνω, στο .type() μεταβιβάζουμε την τιμή από το αρχείο credentials.json ως this.testdata.username. Ομοίως, για τον κωδικό πρόσβασης έχουμε πρόσβαση στην τιμή χρησιμοποιώντας this.testdata.password. Για τη διεύθυνση url, χρησιμοποιούμε τον ίδιο τρόπο με το όνομα χρήστη και τον κωδικό πρόσβασης.

Όταν εκτελούμε τη δοκιμαστική θήκη, μπορείτε να δείτε την τιμή να εκτυπώνεται στον πίνακα εργαλείων. Με αυτόν τον τρόπο, έχουμε εκτελέσει τη δοκιμαστική μας περίπτωση χρησιμοποιώντας το Cypress Fixtures

διόρθωση 2
Αποτέλεσμα δοκιμής στερέωσης

Κυπαρίσσι πολλαπλά φωτιστικά

Σε αυτήν την ενότητα, θα καταλάβουμε πώς να χρησιμοποιήσετε το Cypress Fixtures με πολλαπλά αρχεία εξαρτημάτων.

Εάν θέλουμε να χρησιμοποιήσουμε διαφορετικά δεδομένα προσαρμογής για το ίδιο αρχείο δοκιμής, για παράδειγμα, υπάρχουν δύο σετ διαπιστευτηρίων που πρέπει να επαληθεύσουμε για τη σελίδα σύνδεσης, πώς μπορούμε να έχουμε πρόσβαση στα αρχεία;

Ένας τρόπος είναι να γράψετε πολλά it μπλοκ που θα αναπαράγουν τον ίδιο κώδικα ξανά και ξανά. Με τον άλλο τρόπο, μπορούμε να χρησιμοποιήσουμε Εξαρτήματα κυπαρισσιού για πρόσβαση σε διαφορετική δοκιμή δεδομένα στο αρχείο προδιαγραφών. Ας δούμε πώς μπορούμε να το πετύχουμε αυτό χρησιμοποιώντας φωτιστικά Cypress

Έχουμε ήδη ένα αρχείο εξάρτησης που ονομάζεται διαπιστευτήρια.json.

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

Τώρα ας δημιουργήσουμε ένα άλλο αρχείο εξάρτημα με το όνομα userData.json όπου θα χρησιμοποιήσουμε διαφορετικό μη έγκυρο όνομα χρήστη και κωδικό πρόσβασης.

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

Ας δούμε τώρα πώς μπορούμε να έχουμε πρόσβαση στα δύο διαφορετικά δεδομένα στο αρχείο δοκιμής μας.

Θα αναπαράγουμε το ίδιο αρχείο δοκιμής χρησιμοποιώντας την συνθήκη χρήσης δύο διαφορετικών αρχείων εξαρτημάτων.

const testValueFixtures = [ { "name": "credentials", "context": "1" }, { "name": "userData", "context": "2" } ] describe('Automation Test Suite - Fixtures', function () { //looping και στα δύο fixtues testValueFixtures.forEach((fixtureData) => { describe(fixtureData.context, () => { // πρόσβαση στα δεδομένα δοκιμής από το αρχείο του φωτισμού πριν από (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= Κωδικός πρόσβασης]').clear() cy.get('[id=Password]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( ).should('be.equal', this.testData.adminUrl) }) }) }) })
διόρθωση 3
Παράδειγμα δεδομένων πρόσβασης σε δύο εξαρτήματα

Αρχικά, δημιουργούμε μια μεταβλητή που ονομάζεται testValueFixtures ως παράταξη όπου δημιουργούμε το πλαίσιο δύο αρχείων προσαρμογής. Στο πρώτο πλαίσιο, περνάμε το όνομα ως «Διαπιστευτήρια"και το δεύτερο ως"δεδομένα χρήστη' , καθώς αντιπροσωπεύουν τα ονόματα αρχείων JSON όπου έχουμε ορίσει την τιμή μας.

Δεύτερον, κάνουμε βρόχο και στις δύο μεταβλητές του προσαρτήματος στο μπλοκ περιγραφής. Και όπως συζητήσαμε προηγουμένως, έχουμε πρόσβαση στα δεδομένα πριν από τη χρήση του μπλοκ .this()

Ο υπόλοιπος κώδικας είναι ο ίδιος, όπου περνάμε τα δεδομένα στο cy.get()

Όταν εκτελέσουμε τη δοκιμή μας, θα εκτελεστεί σε δύο σετ όπου η πρώτη περίπτωση περνά με έγκυρα διαπιστευτήρια και η δεύτερη αποτυγχάνει λόγω μη έγκυρων διαπιστευτηρίων

διόρθωση 4
Διορθώστε χρησιμοποιώντας το πρώτο αρχείο εξάρτησης

Όπως μπορείτε να δείτε παραπάνω στο στιγμιότυπο, η πρώτη δοκιμαστική περίπτωση έχει περάσει και έχει εισαγάγει την τιμή από το πρώτο αρχείο αγώνων διαπιστευτήρια.json

διόρθωση 5
Παράδειγμα εξαρτήματος χρησιμοποιώντας το δεύτερο αρχείο εξάρτησης

Όπως μπορείτε να δείτε στο παραπάνω στιγμιότυπο οθόνης, η δοκιμή απέτυχε και οι τιμές που πέρασαν προέρχονται από το δεύτερο αρχείο του προγράμματος userData.json

Μπορείτε επίσης να δείτε πώς γράφετε φωτιστικά Cypress χρησιμοποιώντας το μοντέλο αντικειμένου σελίδας εδώ