ደረጃ በደረጃ ገጽ የነገር ሞዴል በሳይፕረስ ከምሳሌዎች ጋር

የገጽ ነገር ሞዴል፣ በተለምዶ በመባል የሚታወቅ። POM, በማንኛውም አውቶሜሽን ማዕቀፍ ውስጥ ታዋቂ ንድፍ ነው. የገጽ ነገር ሞዴል በሳይፕረስ ውስጥም ሊተገበር ይችላል። የገጽ ነገር ሞዴል ለሙከራ አውቶሜሽን ማዕቀፍ በመፍጠር እንደ ኮድ ማባዛትን መቀነስ እና ተጠብቆ እና ተነባቢነትን ማሳደግ ያሉ ብዙ ጥቅሞች አሉት። ሳይፕረስ የገጽ ነገር ሞዴልን በሙከራ ስክሪፕት ውስጥ ለማካተት ተለዋዋጭነት ይሰጠናል። በዚህ ጽሑፍ ውስጥ የገጽ ነገር ሞዴል መፍጠርን እንመለከታለን ሳይፕረስ ደረጃ በምሳሌዎች ደረጃ.

ዝርዝር ሁኔታ:

ሳይፕረስ ገጽ ነገር ሞዴል
ሳይፕረስ ገጽ ነገር ሞዴል

የገጽ ነገር ሞዴል ምንድን ነው?

የገጽ ነገር ሞዴል የንድፍ ንድፍ ሲሆን የ የገጽ ዕቃዎች ከአውቶሜሽን የሙከራ ስክሪፕቶች ተለያይተዋል። አውቶሜሽን መሞከር በፈተና ውስጥ የሚጠቅሙን ብዙ ጥቅሞችን ይሰጠናል; ሆኖም እንደ ኮድ ማባዛት እና ፕሮጀክቱ እያደገ ሲሄድ የመቆየት አደጋ መጨመር ያሉ አንዳንድ ውጤቶች አሉ። የPOMን አስፈላጊነት በምሳሌ እንረዳ።

በእኛ መተግበሪያ ውስጥ እንደ የመግቢያ ገጽ፣ የምዝገባ ገጽ እና የመጽሃፍ በረራዎች ገጽ ያሉ በርካታ ገጾች እንዳሉን አስቡ።

  • የመግቢያ ገጹ ሁሉንም የመግቢያ ተግባራት የድር አካላትን ይይዛል
  • ምዝገባው የመመዝገቢያ ሂደቱን ሁሉንም ዘዴዎች እና የድር አካላት ይዟል
  • የመፅሃፉ በረራዎች የበረራ ቦታ ማስያዣ ገጹን የድር አካላት ይይዛሉ

ሶስት የፈተና ጉዳዮች አሉ እነሱም TC1፣ TC2 እና TC3።

  • TC1 የመግቢያ ፈተና ጉዳዮችን ይዟል።
  • TC2 የመግቢያ እና የምዝገባ ፈተና ጉዳዮችን ይዟል
  • TC3 የመግቢያ፣ ምዝገባ እና የበረራ ቦታ ማስያዝ ፈተና ጉዳዮችን ይዟል
ያለ POM ምሳሌ

አሁን የመግቢያ ገጹ ከTC1 ጋር ይገናኛል።

የምዝገባ ገጽ ከTC1 እና TC2 ጋር መስተጋብር መፍጠር አለበት፣ እና

የበረራ ቦታ ማስያዣ ገጹ ከTC1፣ TC2 እና TC3 ጋር መስተጋብር መፍጠር አለበት።

እንደሚመለከቱት, በሶስቱም የፈተና ጉዳዮች መካከል የተለመዱ ተግባራት አሉ. በሁሉም የፍተሻ ኬዝ ፋይሎች ውስጥ የመግቢያ ዘዴዎችን እና አመልካቾችን ከመጻፍ ይልቅ ለየብቻ ልናገኛቸው እና በፋይሎቹ ውስጥ ልናገኛቸው እንችላለን። በዚህ መንገድ, ኮዱ አይደገምም, እና በቀላሉ ሊነበብ የሚችል ነው.

