ሳይፕረስ ቋሚዎች፡ ማወቅ ያለብዎት 5 ጠቃሚ እውነታዎች

በሙከራ አውቶማቲክ ውስጥ ካሉት ምርጥ ልምዶች አንዱ የሙከራ ውሂብን ከሙከራ ፋይሎች መለየት ነው። ይህ ገጽታ የሙከራ ማዕቀፍ በሚዘጋጅበት ጊዜ ከሚያስፈልጉት ዋና መስፈርቶች አንዱ ነው. ሳይፕረስ የሙከራ ውሂቡን የመለየት ችሎታ ይረዳናል። ሳይፕረስ ግጥሚያዎች. በዚህ ርዕስ ውስጥ ስለእሱ እንነጋገራለን የሳይፕስ እቃዎች ከእጅ ትግበራ እና ከእውነተኛ ጊዜ ምሳሌዎች ጋር

ዝርዝር ሁኔታ

በሳይፕረስ ውስጥ ማቀፊያ ምንድን ነው?

ሳይፕረስ ፊክስቸርስ መጠቀም ይቻላል ምንጭ ውሂብ ከውጫዊ ፋይሎች. በሳይፕረስ ውስጥ ያሉ ዕቃዎች እርስዎን ለመርዳት ይረዳሉ በፋይሎች ውስጥ ማንበብ ወይም መጻፍ. በሙከራ አውቶማቲክ ውስጥ ታዋቂ ከሆኑ ማዕቀፍ ውስጥ አንዱ መረጃን ከሙከራ ፋይሎች የምንለይበት በመረጃ የሚመራ ማዕቀፍ ነው። እኛ ብዙውን ጊዜ ውሂቡን እንደ ኤክሴል ባሉ ውጫዊ ፋይሎች ውስጥ እናስቀምጠዋለን እና ውጫዊ ቤተ-መጽሐፍቶችን በመጠቀም እናነባቸዋለን። ሳይፕረስ ከፋይሎች መረጃን ለማንበብ ተመሳሳይ ባህሪ ይሰጠናል.

ሳይፕረስ የሚባል አቃፊ ይሰጠናል። ዕቃዎችየ JSON ፋይሎችን የምንፈጥርበት እና እነዚያን ፋይሎች በበርካታ የፍተሻ ፋይሎች ውስጥ የምናነብባቸውን መረጃዎች የምናነብበት። እኛ እንደ ውሂብ እናከማቻለን ቁልፍ-እሴት ያጣምሩ እና ይድረሱባቸው.

በፈተናዎች ውስጥ የሳይፕስ ፊክስቸርን እንዴት መጠቀም እንደሚቻል?

ከዚህ በታች በተሰጠው አገባብ የሳይፕረስ ዕቃዎችን ማግኘት እንችላለን

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

በመሳሪያዎች ውስጥ ሊተላለፉ የሚችሉትን መለኪያዎች እንረዳለን

የፋይል መንገድ - የሙከራ ውሂብዎን ያከማቹበት መንገድ

ምስጠራ - ፋይል በሚጠቀሙበት ጊዜ ጥቅም ላይ የሚውሉት ኢንኮዲንግ. አንዳንድ ኢንኮዲንግዎች አስኪ፣ ቤዝ64፣ ሄክስ፣ ሁለትዮሽ ወዘተ ናቸው።

አማራጮች - በአማራጮች ውስጥ, እኛ ማለፍ እንችላለን ጊዜው አልቋል ምላሽ. የሚፈታበትን ጊዜ መግለጽ ነው። cy.fixture()

በሳይፕረስ ውስጥ ከ Fixtures እንዴት መረጃ ማንበብ ይቻላል?

በፋይሉ ውስጥ የፈተናውን ውሂብ እንገልጻለን ማጣበቂያ አቃፊ. የሙከራ ውሂቡን ከJSON ፋይል በሙከራ ስክሪፕቱ ውስጥ የሳይፕረስ ፋክቸርን በመጠቀም እናገኘዋለን።

አሁን፣ አንድ እንረዳ ለምሳሌ ለሳይፕረስ የቤት እቃዎች. የተጠቃሚ ስም እና የይለፍ ቃል ተጠቅመን ወደ ዩአርኤል እንገባለን። ስለዚህ የተጠቃሚ ስም እና የይለፍ ቃል እሴቶችን በፋይል ውስጥ እናስቀምጥ።

የተሰየመ ፋይል እንፍጠር ምስክርነቶች.json በቋሚው አቃፊ ስር. ተለዋዋጮችን በJSON ቅርጸት እንገልጻለን።

