Kudzokera kuchikoro: maitiro ekudzidzisa ma testers ekuita nemaotomatiki bvunzo

Vana kubva pavashanu vanyoreri veQA vanoda kudzidza kushanda nemaotomatiki bvunzo. Haasi ese makambani anogona kuzadzisa zvishuwo zvakadaro zvemanyoro testers panguva yekushanda. Wrike akabata chikoro cheautomation chevashandi uye akaziva chishuwo ichi kune vazhinji. Ndakatora chikamu muchikoro ichi chaizvo semudzidzi weQA.

Ndakadzidza kushanda neSelenium uye zvino ndakazvimiririra kutsigira imwe nhamba ye autotests pasina rubatsiro rwekunze. Uye, zvichibva pamhedzisiro yechiitiko chedu chekubatana uye mhedziso dzangu pachangu, ini ndichaedza kutora iyo fomula yechikoro chakanyanya kunaka che automation.

Zvakaitika kuna Wrike mukuronga chikoro

Apo kudiwa kwechikoro che automation kwakava pachena, sangano rayo rakawira kuna Stas Davydov, mutungamiri wekambani ye automation. Ndiani mumwe kunze kwaiye anogona kutsanangura chikonzero nei vakauya nechirongwa ichi, kana vakawana zvibereko uye kana vachidemba nguva yavakapedza? Ngatimupe pasi:

- Muna 2016, takanyora hurongwa hutsva hwe autotests uye takaita kuti zvive nyore kunyora bvunzo: nhanho dzakajairwa dzakaonekwa, chimiro chakawedzera kunzwisisika. Takauya nezano: tinofanira kubatanidza munhu wose anoda kunyora bvunzo itsva, uye kuti zvive nyore kunzwisisa, takagadzira nhevedzano yehurukuro. Isu takabatana takauya nehurongwa hwemisoro, mumwe nemumwe wevaraidzi venguva yemberi akazvitorera uye akagadzirira rondedzero pamusoro payo.

β€” Vadzidzi vakasangana nematambudziko api?

- Kunyanya, hongu, zvivakwa. Paive nemibvunzo yakawanda pamusoro pechimiro chebvunzo dzedu. Mukupindura, zvakawanda zvakanyorwa pamusoro penyaya iyi uye taifanira kubata dzimwe hurukuro kuti titsanangure zvakadzama.

β€” Chikoro chakabhadhara here?

- Hongu, zvirokwazvo. Kutenda kwaari, vanhu vazhinji vaibatanidzwa mukunyora bvunzo, uye, paavhareji, muchipatara, munhu wese akatanga kunzwisisa zviri nani kuti autotests chii, kuti inonyorwa sei uye kuti inotangwa sei. Kuremerwa kweinjiniya otomatiki kwadzikirawo: isu zvino tinogashira kakawanda zvikumbiro zvishoma zvekubatsirwa nekuongorora bvunzo, sezvo vaedzi nevagadziri vatanga kutarisana neizvi ivo pachavo mune angangoita ese mamiriro. Zvakanaka, kune akati wandei mabhenefiti emukati edhipatimendi: isu takawana ruzivo mumharidzo uye hurukuro, nekuda kwekuti vamwe mainjiniya otomatiki vakatokwanisa kuita mharidzo pamisangano, uye vakagamuchira seti ine simba yemavhidhiyo uye mharidzo dzevachangopinda.

Ini pachangu, ini ndichawedzera kuti kutaurirana pakati pemadhipatimendi edu kwakarerutswa kusvika padanho rakapusa. Semuyenzaniso, zvino ini handichada kufunga nezve nyaya dzipi uye padanho ripi reatomicity yekuzvigadzirisa. Nekuda kweizvozvo, mapato ese anofarira ari kutarisira zvizere kuvharwa kwebvunzo, iyo iri kuramba ichikura. Hapana anorayira zvisingagoneki kubva kune vamwe.