በኮድ አወጣጥ ውስጥ ካሉት ምርጥ ልምዶች አንዱ የሚባለው ጽንሰ-ሀሳብ ነው። ደረቅ. ይህ ማለት እራስህን አትድገም. ሙሉ ቅጹ በግልጽ እንደተገለጸው የኮድ መስመሮችን ደጋግመን መድገም የለብንም. ይህንን ለማሸነፍ እ.ኤ.አ. የገጽ ነገር ሞዴል በምርጥ ኮድ አሰራር ውስጥ ትልቅ ሚና ይጫወታል።

የገጽ ነገር ሞዴል መዋቅር አርክቴክቸር

ገጽ ነገር ሞዴል ማዕቀፍ አርክቴክቸር በቀላል ዘዴዎች ማበጀት የሚችል የተረጋገጠ አርክቴክቸር ነው። ዛሬ፣ ሁሉም ኩባንያዎች ማለት ይቻላል ቀጣይነት ያለው ውህደትን፣ ልማትን እና ሙከራን የሚያካትቱ ቀልጣፋ ዘዴዎችን ይከተላሉ። አውቶሜሽን ሞካሪዎች ከእድገት ሂደት ጋር አብሮ ለመስራት የሙከራ ማዕቀፉን ይጠብቃሉ። የገጽ ነገር ሞዴል. ጉልህ ነው። የንድፍ ንድፍ አውቶሜሽን የሙከራ ማዕቀፉን በመጠበቅ ላይ ኮዱ በአዲስ ባህሪያት እያደገ ሲሄድ.

የገጽ ዕቃው እኛ እየሞከርን ካለው የመተግበሪያ ገፆች ጋር የሚገናኝ በነገር ላይ ያተኮረ የንድፍ ንድፍ ነው።. የገጽ ነገር የሚከተሉትን ያጠቃልላል የገጽ ክፍል ና የሙከራ ጉዳዮችየገጽ ክፍል ከድር አካላት ጋር መስተጋብር ለመፍጠር ዘዴዎችን እና አመልካቾችን ያካትታል። በመተግበሪያው ውስጥ ለእያንዳንዱ ገጽ የተለየ ክፍሎችን እንፈጥራለን። ለእያንዳንዱ ተግባር የግለሰብ ዘዴዎችን እንፈጥራለን እና በእኛ ልዩ ፋይል ውስጥ እናገኛቸዋለን።

የገጽ ነገር ሞዴል

በሳይፕረስ ውስጥ የገጽ ነገር ሞዴልን የመጠቀም ጥቅሞች

  1. ዘዴዎቹ ናቸው። ዳግም መጠቀም በጠቅላላው ፕሮጀክት እና ፕሮጀክቱ ሲያድግ ለመጠገን ቀላል ነው. የኮድ መስመሮች ይሆናሉ ያነሰ የሚነበብ ና የተመቻቸ ፡፡
  2. የገጽ ነገር ጥለት እኛ እንድንለየው ይጠቁማል ክወናዎች እና ፍሰት በ UI ውስጥ እየሰራን ያለነው ከ ማረጋገጫ እርምጃዎች. የPOM ስርዓተ-ጥለት ስንከተል፣መፃፍ ይቀናናል። ንጹህ እና በቀላሉ ሊረዳ የሚችል ኮድ.
  3. ከገጽ ነገር ሞዴል ጋር፣ ነገሮች ና የሙከራ ጉዳዮች አንዳቸው ከሌላው ነጻ ናቸው. በፕሮጀክቱ ውስጥ በየትኛውም ቦታ ያሉትን እቃዎች መጥራት እንችላለን. በዚህ መንገድ እንደ TestNG/JUnit የተለያዩ መሳሪያዎችን ለተግባራዊ ሙከራ ወይም ኩኩምበርን ለቅበላ ሙከራ የምንጠቀም ከሆነ በቀላሉ ቀላል ነው። ሊደረስበት የሚችል.

ደረጃ በደረጃ ገጽ የነገር ሞዴል ሳይፕረስ ከምሳሌ ጋር

ይህ ክፍል እንዴት የገጽ ነገር ሞዴል መፍጠር እንደሚቻል ይረዳል ሳይፕረስ ከእውነተኛ ጊዜ ምሳሌዎች ጋር በፕሮጀክቶች ውስጥ መተግበር የምንችለው. የገጽ ነገር ሞዴል ለመፍጠር ከመሠረታዊ ማዋቀር እና ደረጃ በደረጃ ሂደት እንረዳለን።

