Kuidas lahendada levinumaid veebiliidese testimise automatiseerimisega seotud probleeme Katalon Studio tasuta tööriistakomplekti abil

“Kui lõppkasutaja tajub teie veebisaidi halbu toiminguid, tuleb tema järgmine klõps tõenäoliselt saidil-competition.com.” - Ian Molyneaux

Veebiarendustehnoloogia edusammud muudavad veebipõhised rakendused funktsioonirikkamaks, seetõttu on veebitestide automatiseerimine keerukam.

Veebisaiditehnoloogia funktsioonid, nagu mitme platvormi tugi, brauseriteülene ja reageeriv disain, võivad teie veebi kasutajaliidese testimise automatiseerimisstrateegiatele lisada veelgi keerulisemaid lahendusi ja vaeva.

Nii et kui olete algaja ja alustate veebi kasutajaliidese testimise automatiseerimisest, siis siin on mõned näited tavaliste probleemide lahendamiseks ja automatiseerimise testimise tõhustamiseks.

Loe lisaks: Viis peamist väljakutset testimise automatiseerimisel

(Veebi) kasutajaliidese testimise automatiseerimise ühised väljakutsed

  • Ooteaja probleemid
  • Iframe väljaanded
  • Hüpikaknad automatiseerimisel
  • Probleemid sügavalt pestud elementide leidmisel

Õppige, kuidas neid kasutajaliidese automatiseerimisega seotud probleeme lahendada Katalon Studio tööriista abil.

Katalon Studio on tasuta, kuid samas võimas automatiseerimise tööriistakomplekt veebi- ja mobiilirakenduste testimiseks. Seda on lihtne paigaldada ja testijad saavad oma automatiseeritud teste kiiresti luua, käitada, neist aru anda ja neid hooldada.

See on Katalon Stuudio abil üles ehitatud demoprojekt. Eesmärk on aidata teil ülalnimetatud veebi kasutajaliidese testimise automatiseerimisega seotud probleemide lahendamisel. Kataloonistuudio ja demoprojekti saate alla laadida ka selles artiklis allpool toodud linkide kaudu.

# 1) Ooteaja probleemid ja lahenduskäsitlus

Mis on ootamine?

Ootus on taktika, mida kasutatakse teie testimise automatiseerimisskriptides, et luua skripti toimingute vahele paus, kui ootate laaditavaid elemente või rakendust, millele vastata.

Küsimused, mida arukas ootamine (selgesõnalised ootused on intelligentsed ootused, mis piirduvad kindla veebielemendiga) aitab lahendada, on küsimused, mida hinnatakse inseneride poolt, valede häiretena.

Skripti tõrgetena, mitte rakenduse tõrgetena. Kui test ebaõnnestub skripti enda, mitte rakenduse / veebilehe tõrke tõttu, nimetatakse seda valeks tõrkeks.

Need on mõned levinumad näited, mis võivad põhjustada vale rikke:

  • Vale tõrge: üks suurimaid tõrkeid, mida me näeme, on see, kui skript ebaõnnestub rakenduse ootamise tõttu valeväljal. Sageli on põhjustatud võrgu latentsusest, andmebaasitaotlustest või paljudest muudest asjadest, mis on seotud rakenduste või veebilehtede funktsionaalsusega.
  • Sihtotstarbelist elementi, mida lehel pole: selline tõrge ilmneb siis, kui oodata elementide kuvamist VÕI renderdatakse brauseris. Rakendus võib olla töövalmis, kuid teatud elemente ei pruugita veel laadida, mis muudab teie testiskripti nurjumiseks.

Kuidas läheneda nendele testi skripti tõrgetele, mis tekkisid ülalkirjeldatud ootamisküsimuste tõttu?

Juhusliku 5–10 sekundi lisamise asemel iga sammu jaoks võite proovida ühte järgmistest suvanditest:

  • Globaalne muutuja - globaalne muutuja on globaalse ulatusega muutuja, mis tähendab, et see on nähtav kogu programmi vältel. Võite proovikirjas skriptis määratleda 3 tüüpi globaalseid muutujaid: lühike, keskmine ja pikk. Kasutage neid muutujaid oma skriptis vastavalt veebirakenduse reageerimise ajale.
  • Oodake lehe laadimist - see loogika ootab enne skripti sammu käivitamist, kuni leht täielikult laaditakse.
  • Oodake elemendi olemasolu - mõnikord juhtub, et veebielementide kuvamine lehel võtab kauem aega, kui sirvite lehtedel või klõpsate nuppe või teete midagi muud. Käsk “WaitForElementPresent” peatab seleeni, kuni sihitud elementi lehel pole. Kui element ilmub lehele, läheb seleen järgmise käsu täitmiseks.

