Kubwerera kusukulu: momwe mungaphunzitsire oyesa pamanja kuti athe kuthana ndi mayeso odzipangira okha

Olemba anayi mwa asanu mwa omwe adalembetsa ma QA akufuna kuphunzira momwe angagwiritsire ntchito mayeso odzichitira okha. Osati makampani onse angathe kukwaniritsa zilakolako zoterezi za oyesa pamanja pa nthawi ya ntchito. Wrike adakhala ndi sukulu yochitira okha antchito ndipo adazindikira chikhumbo ichi kwa ambiri. Ndinachita nawo sukuluyi monga wophunzira wa QA.

Ndinaphunzira momwe ndingagwiritsire ntchito Selenium ndipo tsopano ndikuthandizira paokha ma autotests angapo popanda thandizo lakunja. Ndipo, kutengera zotsatira za zomwe takumana nazo limodzi komanso zomwe ndapeza, ndiyesera kupeza njira yomweyi yasukulu yabwino kwambiri yodzichitira.

Chokumana nacho cha Wrike pokonzekera sukulu

Pamene kufunika kwa sukulu yodzichitira okha kunadziwika, bungwe lake linagwera ku Stas Davydov, mtsogoleri waukadaulo wa automation. Ndani winanso koma iye amene angafotokoze chifukwa chimene anapangira zimenezi, kaya apeza zotulukapo zake komanso ngati amanong’oneza bondo chifukwa cha nthaΕ΅i imene anathera? Tiyeni timuthandize:

- Mu 2016, tidalemba chimango chatsopano cha autotests ndikuchipanga kuti chikhale chosavuta kulemba mayeso: masitepe abwinobwino adawonekera, mawonekedwewo adamveka bwino. Tinabwera ndi lingaliro: tiyenera kuphatikizira aliyense amene akufuna kulemba mayeso atsopano, ndipo kuti zikhale zosavuta kumvetsetsa, tinapanga mndandanda wa nkhani. Pamodzi tinabwera ndi dongosolo la mitu, aliyense wa aphunzitsi am'tsogolo adadzitengera yekha ndikukonza lipoti lake.

β€” Kodi ophunzirawo anakumana ndi mavuto otani?

- Makamaka, ndithudi, zomangamanga. Panali mafunso ambiri okhudza kapangidwe ka mayeso athu. Poyankha, zambiri zidalembedwa pamutuwu ndipo tidayenera kukhala ndi maphunziro owonjezera kuti tifotokoze mwatsatanetsatane.

- Kodi sukuluyo idalipira?

- Inde, ndithudi. Zikomo kwa iye, anthu ambiri adachita nawo mayeso olembera, ndipo, pafupifupi, m'chipatala, aliyense adayamba kumvetsetsa bwino zomwe autotests ndi, momwe amalembedwera komanso momwe amayambira. Kuchulukira kwa mainjiniya odzipangira okha kwachepanso: tsopano timalandira zopempha zocheperako kambirimbiri pakuwunika mayeso, popeza oyesa ndi omanga ayamba kuthana ndi izi pafupifupi nthawi zonse. Chabwino, pali zabwino zingapo zamkati za dipatimentiyi: tidapeza chidziwitso pazowonetsera ndi maphunziro, chifukwa chake akatswiri ena odzipangira okha adakwanitsa kale kuwonetsera pamisonkhano, komanso adalandiranso makanema amphamvu ndi zowonetsera kwa obwera kumene.

M'malo mwa ine ndekha, ndiwonjezera kuti kulumikizana pakati pa madipatimenti athu kwasinthidwa kukhala kosavuta mopusa. Mwachitsanzo, tsopano sindiyenera kuganiza kuti ndi milandu iti komanso pamlingo wa atomiki woti ndizitha kupanga zokha. Zotsatira zake, maphwando onse omwe ali ndi chidwi akusamalira mokwanira mayeso a mayeso, omwe akukula mosalekeza. Palibe amene amafuna zosatheka kwa ena.