በዚህ ምሳሌ ውስጥ ተግባራቶቹን የምንጽፍበትን ሁኔታ እንወያይ።

  1. ዳስስ https://admin-demo.nopcommerce.com/ ድህረገፅ
  2. የሚሰራ የተጠቃሚ ስም እና የይለፍ ቃል ያስገቡ
  3. የመግቢያ ቁልፍን ጠቅ ያድርጉ
  4. ዩአርኤሉን በማያያዝ ከሆነ ያረጋግጡ /admin ከመግባት በኋላ

ለዚህ ምሳሌ ሁለት ፋይሎችን እንፈጥራለን - አንድ PageObject ፋይል እና አንድ ልዩ ፋይል። እንጀምር!

ደረጃ 1: ፕሮጀክታችንን በ VS ኮድ ይክፈቱ። የሚባል አቃፊ ይፍጠሩ የገጽ ነገር ከስር ማስተባበር አቃፊ. በዚህ አቃፊ ስር ለማንኛውም ሞጁሎች የገጽ ነገር ፋይሎችን መፍጠር ይችላሉ።

PageObject የሚባል አዲስ አቃፊ

ደረጃ 2ስም፡ ፋይል ፍጠር የመግቢያ ገጽ.js ከስር የገጽ ነገር አቃፊ. በ LoginPage.js ውስጥ የመግባት ተግባራትን የሚያካትቱ ዘዴዎችን እንጽፋለን።

LoginPage.js በ PageObject አቃፊ ስር መፍጠር

ደረጃ 3የመጀመሪያውን የሙከራ ዘዴችንን በ ውስጥ መጻፍ እንጀምር የመግቢያ ገጽ.js ፋይል. በመጀመሪያ በእኛ ዝርዝር ፋይል ውስጥ ወደ ውጭ የምንልክበትን ክፍል መፍጠር አለብን። ክፍላችንን እንጠራዋለን የመግቢያ ገጽ

ክፍል መግቢያ ገጽ {}

በእኛ የውሸት ኮድ መሰረት፣ የእኛ የመጀመሪያ እርምጃ ወደ URL ማሰስ ነው። የእኛን ዘዴ እንደ እንጠራዋለን navigate(). በእኛ የአሰሳ ዘዴ ውስጥ ፣ እኛ እንጨምራለን cy.visit() ተግባር ከሳይፕረስ.

 navigate() {cy.visit('https://admin-demo.nopcommerce.com/') }

የማሰስ ዘዴ

ደረጃ 4አሁን፣ በኢሜል መስኩ ውስጥ የተጠቃሚ ስም ማስገባት አለብን። የእኛን ዘዴ እንደ ስም እንሰጣለን ኢሜል አስገባ(). በመጀመሪያ፣ የኢሜል መስኩን አመልካች ማግኘት እና በእነርሱ በኩል ማግኘት አለብን cy.get() ትእዛዝ። ከዚያም ሜዳውን በመጠቀም እናጸዳለን clear() ማዘዝ እና የተጠቃሚ ስም ጨምር type() ትእዛዝ። በእኛ ዘዴ, መለኪያ እናልፋለን የተጠቃሚ ስም በፋይሉ ውስጥ ያለውን ዋጋ ለማለፍ. በዚህ መንገድ፣ የተለየ የኢሜይል መታወቂያ ካስፈለገ ይህንን ዘዴ ለማግኘት አጠቃላይ እንዲሆን እያደረግነው ነው።

አስገባ ኢሜል (የተጠቃሚ ስም) {cy.get('[id=ኢሜል]') .ግልጽ() cy.get('[id=ኢሜል]') አይነት(የተጠቃሚ ስም); ይህን መመለስ}

የሚለውን ከመጻፍ ይልቅ cy.get() ከላይ ባለው ኮድ ውስጥ ሁለት ጊዜ ማዘዝ ፣ በቀላሉ በ ‹መጠቅለል› እንችላለን ነጥብ ከዋኝ።

  አስገባ ኢሜል(የተጠቃሚ ስም) {cy.get('[id=ኢሜል]') .clear() .type(የተጠቃሚ ስም); ይህንን መመለስ}