Kataloni stuudio testiskript:

impordi sisemine.GlobalVariable;
importcom.kms.katalon.core.webui.keyword.WebUiBuiltInMärksõnad WebUiBuiltInMärksõnad
import com.kms.katalon.core.model.FailureHandling as FailureHandling
impordi com.kms.katalon.core.testcase.TestCaseFactory kui TestCaseFactory
import com.kms.katalon.core.testobject.ObjectRepository kui ObjectRepository
impordi com.kms.katalon.core.testdata.TestDataFactory kui TestDataFactory
impordi com.kms.katalon.core.testcase.TestCase kui TestCase
impordi com.kms.katalon.core.testdata.TestData kui TestData
impordi com.kms.katalon.core.testobject.TestObject kui TestObject
importcom.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
importcom.kms.katalon.core.mobile.keyword.MobileBuiltInMärksõnad mobiilina
importcom.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import staticcom.kms.katalon.core.testobject.ObjectRepository.findTestObject
import staticcom.kms.katalon.core.testdata.TestDataFactory.findTestData
import staticcom.kms.katalon.core.testcase.TestCaseFactory.findTestCase
'Avage brauser ja liikuge Kataloni saidile'
WebUI.openBrowser ('https://katalon.com/')
'Oodake, kuni Kataloni Stuudio leht laaditakse, kui ootamist kasutatakse globaalse muutujana'
WebUI.waitForPageLoad (GlobalVariable.G_Timeout_Small)
Sisselogimislehele liikumiseks klõpsake nuppu \ 'Logi sisse \'
WebUI.click (leidkeTestObject ('Page_KatalonHomepage / btn_Login'))
'Sisesta kasutajanimi'
WebUI.setText (findTestObject ('Page_KatalonLogin / txt_Username'), kasutajanimi)
'Sisesta parool'
WebUI.setText (findTestObject ('Page_KatalonLogin / txt_Password'), parool)
'Sisselogimiseks klõpsake nuppu' Logi sisse '
WebUI.click (leidkeTestObject ('Page_KatalonLogin / btn_Submit'))
'Oota, kuni ebaõnnestunud sisselogimissõnum on kohal'
WebUI.waitForElementPresent (leidkeTestObject ('Page_KatalonLogin / div_LoginMessage'), GlobalVariable.G_Timeout_Small)

Eespool loodud testiskript, mis näitab globaalse muutuja ja Katalon Studio sisseehitatud märksõnade kasutamist.

# 2) Iframe'i probleemid ja lahenduskäsitlus

Mis on iframe?

See on veebisaidi teise HTML-dokumendi manustatud HTML-i dokumendi raam. Iframe-elementi kasutatakse veebilehe muudest allikatest sisu lisamiseks.

Miks on oluline teada, kuidas iframe'i ümber testida?

Teksti ja objektide kontrollimine iframe-i sees võib osutuda väljakutseks. Isegi kui teie (inimese testija) näete teksti, ei valda automatiseerimistööriistad teksti lihtsalt objekti tuvastamise kaudu. Peate ütlema oma skriptile, kuidas Iframedest mööda minna, ja valima õige Iframe'i, kus tekst ja objekt asuvad.

Iframe'i näited:

# 1) Kataloni Stuudio foorumi iframe

Joonis 1: IFrame tuvastatud ja jäädvustatud

Näete, et Katalon Studio Object Spy valib punases esiletõstetud piirkonnas iframe'i.

Joonis 2: Katalon Studio Object spioon

Katalon Stuudio objektide spioon tuvastas ja hõivas kommentaari iframe'i (joonis 1) vastavalt sellele iframe-i objektide kontrollimiseks.

# 2) JQueryUI-lohistamise näide:

Joonis 3: JQueryUI-Drag and Drop iframe ala valiku kuvamine

Objekti „Lohista mind ümber” saate lohistada iframe'i muudesse piirkondadesse.

Joonis 4: Katalon Studio Object spioon

Katalon Studio Object Spy tuvastas ja hõivas iframe'i, nagu on näidatud ülalpool joonisel 3.

Tüüpiline lahendus aitab teil tuvastada lähte- ja sihtelemente ning õige brauseriseansi kontekstis. Sellised tööriistad nagu Selenium pakuvad selle probleemi teatud määral lahendamiseks lohistamist.