Kawirikawiri, zotsatira pa ntchito ya magulu ndithudi zabwino. Mwinanso anzawo akuwerenga nkhaniyi akuganizanso kuchita chimodzimodzi? Ndiye upangiri udzakhala wosavuta: ndizoyenera ngati mayeso odziyimira pawokha ali patsogolo kwa inu. Kenaka, tidzakambirana za funso lovuta kwambiri: momwe tingakonzekerere zonsezi molondola momwe tingathere, kuti ndalama zamagulu onse zikhale zochepa komanso zotulukapo ndizopambana.

Malangizo okonzekera

Sukuluyi inali yothandiza, koma, monga momwe Stas adavomerezera, panali zovuta zina, chifukwa chake kunali kofunikira kukonza maphunziro owonjezera. Ndipo zinali ngati wophunzira waposachedwa podzifananiza-mu-umbuli komanso ndekha-tsopano ndinapanga njira zotsatirazi kuti ndipange, mwa lingaliro langa, njira yabwino yophunzitsira oyesa kumvetsetsa mayeso odzipangira okha.

Gawo 0. Pangani dikishonale

Inde, sitepe iyi ndiyofunikira osati pa QA yokha. Komabe, ndikufuna kufotokoza momveka bwino: codebase yokhazikika iyenera kusungidwa mu mawonekedwe owerengeka. Zilankhulo zamapulogalamu - osachepera zilankhulo, ndipo kuyambira pano mutha kuyamba kudumphira.

Kubwerera kusukulu: momwe mungaphunzitsire oyesa pamanja kuti athe kuthana ndi mayeso odzipangira okha

Pano pali chithunzithunzi cha ntchito yokhala ndi mayina azinthu. Tiyerekeze kuti mukuyesa ntchito ngati bokosi lakuda ndipo simunawonepo Selenium m'moyo wanu. Kodi code iyi imachita chiyani?

Kubwerera kusukulu: momwe mungaphunzitsire oyesa pamanja kuti athe kuthana ndi mayeso odzipangira okha