የኢሜል ዘዴ

አስተውለህ ሊሆን ይችላል። return this በመስመር 9. ደህና ይጠቁማል ኢሜል አስገባ ዘዴው የልዩ ነው። የመግቢያ ገጽ ክፍል. በመሠረቱ፣ ደህና ክፍሉን ይወክላል.

ደረጃ 5ከኢመይል ዘዴ ጋር የሚመሳሰል የይለፍ ቃሎች ዘዴ መፍጠር አለብን። የይለፍ ቃላችንን ዘዴ እንጠራዋለን enterPassword(). መጀመሪያ ላይ ለይለፍ ቃል አመልካቹን እናገኛለን, መስኩን እናጸዳለን እና የግቤት እሴቱን እንጽፋለን. ወደ ሚጠራው ዘዴችን መለኪያ እናስተላልፋለን pswd እና ውስጥ መዳረሻ type() ትዕዛዝ.

enterPassword(pswd) {cy.get('[id=Password]') .clear() .type(pswd)ይህንን ይመልሱ }
የመግቢያ የይለፍ ቃል ዘዴ

ደረጃ 6የመጨረሻው ዘዴ የመግቢያ ቁልፍን ጠቅ ማድረግ ነው። የእኛን ዘዴ እንሰይማለን submit(). አመልካቹን እናገኛለን እና አዝራሩን ጠቅ እናደርጋለን click() ዘዴ ከሳይፕረስ.

 አስገባ () {cy.get('[type=submit]') ን ጠቅ አድርግ() }

የማስረከቢያ ዘዴ

ደረጃ 7አሁን፣ በፋይላችን ላይ ለመጠቀም ይህንን ክፍል ወደ ውጭ መላክ አለብን። ለእዚህ፣ ከክፍላችን ውጪ አንድ መስመር ብቻ እንጨምራለን፣ እና በእኛ ዝርዝር ፋይል ውስጥ በቀላሉ ማግኘት እንችላለን።

ነባሪ የመግቢያ ገጽ ወደ ውጭ መላክ

ወደ ውጪ መላክ ትዕዛዝ

ፍጠን! ለፕሮጀክታችን የገጽ ነገር ፋይል ፈጥረናል። በጣም ቀላል እና ቀላል ነበር!

በ Spec ፋይል ውስጥ የገጽ ዕቃዎችን መድረስ

አሁን ወደ የኛ የሙከራ ጉዳይ ፋይል እንሂድ። በእኛ የውህደት አቃፊ ውስጥ ልዩ ፋይል መፍጠር አለብን። የእኛን ልዩ ፋይል እንጠራዋለን POMDemo.spec.js.

POMDemo.spec.js ፋይል መፍጠር

ደረጃ 1በ LoginPage.js ፋይል ውስጥ የእኛን ዘዴዎች ለመድረስ እኛ አለብን አስገባ ወደ እኛ ልዩ ፋይል ውስጥ ያስገቡ። የማስመጣት መግለጫን በመጠቀም እናስገባለን። በመጠቀም ወደ LoginPage.js ፋይል ማሰስ አለብን ../

በእኛ ሁኔታ, መንገዱ ነው ../integration/PageObject/LoginPage. ስለዚህ የማስመጣት መግለጫ ከዚህ በታች ያለ ነገር ይመስላል።

የመግቢያ ገጽን ከ "../integration/pageObject/Loginpage" አስመጣ

ደረጃ 2ሞቻን ስለምንጠቀም የሙከራ መያዣችንን ወደ ውስጥ እንጽፋለን describe() ና it() አግድ ይግለጹ () ሀ የሙከራ ስብስብእና እሱ () ሀ የሙከራ ጉዳይ. ሁለቱም ብሎኮች ተግባር ናቸው እና የሚከተሉትን የሚያካትት የሕብረቁምፊ መለኪያን ይቀበሉ መግለጫ የፈተናው.

ይግለጹ ("ሳይፕረስ POM የሙከራ ስዊት", ተግባር () {})

ብሎክን ይግለጹ

