Ciprustartók: 5 fontos tény, amit tudnod kell

A tesztautomatizálás egyik legjobb gyakorlata a tesztadatok és a tesztfájlok elkülönítése. Ez a szempont az egyik elsődleges követelmény a teszt keretrendszer tervezése során. A Cypress segít abban, hogy el tudjuk különíteni a tesztadatokat Ciprus mérkőzések. Ebben a témában arról fogunk beszélgetni Cypress lámpatestek gyakorlati megvalósítással és valós idejű példákkal

Tartalomjegyzék

Mi az a lámpatest a Cypressben?

Cypress Fixtures használható forrásadatok külső fájlokból. A Cypress rögzítői segítenek ebben fájlokból olvasni vagy bele írni. A tesztautomatizálás egyik népszerű keretrendszere az adatvezérelt keretrendszer, ahol elkülönítjük az adatokat a tesztfájloktól. Az adatokat általában külső fájlban, például Excelben tároljuk, és külső könyvtárak segítségével olvassuk be. A Cypress ugyanazt a funkciót biztosítja számunkra, hogy kiolvassuk az adatokat fájlokból.

A Cypress biztosít nekünk egy mappát, melynek neve lámpatestek, ahol JSON fájlokat hozhatunk létre, és adatokat olvashatunk ki belőle, ahol több tesztfájlban is olvashatjuk azokat a fájlokat. Az adatokat mint kulcs érték párosítsd és érd el őket.

Hogyan használjuk a Cypress Fixture-eket a tesztekben?

A Cypress fixture-eket az alábbi szintaxissal érhetjük el

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

Meg fogjuk érteni azokat a paramétereket, amelyek a lámpatestekben átadhatók

fájl elérési út – az elérési út, ahol a tesztadatokat tárolta

kódolás – A fájl használata közben használt kódolás. Néhány kódolás ASCII, base64, hex, bináris stb

lehetőségek – Opciókban átadhatjuk a timeout válasz. Ez a megoldáshoz szükséges időtúllépés megadása cy.fixture()

Hogyan lehet adatokat olvasni a Fixtures-ből a Cypress-ben?

A tesztadatokat egy fájlban fogjuk meghatározni a hozzávaló mappát. A tesztadatokhoz a tesztszkriptben lévő JSON-fájlból fogunk hozzáférni a Cypress-fixtures segítségével.

Most értsük meg egy például Cypress berendezési tárgyak. A felhasználónévvel és jelszóval fogunk bejelentkezni az url-be. Tehát tároljuk a felhasználónév és jelszó értékeit egy fájlban.

Hozzuk létre a nevű fájlt hitelesítő adatok.json a fixture mappa alatt. A változókat JSON formátumban fogjuk meghatározni.

{
    "username" : "admin@yourstore.com",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
Fixture fájl példa

Az értékek elérése a Fixture fájlból a tesztfájlba

Mivel a JSON-értékeinket a hitelesítő adatok.json fájlt, látni fogjuk, hogyan érhetjük el őket tesztfájlunkban a Cypress fixtures segítségével.

A rögzítési adatokhoz a következővel fogunk hozzáférni this kulcsszó a megelőző horogban

description("Cypress Fixtures Példa", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = tesztadatok }) }) })

A fenti példában a JSON-fájlunkat a következőn keresztül érjük el cy.fixture('hitelesítési adatok'). Mivel a JSON-fájlunk neve hitelesítő adatok.json, mi vagyunk a cy.fixture() fájlnév átadása. Most alias fogalmat használunk, és adatainkat a következőként határozzuk meg teszt adat. A változóval teszt adat, használhatjuk tesztfájlunkban a felhasználónév és jelszó értékeit

description("Cypress Fixtures Példa", function () { before(function () { cy.fixture('credentials').then(function (testdata) { this.testdata = tesztadatok }) }) it("Jelentkezzen be érvényes hitelesítő adatokkal ", function () { cy.visit(this.testdata.adminUrl) cy.get('[id=Email]').clear() cy.get('[id=Email]').type(this.testdata .username) cy.get('[id=Jelszó]').clear() cy.get('[id=Jelszó]').type(this.testdata.password) cy.get('[type=submit] ').click(); cy.url().should('be.equal', this.testdata.adminUrl) }); });