Kazhinji, kukanganisa kwebasa rezvikwata zvechokwadi kwakanaka. Pamwe vatinoshanda navo vanoverenga chinyorwa ichi vari kufungawo nezve kuita chimwe chinhu chakafanana? Ipapo zano richave rakapfava: zvakakosha kana otomatiki bvunzo iri pamberi pako. Zvadaro, tichataura pamusoro pemubvunzo wakaoma: nzira yekuronga zvose izvi nenzira yakarurama sezvinobvira, kuitira kuti mari yemapato ose iite shoma uye kubudiswa kwakanyanya.

Mazano ekuronga

Chikoro chacho chaibatsira, asi, sekubvuma kwakaita Stas, pakanga paine matambudziko, nekuda kwekuti zvaive zvakafanira kuronga dzimwe hurukuro. Uye zvaive semudzidzi achangoburwa achizvienzanisa ini-mu-kusaziva uye ini-ikozvino kuti ndakagadzira matanho anotevera ekugadzira, mumaonero angu, nzira yakanaka yekudzidzisa vanoedza kunzwisisa otomatiki bvunzo.

Danho 0. Gadzira duramazwi

Ehe, nhanho iyi inodiwa kwete yeQA chete. Nekudaro, ini ndoda kuita kuti zvive pachena: iyo otomatiki codebase inofanirwa kuchengetwa mune inoverengeka fomu. Programming mitauro - kwete zvishoma mitauro, uye kubva pane izvi unogona kutanga dive yako.

Kudzokera kuchikoro: maitiro ekudzidzisa ma testers ekuita nemaotomatiki bvunzo

Heino mufananidzo wetaskview ine mazita ezvinyorwa. Ngatimbofungidzira kuti uri kuyedza kuona sebhokisi dema uye hausati wamboona Selenium muhupenyu hwako. Kodhi iyi inoita sei?

Kudzokera kuchikoro: maitiro ekudzidzisa ma testers ekuita nemaotomatiki bvunzo

(Spoiler - basa rinobviswa kuburikidza nekuzorora panzvimbo ye admin, tobva taona kuti pane rekodhi yeiyi murukova.)

Iyi nhanho yega inounza iyo QAA neQA mitauro padyo pamwechete. Zviri nyore kuti zvikwata zve otomatiki zvitsanangure mhedzisiro yekumhanya; manyorero testers anofanirwa kushandisa kushoma kuedza kugadzira makesi: anogona kuitwa mashoma kutsanangurwa. Kunyange zvakadaro, munhu wose anonzwisisa mumwe nomumwe. Takawana mawinine kunyange kudzidziswa chaiko kusati kwatanga.

Danho 1. Dzokorora mitsara

Ngatienderere mberi nekuenderana nemutauro. Kana isu tichidzidza kutaura sevana, isu hatitangi kubva kune etymology uye semantics. Tinodzokorora "amai", "tenga chitoyi", asi usakurumidza kupinda muProto-Indo-European midzi yemashoko aya. Saka zviri pano: hapana chikonzero chekunyura mukati-kati meiyo tekinoroji maficha e autotests pasina kuedza kunyora chimwe chinhu chinoshanda.
Zvinonzwika zvishoma zvinopesana, asi zvinoshanda.

Muchidzidzo chekutanga, zvakakodzera kupa hwaro hwekunyora autotesti zvakananga. Isu tinobatsira kumisikidza nharaunda yekusimudzira (munyaya yangu, Intellij IDEA), tsanangura iyo mishoma mitemo yemutauro inofanirwa kunyora imwe nzira mukirasi iripo uchishandisa matanho aripo. Isu tinonyora bvunzo imwe chete kana mbiri navo uye tovapa basa rechikoro, randaizogadzira seizvi: bazi rakatemwa kubva kuna tenzi, asi miedzo yakati wandei yakabviswa pairi. Tsanangudzo dzavo chete dzasara. Tinokumbira vanoedza kuti vadzorere bvunzo idzi (kwete kuburikidza neshow diff, hongu).