በተገለጸው ብሎክ ውስጥ የእኛን እንጽፋለን it() መግለጫውን ከትክክለኛ ምስክርነቶች ጋር እንደ መግቢያ በማከል።

እሱ ("በሚሰሩ ምስክርነቶች ይግቡ"፣ ተግባር () {})

ብሎ ያግዳል።

ደረጃ 3ዘዴዎቻችንን ከፔጃችን የፋይል ፋይል ለማግኘት ለመግቢያ ክፍላችን ምሳሌ መፍጠር አለብን። ለመግቢያ ክፍል ምሳሌ ለመፍጠር፣ ተለዋዋጭ ማሳወቅ እና በክፍል ፋይላችን ላይ መመደብ አለብን አዲስ ቁልፍ ቃል በታወጀው ተለዋዋጭ፣ ዘዴዎቹን ከገጽ ነገር ፋይል በቀላሉ ማግኘት እንችላለን።

                                               const መግቢያ = አዲስ የመግቢያ ገጽ ();
የአንድ ክፍል ምሳሌ

ማስታወሻከተለዋዋጭ ጋር login, ዘዴዎችን ከገጽ ነገር ክፍል ማግኘት እንችላለን. መተየብ ስንጀምር login. , vscode በ LoginPage.js ፋይል ውስጥ ያሉትን ሁሉንም ዘዴዎች ጥቆማዎችን ይዘረዝራል. ይህም ክፍላችንን በትክክል ወደ ውጭ እንደላክን እና እንዳስገባን ለማረጋገጥ ይረዳናል!

ደረጃ 4: የኛን እንጥራ navigate() ዩአርኤልን ለመጎብኘት ዘዴ. በእኛ የፈተና ጉዳይ ውስጥ ይህ የመጀመሪያው እርምጃ ነው።

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); });});

ደረጃ 5የተጠቃሚ ስም በኢሜል መስኩ ውስጥ ማስገባት አለብን። ን እንደርስበታለን። enterEmail() ጋር የመግቢያ ገጽ ነገር. enterEmail() ዘዴ መለኪያ ይቀበላል የተጠቃሚ ስም. ስለዚህ የተጠቃሚውን ስም እንደ ሀ ክር በእኛ spec ፋይል ውስጥ

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); login.enterኢሜል('admin@yourstore.com');})})

ደረጃ 6ከደረጃ 5 ጋር በሚመሳሰል መልኩ የኛን መጥራት አለብን enterPassword() በሕብረቁምፊው ውስጥ የይለፍ ቃሉን እንደ መለኪያ በማለፍ ዘዴ።

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); login.enterEmail('admin@yourstore.com')፤ login.enterPassword('አስተዳዳሪ')፤})})

ደረጃ 7: በመቀጠል የመግቢያ ቁልፍን ጠቅ ማድረግ አለብን. ዘዴውን እንጠራዋለን submit() ከኛ ገጽ የነገር ፋይል.

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); login.enterEmail('admin@yourstore.com')፤ login.enterPassword('አስተዳዳሪ')፤ login.submit();})})

ደረጃ 8: ከገባን በኋላ ዩአርኤሉን ማስረገጥ አለብን። ዩአርኤሉ መሆን አለመሆኑን እናረጋግጣለን። እኩል ከገቡ በኋላ ወደ URL. ለማረጋገጫ, እንጠቀማለን ቻይ የማረጋገጫ ቤተ-መጽሐፍት፣ እሱም ከሳይፕረስ ጋር አብሮ የተሰራ።

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); login.enterEmail('admin@yourstore.com')፤ login.enterPassword('አስተዳዳሪ')፤ login.submit()፤ cy.url() ይገባል('be.equal'፣ 'https://admin-demo') .nopcommerce.com/admin/')})})

የመግቢያ ፈተና መያዣ

ከላይ ያለው ምስል የመግቢያ ፈተና ጉዳይን ይወክላል. በጣም ጥቂት ቀላል ደረጃዎች ባለው የገጽ ነገር ሞዴል የሙከራ መያዣ መፃፍ ችለናል። አሁን የሙከራ መያዣውን እናካሂድ እና ውጤቱን እንይ.