{
    "username" : "admin@yourstore.com",
    "password" : "admin",
    "adminUrl" : "https://admin-demo.nopcommerce.com/admin/"
}
ቋሚ ፋይል ምሳሌ

እሴቶቹን ከFixture ፋይል ወደ የሙከራ ፋይሉ መድረስ

የ JSON እሴቶቻችንን ስለገለፅን በ ምስክርነቶች.json ፋይል፣ የሳይፕረስ ፊውቸርስ በመጠቀም እንዴት እነሱን ማግኘት እንደምንችል በሙከራ ፋይላችን ውስጥ እናያለን።

የቋሚውን መረጃ በመጠቀም እንደርስበታለን። this ቁልፍ ቃል በፊት መንጠቆ ውስጥ

ይግለጹ ("ሳይፕረስ ፊክስቸርስ ምሳሌ"፣ ተግባር () {ከዚህ በፊት (ተግባር () {cy.fixture('credentials')።ከዚያ (ተግባር (testdata) { this.testdata = testdata})})})

ከላይ ባለው ምሳሌ የJSON ፋይላችንን በ በኩል እየደረስን ነው። cy.fixture('ምስክርነቶች'). የJSON ፋይል ስማችን ስለሆነ ምስክርነቶች.json, እኛ ነን የፋይሉን ስም በ cy.fixture () ውስጥ ማለፍ. አሁን እኛ ተለዋጭ ጽንሰ-ሐሳብ እየተጠቀምን እና የእኛን ውሂብ እንደ እንገልፃለን። testdata. ከተለዋዋጭ ጋር testdataበእኛ የሙከራ ፋይል ውስጥ የተጠቃሚ ስም እና የይለፍ ቃል እሴቶችን መጠቀም እንችላለን

ይግለጹ ("ሳይፕረስ ፊክስቸርስ ምሳሌ", ተግባር () {ከዚህ በፊት (ተግባር () {cy.fixture ('credentials') .ከዚያ (ተግባር (testdata) { this.testdata = testdata }) }) እሱ ("በሚሰራ ምስክርነቶች ይግቡ "፣ ተግባር () {cy.visit(this.testdata.adminUrl) cy.get('[id=ኢሜል]')።clear() cy.get('[id=ኢሜል]')) ይተይቡ(this.testdata የተጠቃሚ ስም) cy.get('[መታወቂያ=የይለፍ ቃል]')።clear() cy.get('[መታወቂያ=የይለፍ ቃል]')።ይተይቡ(this.testdata.password) cy.get('[type=submit]) ') ጠቅ ያድርጉ (); cy.url () አለበት ('equal', this.testdata.adminUrl)});});

ከላይ እንደምታዩት በ .type() ከ credentials.json ፋይል እንደ ሆነ እሴቱን እናሳልፋለን። this.testdata.የተጠቃሚ ስም. በተመሳሳይ፣ የይለፍ ቃል ለማግኘት እሴቱን እየተጠቀምን ነው። ይህ.የሙከራ ዳታ.ይለፍ ቃል. ለዩአርኤል፣ እንደ የተጠቃሚ ስም እና የይለፍ ቃል በተመሳሳይ መንገድ እየተጠቀምን ነው።

የሙከራ መያዣውን ስናካሂድ በዳሽቦርዱ ውስጥ የሚታተመውን ዋጋ ማየት ይችላሉ። በዚህ መንገድ የሳይፕስ ፊክስቸርስን በመጠቀም የሙከራ ጉዳያችንን ፈጽመናል።

የፍተሻ ሙከራ ውጤት

ሳይፕረስ በርካታ ቋሚዎች

በዚህ ክፍል ውስጥ የሳይፕስ ፊክስቸርን ከብዙ ቋሚ ፋይሎች ጋር እንዴት እንደምንጠቀም እንረዳለን።

ለተመሳሳይ የፍተሻ ፋይል የተለያዩ ቋሚ መረጃዎችን መጠቀም ከፈለግን ለምሳሌ ለመግቢያ ገጹን ለማረጋገጥ ሁለት የምስክር ወረቀቶች አሉን እንዴት ፋይሎቹን ማግኘት እንችላለን?

አንዱ መንገድ ብዙ መጻፍ ነው። it ብሎኮች ይህም አንድ አይነት ኮድ ደጋግሞ ይደግማል. በሌላ መንገድ, ልንጠቀምበት እንችላለን የተለያዩ ፈተናዎችን ለመድረስ የሳይፕስ እቃዎች በልዩ ፋይል ውስጥ ያለ ውሂብ። የሳይፕረስ ቋሚዎችን በመጠቀም እንዴት ያንን ማሳካት እንደምንችል እንመልከት