Lahendus Iframesi testimiseks Katalon Studio abil:

Allpool on toodud mõned näpunäited, mis käsitlevad pukseerimisobjektiga rakenduses Iframe Katalon Studio abil.

import com.kms.katalon.core.testobject.ObjectRepository kui ObjectRepository
import com.kms.katalon.core.mobile.keyword.MobileBuiltInMärksõnad mobiilina
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
impordi staatiline com.kms.katalon.core.testobject.ObjectRepository.findTestObject
impordi staatiline com.kms.katalon.core.testdata.TestDataFactory.findTestData
impordi staatiline com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
impordi com.kms.katalon.core.testcase.TestCase kui TestCase
impordi com.kms.katalon.core.testdata.TestData kui TestData
impordi com.kms.katalon.core.testobject.TestObject kui TestObject
import com.kms.katalon.core.webui.keyword.WebUiBuiltInMärksõnad WebUiBuiltInMärksõnad
impordi com.kms.katalon.core.webui.keyword.WebUiBuiltInMärksõnad WebUI-na
impordi sisemine.GlobalVariable kui GlobalVariable
'Avage brauser ja liikuge jQuery kasutajaliidese lehele'
WebUI.openBrowser ('http://jqueryui.com/')
'Maksimeeri praegune brauseriaken'
WebUI.maximizeW window ()
Klõpsake linki \ "Lohista \"
WebUI.click (leidkeTestObject ('Page_jQuery_Homepage / lnk_Draggable'))
'Lülita tutvustuspaneeli iframe'i sisse'
WebUI.switchToFrame (leidkeTestObject ('Page_jQuery_Drag and Drop Example / ifr_Demo Frame'), GlobalVariable.G_Timeout_Small)
'Lohistage iframe teise kohta'
WebUI.dragAndDropByOffset (findTestObject ('Page_jQuery_Drag and Drop Example / div_Frame_Draggable'), 200, 38)
WebUI.closeBrowser ()

Eespool loodud testiskript on mõeldud lohistamise funktsiooniks. Katalon Studio võimaldab redigeerida oma kinnitusetappe skripti vahel, et kontrollida konkreetset objekti iframe'is.

# 3) Hüpikaknad ja lahenduskäsitlus

Mis on hüpikaken?

Hüpik on graafilise kasutajaliidese (GUI) kuvapiirkond, tavaliselt väike aken, mis ilmub visuaalse liidese esiplaanile (“hüpik”).

Kas teil on probleeme hüpikakendega?

Inimesena on teil võimalus reageerida katsetamise ajal toimuvatele toimingutele, nagu näiteks ootamatult ilmnev hüpikaken. Kuid koodina, mille kooder on kirjutanud, saate teha ainult seda, mida teie kood on teile öelnud, ja see piirab teie võimet reageerida ootamatule käitumisele, näiteks hüpikaken.

Allpool on toodud mõned sagedamini kasutatavad hüpiknäited, mis võivad takistada teie veebiautomaatikat:

1) Uus brauseriaken

2) Alert: häirekasti kasutatakse sageli selleks, et veenduda teabe jõudmises kasutajani

3) Kohandatud modaalide dialoog: Modaaldialoog on dialoogiboks / hüpikaken, mis kuvatakse praeguse lehe ülaosas

4) Päris hüpik

Katalon Stuudio abil hüpikakende käsitlemise lahendus:

Allpool on toodud mõned näpunäited hüpikakendega Katalon Stuudio abil suhtlemise kohta.

import com.kms.katalon.core.annotation.SetUp as SetUp
import com.kms.katalon.core.annotation.TearDown kui TearDown
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testobject.ObjectRepository kui ObjectRepository
import com.kms.katalon.core.webui.keyword.WebUiBuiltInMärksõnad WebUiBuiltInMärksõnad
impordi com.kms.katalon.core.webui.keyword.WebUiBuiltInMärksõnad WebUI-na
import com.kms.katalon.core.mobile.keyword.MobileBuiltInMärksõnad mobiilina
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
impordi staatiline com.kms.katalon.core.testobject.ObjectRepository.findTestObject
impordi staatiline com.kms.katalon.core.testdata.TestDataFactory.findTestData
impordi staatiline com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
impordi com.kms.katalon.core.testcase.TestCase kui TestCase
impordi com.kms.katalon.core.testdata.TestData kui TestData
impordi com.kms.katalon.core.testobject.TestObject kui TestObject
importige java.util.Formatter.DateTime kui DateTime
impordi sisemine.GlobalVariable kui GlobalVariable
'Avage brauser ja liikuge kõrgemale saidile'
WebUI.openBrowser ('http://www.elated.com/articles/javascript-tabs/')
'Maksimeeri praegune brauseriaken'
WebUI.maximizeW window ()
'Klõpsake iframe'is nuppu' Tweet '
WebUI.click (leidkeTestObject ('Page_Elated / lnk_Tweet'))
'Lülita aknale, mille pealkiri on \' Jagage linki Twitteris '
WebUI.switchToWindowTitle ('Jagage linki Twitteris')
'Sisesta kasutajanimi'
WebUI.setText (findTestObject ('Lehe_Jagage linki Twitteris / txt_Twitter_Login_Username'), e-post)
'Sisestage parool'
WebUI.setText (leidkeTestObject ('Leht_Jagage linki Twitteris / txt_Twitter_Login_Parool'), parool)