የሳይፕረስ ፈተና ሯጭን ከፍተን ልዩ ፋይል ላይ ጠቅ እናደርጋለን እና የኛን የፈተና ኬዝ እንሰራለን። ይህንን ያረጋግጡ ጽሑፍ የሳይፕረስ ሙከራ ሯጭን እንዴት መክፈት እንደሚቻል።

በሳይፕረስ ውስጥ የሙከራ ውጤት

ፍጠን! በሳይፕረስ ውስጥ የገጽ ነገር ሞዴልን የሚጠቀም የሙከራ መያዣ በተሳካ ሁኔታ ጽፈናል። ይህንን ስርዓተ-ጥለት በእውነተኛ ጊዜ ፕሮጀክቶች ውስጥ ማካተት እንችላለን። ዘዴዎችን በገጽ ነገር ፋይል ውስጥ የምንጽፍባቸው ብዙ መንገዶች አሉ። ደረጃውን የጠበቀ እና ለማንኛውም ፕሮጀክት የሚሰራ ምሳሌ አሳይቻችኋለሁ። እንዲሁም ብቻ መጻፍ ይችላሉ የመመለሻ ተግባር በገጽ ነገር ፋይል ውስጥ እና ከዚያ ጠቅ ያድርጉ እና ዓይነት በቀጥታ በእኛ spec ፋይል ውስጥ.

በፕሮጀክቱ ውስጥ ልንጠቀምበት የምንችለውን ሌላ ንድፍ እናያለን. ይህ ዘዴ እንዲሁ በጥሩ ሁኔታ ይሠራል።

በዚህ አይነት ፣በእኛ ዘዴ ውስጥ የአግኙን ተግባር ብቻ እንመልሳለን እና በሙከራ ፋይል ውስጥ እርምጃዎችን እንፈጽማለን። ከላይ ያየነውን ተመሳሳይ ሁኔታ ኮድ እንጽፋለን።

የገጽ ነገር - የመግቢያ ገጽ.js

class LoginPage {navigate() {cy.visit('https://admin-demo.nopcommerce.com/')} enterEmail() {መመለስ cy.get('[id=ኢሜል]')} enterPassword() {መመለስ cy.get('[id=የይለፍ ቃል]') } አስገባ() {መመለስ cy.get('[type=submit]') } } ነባሪ የመግቢያ ገጽ ወደ ውጪ ላክ

ከላይ እንዳየነው በተግባራችን ውስጥ ያለውን አመልካች ብቻ እየጻፍን እየመለስን ነው። መመለሻው ልዩ ዘዴው የ ክፍል LoginPage.js. በእኛ ዘዴዎች ውስጥ ምንም አይነት እርምጃዎችን አንጨምርም።

የገጽ ነገር ፋይል ምሳሌ

ልዩ ፋይል – POMDemo.spec.js

በፋይሉ ውስጥ ያሉትን ዘዴዎች የመድረስ ምሳሌን እንመለከታለን.

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { it ("ትክክለኛ ምስክርነቶች ጋር ይግቡ", ተግባር () {const login = አዲስ የመግቢያ ገጽ (); login.navigate (); login.enterኢሜል () .ክሊር () login.enterኢሜል () አይነት ('admin@yourstore.com')፤ login.enterPassword () .ግልጽ () መግቢያ.የይለፍ ቃል () አይነት ('አስተዳዳሪ')፤ መግባት። አስረክብ () ጠቅ አድርግ (); cy.url () አለበት ('equal', 'https://admin-demo.nopcommerce.com/admin/')});});

የዝርዝር ፋይል ምሳሌ

እዚህ ዘዴውን ከ PageObject ፋይል እንጠራዋለን እና የሙከራ ጉዳይ ድርጊቶችን እንፈጽማለን. ስለዚህ በመጀመሪያ, የእኛን ማመሳከሪያ ተለዋዋጭ ብለን እንጠራዋለን የመግቢያ ገጽ እና ከዚያ ከስልቱ ጋር በማያያዝ enterEmail() እና በመጨረሻም ድርጊቱን መጨመር ዓይነት. በእኛ ውስጥ type(), የተጠቃሚ ስም እናስተላልፋለን ዋጋ.

ሙከራ ውጤት