አስቀድሞ የተጠራ ፋይል አለን። ምስክርነቶች.json.

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

አሁን ሌላ የተሰየመ የቋሚ ፋይል እንፍጠር userData.json የተለየ የተሳሳተ የተጠቃሚ ስም እና የይለፍ ቃል የምንጠቀምበት።

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

አሁን በእኛ የሙከራ ፋይል ውስጥ ሁለቱን የተለያዩ መረጃዎች እንዴት ማግኘት እንደምንችል እንይ።

ሁለት የተለያዩ ቋሚ ፋይሎችን የመጠቀም ሁኔታን በመጠቀም ተመሳሳዩን የሙከራ ፋይል እንደገና እናሰራለን።

const testValueFixtures = [ { "ስም": "ክሬዲትስ", "አውድ": "1" }, {"ስም": "userData", "አውድ": "2" } ] ይግለጹ ('Automation Test Suite - Fixtures'፣ ተግባር () {//በሁለቱም ቋሚዎች testValueFixtures.forEach((fixtureData) => {መግለጽ(fixtureData.context, () => {// ከመያዣው ፋይል በፊት (ተግባር) {ሲ.ሲ. fixture (fixtureData.name) .ከዚያ (ተግባር (testData) { this.testData = testData; }) }) እሱ ("መግባት", ተግባር () { cy.visit ('https://admin-demo.nopcommerce.com) /አስተዳዳሪ/') cy.get('[መታወቂያ=ኢሜል]')።clear() cy.get('[id=ኢሜል]')።ይተይቡ(this.testData.username) cy.get('[ id= የይለፍ ቃል]').clear() cy.get('[id=የይለፍ ቃል]')።ይተይቡ(this.testData.password) cy.get('[type=submit]') ን ጠቅ ያድርጉ(); cy.url() አለበት ('እኩል' መሆን አለበት፣ this.testData.adminUrl) })})})})
ሁለት ቋሚ ውሂብ ምሳሌን መድረስ

መጀመሪያ ላይ ተለዋዋጭ የሚባለውን እንፈጥራለን testValueFixtures አንድ እንደ ደርድር የሁለት ቋሚ ፋይሎችን አውድ እየፈጠርን ነው. በመጀመሪያው ዐውደ-ጽሑፍ፣ ስሙን እንደ ‘እናስተላልፋለን።ምስክርነቶች"እና ሁለተኛው እንደ"userDataእሴታችን የተገለጸበትን የJSON ፋይል ስሞቻችንን ስለሚወክሉ።

በሁለተኛ ደረጃ፣ በተገለጸው ብሎክ ውስጥ ሁለቱንም ቋሚ ተለዋዋጮች እያሽከረከርን ነው። እና ቀደም ብለን እንደተነጋገርነው፣ ከመጠቀምዎ በፊት ውሂቡን እየደረስን ነው። .this()

የተቀረው ኮድ ተመሳሳይ ነው, በ ውስጥ ውሂቡን የምናስተላልፍበት cy.get()

ፈተናችንን ስናከናውን በሁለት ተከታታይ ክፍሎች ይከፈላል የመጀመሪያው ክስ በትክክለኛ ማስረጃዎች ሲያልፍ ሁለተኛው ደግሞ ትክክል ባልሆነ ምስክርነት ምክንያት ሳይሳካ ቀርቷል።

የመጀመሪያውን የፋይል ፋይል በመጠቀም አስተካክል

በቅጽበተ-ፎቶው ላይ ከላይ እንደሚታየው የመጀመሪያው የፍተሻ ጉዳይ አልፏል እና ከመጀመሪያው የፋይል ፋይል ውስጥ እሴቱን ገብቷል. ምስክርነቶች.json

የሁለተኛውን የፋይል ፋይል በመጠቀም የቋሚ ምሳሌ

ከላይ ባለው ቅጽበታዊ ገጽ እይታ ላይ እንደሚታየው ፈተናው አልተሳካም እና ያለፉት ዋጋዎች ከሁለተኛው የፋይል ፋይል ነው userData.json

እንዲሁም የገጽ ነገር ሞዴልን በመጠቀም የሳይፕረስ ዕቃዎችን እንዴት እንደሚጽፉ ማየት ይችላሉ። እዚህ

ወደ ላይ ሸብልል