(Spoiler - ntchitoyo imachotsedwa popuma m'malo mwa admin, ndiyeno tikuwona kuti pali mbiri ya izi mumtsinje.)

Izi zokha zimabweretsa zilankhulo za QAA ndi QA kuyandikira limodzi. Ndikosavuta kwa magulu odzipangira okha kufotokozera zotsatira za kuthamanga; oyesa pamanja amayenera kuwononga pang'ono popanga milandu: amatha kufotokozedwa mwatsatanetsatane. Komabe, aliyense amamvetsetsana. Tinalandira zopambanazo ngakhale maphunziro enieniwo asanayambe.

Gawo 1. Bwerezani mawu

Tiyeni tipitirize kufanana ndi chinenero. Tikamaphunzira kulankhula ngati ana, sitiyambira pa etymology ndi semantics. Timabwereza "mayi", "kugula chidole", koma osalowa mu mizu ya Proto-Indo-European ya mawu awa. Kotero ziri pano: palibe chifukwa chodumphira mu kuya kwambiri kwazinthu zamakono za autotests popanda kuyesa kulemba chinachake chomwe chimagwira ntchito.
Zimamveka zotsutsana pang'ono, koma zimagwira ntchito.

Mu phunziro loyamba, ndi bwino kupereka maziko a momwe kulemba autotests mwachindunji. Timathandiza kukhazikitsa chilengedwe chachitukuko (kwa ine, Intellij IDEA), fotokozani malamulo ochepa a chinenero omwe ali ofunikira kuti alembe njira ina mu kalasi yomwe ilipo kale pogwiritsa ntchito njira zomwe zilipo. Timalemba nawo mayeso amodzi kapena awiri ndikuwapatsa homuweki, yomwe ndingapange motere: nthambi yochokera kwa mbuye, koma mayeso angapo achotsedwamo. Mafotokozedwe awo okha ndi omwe atsala. Tikufunsa oyesa kuti abwezeretse mayesowa (osati kudzera pa show diff, inde).

Zotsatira zake, amene anamvera ndi kuchita zonse adzatha:

  1. phunzirani kugwira ntchito ndi mawonekedwe achitukuko: kupanga nthambi, ma hotkeys, kuchita ndi kukankha;
  2. dziwani zoyambira za kapangidwe ka chilankhulo ndi makalasi: komwe mungalowetse jekeseni ndi komwe mungalowe, chifukwa chiyani mafotokozedwe amafunikira, ndi zizindikiro zotani zomwe zimapezeka pamenepo, kupatula masitepe;
  3. kumvetsetsa kusiyana pakati pa kuchitapo kanthu, dikirani ndikuyang'ana, komwe mungagwiritse ntchito chiyani;
  4. zindikirani kusiyana pakati pa autotests ndi macheke pamanja: mu autotests mutha kukoka chogwirizira chimodzi m'malo mochita zinthu kudzera pa mawonekedwe. Mwachitsanzo, tumizani ndemanga mwachindunji ku backend m'malo motsegula chithunzithunzi cha ntchito, kusankha zolowetsa, kulemba mawu ndikudina batani la Tumizani;
  5. pangani mafunso amene adzayankhidwe mu sitepe yotsatira.

Mfundo yomaliza ndi yofunika kwambiri. Mayankho amenewa akhoza kuperekedwa pasadakhale, koma ndi mfundo yofunika kwambiri yophunzitsa kuti mayankho opanda mafunso opangidwa samakumbukiridwa ndipo sagwiritsidwa ntchito ngati akufunika.

Zingakhale zabwino ngati panthawiyi injiniya wodzipangira yekha kuchokera ku gulu la QA adamupatsa ntchito yolemba mayesero angapo pankhondo ndikumulola kuti adzipereke ku nthambi yake.

Zomwe simuyenera kupereka:

  1. chidziwitso chozama cha magwiridwe antchito achitukuko ndi chilankhulo cha pulogalamu yokha, chomwe chidzangofunika pogwira ntchito ndi nthambi paokha. Sizidzakumbukiridwa, muyenera kufotokoza kawiri kapena katatu, koma timayamikira nthawi ya akatswiri opanga makina, sichoncho? Zitsanzo: kuthetsa mikangano, kuwonjezera mafayilo ku git, kupanga makalasi kuyambira pachiyambi, kugwira ntchito ndi odalira;
  2. zonse zokhudzana ndi xpath. Mozama. Muyenera kukambirana za izo mosiyana, kamodzi komanso molunjika kwambiri.

Gawo 2. Kuyang'anitsitsa galamala

Tiyeni tikumbukire chithunzithunzi chantchito kuchokera pagawo #0. Tili ndi sitepe yotchedwa checkCommentWithTextExists. Woyesa wathu amamvetsetsa kale zomwe sitepeyi ikuchita ndipo tikhoza kuyang'ana mkati mwa sitepe ndikuyiwononga pang'ono.

Ndipo mkati mwake muli zinthu izi:

onCommentBlock(userName).comment(expectedText).should(displayed());

Pomwe paCommentBlock ili

onCommonStreamPanel().commentBlock(userName);

Tsopano tikuphunzira kunena kuti "musagule chidole," koma "gulani chidole kuchokera ku sitolo ya Detsky Mir, yomwe ili mu kabati ya buluu pa shelefu yachitatu kuchokera pamwamba." Ndikofunikira kufotokoza kuti timaloza ku chinthu motsatizana, kuchokera kuzinthu zazikulu (mtsinje -> chipika chokhala ndi ndemanga kuchokera kwa munthu wina -> gawo la chipikachi pomwe malembawo amakhala).

Ayi, sinali nthawi yoti tilankhule za xpath. Ingotchulani mwachidule kuti malangizo onsewa akufotokozedwa ndi iwo ndipo cholowa chimadutsa mwa iwo. Koma tiyenera kulankhula za onse machesi ndi odikira; iwo zikugwirizana makamaka sitepe ndi zofunika kumvetsa zimene zikuchitika. Koma musachulukitse: wophunzira wanu akhoza kuphunzira zonena zovuta payekha pambuyo pake. Nthawi zambiri, ayenera, waitUntil, displayed();, kukhalapo();, osati(); zikhale zokwanira.

Homuweki ndizodziwikiratu: nthambi yomwe zomwe zili m'masitepe angapo omwe ali ofunikira pamayeso angapo achotsedwa. Lolani oyesa awabwezeretse ndikupangitsa kuthamanga kukhala kobiriwira kachiwiri.

Kuonjezera apo, ngati gulu loyesera liribe zatsopano mu ntchito yake, komanso kukonza zolakwika, mukhoza kumupempha kuti alembe mayeso a nsikidzizi nthawi yomweyo ndikuwamasula. Mwachidziwikire, zinthu zonse zafotokozedwa kale; masitepe angapo okha ndi omwe akusowa. Uku kudzakhala masewera olimbitsa thupi abwino kwambiri.

Gawo 3. Kumiza kwathunthu

Zokwanira momwe zingathere kwa woyesa yemwe apitirize kuchita ntchito zake zachindunji. Pomaliza, tiyenera kulankhula za xpath.

Choyamba, tiyeni tiwonetsetse kuti zonsezi paCommentBlock ndi ndemanga zimafotokozedwa ndi iwo.

Kubwerera kusukulu: momwe mungaphunzitsire oyesa pamanja kuti athe kuthana ndi mayeso odzipangira okha

Chiwerengero:

"//div[contains(@class, β€˜stream-panel’)]//a[contains(@class,'author') and text()='{{ userName }}’]//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}’)]"

Ndondomeko ya nkhani ndi yofunika kwambiri. Choyamba, timatenga xpath iliyonse yomwe ilipo ndikuwonetsa momwe zinthu tabu zilili ndi chinthu chimodzi chokha. Kenaka, tikambirana za kapangidwe kake: pamene muyenera kugwiritsa ntchito WebElement, komanso pamene mukufuna kupanga fayilo yosiyana ya chinthu chatsopano. Izi zikuthandizani kuti mumvetsetse bwino cholowa.

Ziyenera kunenedwa momveka bwino kuti chinthu chimodzi ndicho chiwonetsero chonse cha ntchito, chimakhala ndi chinthu chamwana - mtsinje wonse, womwe uli ndi gawo la mwana - ndemanga yosiyana, ndi zina. Zinthu za ana zili mkati mwa makolo patsamba komanso pamapangidwe a autotest framework.

Pakadali pano, omvera amayenera kumvetsetsa bwino lomwe momwe adatengera komanso zomwe zingalowe pambuyo pa dontho paCommentBlock. Panthawiyi, tikufotokozera onse ogwira ntchito: /, //, ., [] ndi zina zotero. Timawonjezera chidziwitso chogwiritsa ntchito katunduyo @class ndi zinthu zina zofunika.

Kubwerera kusukulu: momwe mungaphunzitsire oyesa pamanja kuti athe kuthana ndi mayeso odzipangira okha

Ophunzira ayenera kumvetsetsa momwe angamasulire xpath motere. Kuphatikiza - ndiko kulondola, homuweki. Timachotsa kufotokozera kwa zinthu, kuwalola kuti abwezeretse ntchito ya mayesero.

N'chifukwa chiyani njira imeneyi?

Sitiyenera kulemetsa munthu ndi chidziwitso chovuta, koma tiyenera kufotokoza zonse nthawi imodzi, ndipo ili ndi vuto lalikulu. Njira iyi itithandiza kuti tiyambe kupangitsa omvera kufunsa mafunso osamvetsetsa china chake ndikuyankha mphindi yotsatira. Ngati mukukamba za zomangamanga zonse, ndiye panthawi yomwe mutu wa masitepe kapena xpath ukufufuzidwa, mbali zofunika kwambiri za izo zidzaiwalika kale chifukwa cha kusamvetsetsa kwawo.

Komabe, ena a inu mudzatha kugawana zomwe mwakumana nazo pa momwe ndondomekoyi ingakwaniritsire kwambiri. Ndidzakhala wokondwa kuwerenga malingaliro ofanana mu ndemanga!

Source: www.habr.com

Kuwonjezera ndemanga