እንደሚመለከቱት, ሁሉም ትዕዛዞች ተፈጽመዋል, እና የፈተናው ጉዳይ አልፏል!

ለፕሮጀክትዎ እና ለአስተያየትዎ የሚስማማውን የትኛውንም የገጽ ነገር ሞዴል መምረጥ ይችላሉ። ለአንድ አሰራር ብቻ የሚቆይ ልዩ ህግ የለም.

በሳይፕረስ ውስጥ በገጽ ነገር ሞዴል ውስጥ Fixturesን እንደ የሙከራ የውሂብ ምንጭ እንዴት መጠቀም እንደሚቻል?

በእኛ የገጽ ነገር ሞዴል ምሳሌዎች የተጠቃሚ ስም እና የይለፍ ቃል እሴቱን በገጽ ነገር ፋይል ውስጥ ወይም በቀጥታ በሙከራ ፋይል ውስጥ አልፈናል። ይህ ክፍል እንዴት እንደሚጠቀሙበት ይገነዘባል በሳይፕረስ ውስጥ ያሉ ዕቃዎች ውሂቡን ደህንነቱ የተጠበቀ እና እንዳይጋለጥ ለማድረግ። ሁሉንም ምስክርነቶችን እና መረጃዎችን በአንድ ፋይል ውስጥ ለማስቀመጥ እና እነሱን ለመድረስ መሞከር አለብን። በዚህ መንገድ፣ ለማቆየት ቀላል ነው፣ እና እንደ የተጠቃሚ ስም እና የይለፍ ቃል ያሉ ሚስጥራዊነት ያላቸው መረጃዎች አይጋለጡም። ይህ ዘዴ በገጽ ነገር ንድፍ ውስጥ ልንከተላቸው ከሚገቡን ሂደቶች ውስጥ አንዱ ነው።

ቀደም ሲል እንደተገለፀው እ.ኤ.አ. Fixture ውሂብን በJSON ፋይል ወይም የ Excel ፋይል ወይም እንደ Apache POI ባሉ ውጫዊ ቤተ-መጽሐፍት ውስጥ ለማከማቸት ያግዛል።. ተለዋዋጭ በመፍጠር እነዚህን መረጃዎች እንጠቀማለን እና በእኛ ዝርዝር ፋይል ውስጥ እናገኛቸዋለን። በምሳሌ እንረዳ።

ሳይፕረስ "" የሚባል አቃፊ ያቀርባል.ዕቃዎች” በማለት ተናግሯል። እኛ እንፈጥራለን JSON ፋይል ተጠርቷል ምስክርነቶች.JSON በ 'Fixtures' አቃፊ ስር.

JSON ፋይል መፍጠር

በ JSON ቅርጸት ለማረጋገጥ የምንፈልጋቸውን የተጠቃሚ ስማችንን፣ የይለፍ ቃላችንን እና URL እሴቶቻችንን እናውጅ ምስክርነቶች.json ፋይል.

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

በ credentials.json ፋይል ውስጥ እሴቶችን ማለፍ

በሙከራ ጉዳይ ፋይሉ ውስጥ ከJSON ፋይል እሴቶቹን መድረስ