Nokudaro, uyo akateerera uye akaita zvose achakwanisa:

  1. dzidza kushanda pamwe nekusimudzira nharaunda interface: kugadzira matavi, hotkeys, anoita uye kusunda;
  2. ziva izvo zvekutanga zvechimiro chemutauro uye makirasi: kupi kwekuisa majekiseni uye kupi kupinza, nei zvirevo zvichidikanwa, uye rudzii rwezviratidzo zvinowanikwa ipapo, kunze kwematanho;
  3. kunzwisisa musiyano pakati pechiito, kumirira uye kutarisa, kupi kushandisa chii;
  4. cherechedza mutsauko uripo pakati peautotests uye cheki yemanyorero: mune autotests unogona kudhonza mumwe kana mumwe mubato pane kuita zviito kuburikidza neiyo interface. Semuenzaniso, tumira chirevo zvakananga kubackend pane kuvhura yekutarisa basa, kusarudza iyo inopinza, kutaipa mameseji uye nekudzvanya bhatani reTumira;
  5. gadzira mibvunzo inozopindurwa padanho rinotevera.

Pfungwa yekupedzisira yakakosha zvikuru. Mhinduro idzi dzinogona kupiwa zviri nyore nguva isati yakwana, asi dzidziso inokosha yokuti mhinduro dzisina mibvunzo dzakarongwa hadziyeukwe uye hadzishandiswi padzinodiwa pakupedzisira.

Zvingave zvakanaka kana panguva ino injiniya weautomation kubva kuchikwata cheQA akamupa basa rekunyora bvunzo dzakati wandei muhondo uye akamubvumira kuti azvipire kubazi rake.

Zvausingafaniri kupa:

  1. ruzivo rwakadzama rwekushanda kwenzvimbo yekusimudzira uye mutauro wepurogiramu pachayo, iyo inongodiwa chete kana uchishanda nemapazi akazvimirira. Izvo hazvizoyeukwe, uchafanirwa kuzvitsanangura kaviri kana katatu, asi isu tinokoshesa nguva yeautomation mainjiniya, handiti? Mienzaniso: kugadzirisa kusawirirana, kuwedzera mafaira kune git, kugadzira makirasi kubva pakutanga, kushanda nevanovimba;
  2. zvese zvine chekuita ne xpath. Serious. Iwe unofanirwa kutaura nezvazvo zvakasiyana, kamwe uye zvakanyanya.

Danho 2. Kunyatsotarisisa girama

Ngatiyeukei iyo taskview screenshot kubva padanho #0. Tine nhanho inonzi checkCommentWithTextExists. Muedzi wedu anotonzwisisa izvo nhanho iyi inoita uye isu tinogona kutarisa mukati menhanho uye kuiparadza zvishoma.

Uye mukati tine zvinotevera:

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

PaCommentBlock iripi

onCommonStreamPanel().commentBlock(userName);

Iye zvino tinodzidza kuti kwete "kutenga toyi," asi "tenga toyi kubva kuchitoro cheDetsky Mir, chiri mubhanhire rebhuruu pasherufu yechitatu kubva kumusoro." Izvo zvinodikanwa kutsanangura kuti isu tinonongedza kune chimwe chinhu zvakateerana, kubva kuzvinhu zvakakura (rukova -> bhuroka rine makomendi kubva kune mumwe munhu -> icho chikamu cheichi chivharo panogara chinyorwa chakatsanangurwa).

Kwete, haisati yave nguva yekutaura nezve xpath. Ingotaura muchidimbu kuti mirairo yese iyi inotsanangurwa navo uye nhaka inopinda mavari. Asi isu tinofanirwa kutaura nezve ese aya ma matchers uye waiters; ivo vane hukama nedanho iri uye zvakakosha kuti tinzwisise zviri kuitika. Asi usaremedzere: mudzidzi wako anogona kudzidza zvakaomesesa zvirevo ari ega gare gare. Zvingangoitika, zvinofanira, kumirira, kuratidzwa();, kuvapo();, kwete(); zvinofanira kukwana.