Eespool loodud testiskript, mis näitab Katalon Studio sisseehitatud märksõnade kasutamist.

Näide: switchToWindowTitle sisseehitatud märksõna aitab teil hüpikaknast vabaneda.

XPathi pesitsusprobleemid ja lahenduskäsitlus

Mis on XPATH?

XPath-avaldis on mehhanism XML-dokumendist navigeerimiseks ja sõlmede valimiseks või seda saab kasutada HTML-i elementide leidmiseks.

Siin on näide pesastatud elemendist:

1 
2 10

# 4) Probleemid sügavalt pestud elementide tuvastamisel

Elementi, millele soovite juurde pääseda, on keeruline tuvastada, eriti kui need on sügavalt sisse pestud, nagu ülaltoodud skripti element a näitab.

XPathi käsitsi kirjutamine võib osutuda keerukaks, kui teil pole XPathi kohta piisavalt teadmisi, et saaksite automatiseerimistesti abil sellele konkreetsele a-elemendile juurde pääseda.

Kuidas pesastatud elemente hõlpsalt tuvastada?

  • Kasutage XPathi: XPath on tõhus viis elementide leidmiseks, kui neid ei ole võimalik tuvastada ID, nime või muu atribuudiga JA kui nad on sügavalt sisse pestud. Teekonna käsitsi tuvastamine on keeruline ilma funktsioonide loonud inseneride õige tööriistata või ilma sisendita.
  • Kasutage Katalon Studio: Katalon Studio saab genereerida nutika ja optimeeritud XPathi. See tuvastab elemendi lähima ainulaadselt tuvastatud põhisõlme järgi, nii et te ei pea otsima DOM-puu kaudu.
Joonis 7: Katalon Studio Object Spy

Katalon Studio genereeris teile optimeeritud XPathi automaatselt, kui luurate objekti „Registreeri kohe”.

See on Katalon Studio abil loodud demoprojekt. Eesmärk on aidata teil ülalnimetatud veebi kasutajaliidese testimise automatiseerimisega seotud probleemide lahendamisel. Kataloni stuudio ja demoprojekti saate alla laadida allolevalt lingilt.

  • Tasuta allalaadimise link - Kataloni stuudio
  • Samuti allalaadimine - demoprojekt

Järeldus:

Ehkki veebitestide automatiseerimine võib olla keeruline, loodame, et käesolevas artiklis soovitatud lahendused aitavad teil lahendada tavalisemaid veebitestide automatiseerimise probleeme ja annavad teie testimise automatiseerimisele väärtust.

Vaadake seda praktilist videot, kuidas vältida tavalisi veebi kasutajaliidese automatiseerimise riske

= >> Video vaatamiseks klõpsake siin

Autori kohta: see on Abhishek Kumari külalise artikkel. Ta on KMS Technology tootejuht. Ta ühendab strateegilise ja taktikalise juhtimisoskuse ning tugeva kvalifikatsiooni tarkvaraarenduse, tarkvara testimise, testide automatiseerimise, tootehalduse, uue ettevõtmise algatamise, ettevõtluse arendamise, projektijuhtimise ja üldiste tegevuste alal.

Võite proovida seda tasuta tööriista oma veebi- või mobiilirakenduste automatiseerimise testimiseks ja anda meile teada, kui teil on selle kasutamisel probleeme / küsimusi.

Loe lisaks: Viis peamist väljakutset testimise automatiseerimisel

Allikas: Kuidas lahendada levinumaid veebi kasutajaliidese testimise automatiseerimise probleeme Katalon Studio tasuta tööriistakomplekti abil