በJSON ፋይላችን ውስጥ ያሉትን እሴቶች እንደገለፅናቸው፣ በሙከራ ኬዝ ፋይላችን ውስጥ ተጠቅመን እናገኛቸዋለን ግጥሚያዎች ከሳይፕረስ. የJSON እሴትን በማግኘት እንደርስበታለን። ደህና ቁልፍ ቃል የቋሚውን ተግባር በ ሀ ከዚህ በፊት () አግድ.

ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () {ከዚህ በፊት (ተግባር () {cy.fixture('credentials').ከዚያ (ተግባር (testdata) { this.testdata = testdata})})

cy.fixture('credentials')።ከዚያ(ተግባር (testdata) { this.testdata = testdata}) - ይህ መስመር እኛ እንደምናልፍ ያሳያል ምስክርነቶች.json ወደ እኛ እንደ መለኪያ ያቅርቡ cy.fixture() ትእዛዝ። እዚህ፣ የJSON ፋይል መሆን አለመሆኑን ማለፍ አይጠበቅብንም። የፋይሉን ስም ብቻውን ያስተላልፉ። በኋላ, እናልፋለን testdata በተግባሩ ውስጥ እንደ መለኪያ እና ይድረሱ testdata በመጠቀም ተለዋዋጭ ደህና.

/// የመግቢያ ገጽን ከ"./PageObject/LoginPage" ይግለጹ ("ሳይፕረስ POM Test Suite", ተግባር () { በፊት (ተግባር () { cy.fixture ('credentials') .ከዚያ (ተግባር (testdata) { this.testdata = testdata }) }) እሱ ("በሚሰሩ ምስክርነቶች ግባ"፣ ተግባር () {const login = አዲስ የመግቢያ ገጽ()፣ login.navigate(); login.enterEmail(this.testdata.username) login.enterPassword(this.testdata.password) ) login.submit (); cy.url () አለበት ('equal', this.testdata.adminUrl)});});

login.enterኢሜል(this.testdata.username) - ይህ የተጠቃሚ ስም እሴቱን ከ credentials.json ፋይል ያመጣና በኢሜል መስኩ ውስጥ ይሞላል።

login.enterPassword (ይህ.testdata.password) - ይህ የይለፍ ቃል እሴቱን ከ credentials.json ፋይል ያመጣና በይለፍ ቃል መስኩ ውስጥ ይሞላል

cy.url()('equal'፣ this.testdata.adminUrl) አለበት። - ይህ adminUrl ን ከ credentials.json ፋይል ያገኛል እና በመረጃው ውስጥ ያረጋግጣል

ውሂቡን ከJSON ፋይል ወደ ልዩ ፋይል ማስተላለፍ

አሁን, ለውጤቱ የሙከራ መያዣውን እናካሂድ.

የሙከራ ውጤት

እንደምናየው, የፈተና ጉዳዮች ተፈጽመዋል እና አልፈዋል. ይህ ምሳሌ መሰረታዊ በመረጃ የሚመራ የሙከራ መያዣ ለመጻፍ ይረዳዎታል። ይህንን ዘዴ በመጠቀም በፕሮጀክትዎ ውስጥ ማካተት ይችላሉ. አዲስ የJSON ፋይሎችን በFixture አቃፊ ስር መፍጠር፣ ከሙከራ ውሂብ ጋር የተያያዙ እሴቶችን ማከል እና በማንኛውም የሙከራ ፋይል ላይ መድረስ ይችላሉ።

ተደጋግሞ የሚነሱ ጥያቄዎች

ሳይፕረስ የገጽ ነገር ሞዴልን ይደግፋል?

እንዴ በእርግጠኝነት. ሳይፕረስ በማከማቻው ውስጥ ካሉ ገፆች እና ዕቃዎች ጋር ለመጫወት ሁሉንም ተለዋዋጭነት ይሰጣል። ለመተግበር ቀላል ነው.

ከላይ ከተጠቀሱት ምሳሌዎች ውስጥ የትኛውን ገጽ ነገር ሞዴል ልጠቀም?

የገጽ ነገር ሞዴል አንድ መንገድ ብቻ የሚጣበቅ ምንም የተለየ ህግ የለም። ከዚህ በላይ የተብራራውን ማንኛውንም ሞዴል መጠቀም ይችላሉ. በፕሮጀክትዎ መሰረት ሞዴሉን ለማበጀት ነፃ ነዎት.

በሳይፕረስ ውስጥ ባለው የገጽ ነገር ሞዴል ውስጥ ዕቃዎችን ለምን እጠቀማለሁ?

Fixture እንደ የተጠቃሚ ስም፣ የይለፍ ቃል እና ዩአርኤሎች በተለየ ፋይል እንደ JSON ወይም excel ያሉ ሚስጥራዊነት ያላቸውን መረጃዎች ለማከማቸት ያግዛል። ይህ የመተግበሪያውን ደህንነት ያረጋግጣል እና በፕሮጀክቱ ውስጥ ባሉ ማናቸውም ፋይሎች ውስጥ በቀላሉ ይድረሱባቸው። የJSON ፋይልን ለመድረስ እንጠቀማለን። ዕቃዎች በእኛ ዝርዝር ፋይል ውስጥ ለመጠቀም።

ወደ ላይ ሸብልል