Basa remumba riri pachena: bazi umo zviri mukati mematanho akati wandei anodiwa kune imwe nhamba yebvunzo zvakabviswa. Rega vanoedza vadzorere uye vaite kuti kumhanya kuve kwakasvibira zvakare.

Pamusoro pezvo, kana timu yekuyedza isina chete maficha matsva mubasa rayo, asiwo mamwe magadzirirwo ebug, unogona kumukumbira kuti anyore bvunzo dzeaya mabhugi nekukasira. Zvingangodaro, zvinhu zvese zvakatotsanangurwa; matanho mashoma chete anogona kunge asipo. Uku ndiko kuchava kurovedza muviri kwakakwana.

Danho 3. Kunyudzwa kwakazara

Zvakakwana sezvinobvira kumuedzi uyo achapfuurira kuita mabasa ake akananga. Chekupedzisira, isu tinofanirwa kutaura nezve xpath.

Chekutanga, ngatijekese kuti zvese izvi paCommentBlock nekutaura zvinotsanangurwa navo.

Kudzokera kuchikoro: maitiro ekudzidzisa ma testers ekuita nemaotomatiki bvunzo

Zvose:

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

Kurongeka kwenyaya kwakakosha zvikuru. Chekutanga, tinotora chero xpath iripo uye tinoratidza kuti zvinhu tebhu ine chinhu chimwe chete. Tevere, isu tichataura nezve chimiro: kana iwe uchida kushandisa WebElement, uye kana iwe uchida kugadzira rakaparadzana faira rechinhu chitsva. Izvi zvinokutendera kuti unzwisise zviri nani nhaka.

Zvinofanira kutaurwa zvakajeka kuti chinhu chimwe chete ndicho chitarisiko chese chebasa, chine chinhu chemwana - rukova rwese, rune chinhu chemwana - chirevo chakasiyana, nezvimwe. Zvinhu zvevana zviri mukati mevabereki zvinhu zviri zviviri pane peji uye muchimiro cheiyo autotest chimiro.

Panguva ino, vateereri vanofanira kunge vakanyatsonzwisisa kuti vakagarwa sei uye chii chinogona kuiswa mushure meiyo doti paCommentBlock. Panguva ino, tinotsanangura vese vashandisi: /, //, ., [] zvichingodaro. Isu tinowedzera ruzivo pamusoro pekushandisa mumutoro @class nezvimwe zvinodikanwa.

Kudzokera kuchikoro: maitiro ekudzidzisa ma testers ekuita nemaotomatiki bvunzo

Vadzidzi vanofanira kunzwisisa kuti xpath inoturikira sei nenzira iyi. Kubatanidza - ndizvozvo, basa rechikoro. Isu tinodzima tsananguro dzezvinhu, regai dzidzorere basa rebvunzo.

Nei iyi nzira chaiyo?

Hatifanire kuremedza munhu neruzivo rwakaoma, asi tinofanira kutsanangura zvese kamwechete, uye iri idambudziko rakaoma. Iyi nzira ichatibvumira kutanga kuita kuti vateereri vabvunze mibvunzo uye vasinganzwisise chimwe chinhu uye tovapindura nguva inotevera. Kana iwe ukataura pamusoro pezvivakwa zvose, zvino panguva iyo musoro wematanho kana xpath inoongororwa, iyo inonyanya kukosha zvikamu zvayo zvinenge zvatokanganwa nekuda kwekusanzwisisa kwavo.

Nekudaro, vamwe vako vangangokwanisa kugovera ruzivo rwako pamusoro pekuti maitiro acho anogona kuvandudzwa zvakatowanda. Ndichafara kuverenga mazano akafanana mumashoko!

Source: www.habr.com

Voeg