Mint fentebb látható, be .type() az értéket a credentials.json fájlunkból adjuk át this.testdata.username. Hasonlóképpen a jelszóhoz a használó értéket érjük el this.testdata.password. Az url-hez ugyanazt a módszert használjuk, mint a felhasználónevet és a jelszót.

Amikor futtatjuk a tesztesetet, láthatja, hogy az érték kinyomtatásra kerül az irányítópulton. Így a Cypress Fixtures segítségével végrehajtottuk a tesztesetünket

Fixture teszt eredménye

Cypress többszörös szerelvények

Ebben a részben meg fogjuk érteni, hogyan kell használni a Cypress Fixtures-t több rögzítőfájllal.

Ha különböző fixture adatokat szeretnénk használni ugyanahhoz a tesztfájlhoz, például két hitelesítő adatkészletet kell ellenőriznünk a bejelentkezési oldalon, hogyan érhetjük el a fájlokat?

Az egyik módja a többszöri írás it blokkok, amelyek újra és újra megismétlik ugyanazt a kódot. Másrészt használhatjuk Cypress rögzítőelemek a különböző tesztek eléréséhez adatok a specifikációs fájlban. Nézzük meg, hogyan érhetjük el ezt a Cypress lámpatestek használatával

Már van egy fixture fájlunk hitelesítő adatok.json.

{
    "username" : "admin@yourstore.com",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

Most hozzunk létre egy másik fixture fájlt userData.json ahol más érvénytelen felhasználónevet és jelszót fogunk használni.

{
    "username" : "user@yourstore.com",
    "password" : "user",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}

Most pedig nézzük meg, hogyan érhetjük el a tesztfájlunkban található két különböző adatot.

Ugyanazt a tesztfájlt fogjuk refaktorálni két különböző rögzítőfájl használatának feltételével.

const testValueFixtures = [ { "name": "credentials", "context": "1" }, { "name": "userData", "context": "2" } ] description('Automatizálási tesztcsomag - Fixtures', function () { //mindkét fixtues áthurkolása testValueFixtures.forEach((fixtureData) => { description(fixtureData.context, () => { // a tesztadatok elérése a fixture fájlból before(function ()) { cy. fixture(fixtureData.name).then(function (testData) { this.testData = tesztData; }) }) it("bejelentkezés", 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= Jelszó]').clear() cy.get('[id=Password]').type(this.testData.password) cy.get('[type=submit]').click(); cy.url( ).should('be.equal', this.testData.adminUrl) }) }) }) })
Példa két fixture adat elérésére

Kezdetben létrehozunk egy változót, melynek neve testValueFixtures mint egy sor ahol két fixture fájl kontextusát hozzuk létre. Az első szövegkörnyezetben a nevet a következőképpen adjuk átMegbízólevél' és a második mint 'felhasználói adat' , mivel ezek a JSON-fájlneveinket jelentik, ahol meghatároztuk az értéket.

Másodszor, végighurkoljuk a leíró blokk mindkét fixture változóját. És ahogy korábban megbeszéltük, a blokkolás előtt férünk hozzá az adatokhoz .this()

A kód többi része ugyanaz, ahol a kódban lévő adatokat továbbítjuk cy.get()

Amikor végrehajtjuk a tesztünket, két készletben fog futni, ahol az első eset érvényes hitelesítő adatokkal sikeres, a második pedig érvénytelen hitelesítő adatok miatt.

Rögzítés az első rögzítőfájl használatával

Amint a fenti pillanatképen látható, az első teszteset sikeres volt, és beírta az értéket az első fixture fájlból hitelesítő adatok.json

Példa szerelvényre a második rögzítőfájl használatával

Amint a fenti képernyőképen látható, a teszt sikertelen volt, és az átment értékek a második rögzítőfájlból származnak userData.json

Azt is megtekintheti, hogyan írhat Cypress rögzítőket az oldalobjektum modell segítségével itt

Lapozzon a lap tetejére