getting started with watir
Watir er et akronym for 'Web Application Testing In Ruby'. Lær hvordan du installerer og bruger Watir til at oprette og køre testtilfælde med kodeeksempler:
Watir udtales som vand. Det er en open source-samling af Ruby-biblioteker. Da det er webapplikationstestning i Ruby, bruger det Ruby som sit script-sprog.
Hvad du lærer:
- Installation af Watir
- Sådan bruges Watir: Oprettelse og udførelse af testsager
- Watir eksempler
- Vent og specielle taster
- Test af regression med Watir
- Konklusion
- Anbefalet læsning
Installation af Watir
Man skal have grundlæggende viden om HTML, programmering og Ruby for at bruge Watir. Da Ruby i sig selv er let at bruge og forstå, er det ikke så svært at lære det og bruge Watir.
Watir Installation til Windows
Der er en stor chance for, at du ikke har Ruby installeret på din computer. For at kontrollere det skal du åbne kommandoprompt og skrive > rubin –v og tryk på 'Enter' .
Fig 1: Hvis du ikke har Ruby installeret, får du følgende meddelelse.
Hvis Ruby er installeret, får du dens version med denne kommando. Du kan klikke her for at downloade den nyeste version af Ruby. Vælg den passende version, selve hjemmesiden vil anbefale Ruby 2.4.X som x64- eller x86-installationsprogram.
Fig 2: Når du klikker på denne version, får du følgende vindue.
Fig 3: Klik på knappen Start download, og du får vist følgende vindue.
Da downloadprocessen er sat på pause med det formål at tage et screenshot, er du i stand til at se 'Start' knappen, ellers kan du se 'Pause' knappen her. Gå nu til den placering / mappe, hvor din fil downloades (her som du kan se i figur 2, er placeringen: C: Brugere Ojas Downloads Programmer ).
Fig 4: Udfør filen rubyinstaller-2.4.3-2-x64.exe.
Fig 5: Vælg 'Jeg accepterer licensen' og klik på 'Næste':
Fig 6: Klik på Installer og derefter Udfør.
Ovenstående skærm vil spørge 'Hvilke komponenter skal installeres?' Hvis du ikke er sikker, skal du bare trykke på Enter-tasten og systemet vil installere alle de tre komponenter, dvs. MSYS2 base installation, MSYS2 systemopdatering og MSYS2 og MINGW udviklingsværktøjskæde .
MSYS2-værktøjer er nødvendige for at kompilere C-baserede rubinperler. MSYS2 kan også installeres manuelt.
Fig 7: MSYS2 installeret manuelt
Det tager et par minutter at installere alle komponenterne. Luk bare kommandoprompten og åbn den igen. Skriv derefter> rubin –v og tryk på Enter-tasten. Hvis du får følgende meddelelse, betyder det, at Ruby er installeret med succes.
ruby 2.4.3p205 (2017-12-14 revision 61247) (x64-mingw32)
Software, der er skrevet i Ruby kaldes Ruby Gems. Vi har installeret Ruby, men der er en mulighed for, at vi muligvis ikke har den nyeste version af disse Ruby Gems. Derfor skal vi først kontrollere denne perleversion ved hjælp af kommandoen> gem –v, her fik vi version 2.6.14.
Vi opdaterer det ved hjælp af kommandoen:
> perleopdatering –system
Når det er gjort, får vi beskeden - RubyGems systemsoftware opdateret .
Nu er vi nødt til at installere Selenium-webdriverperle ved hjælp af kommandoen (> perle installer selen-webdriveren –no-ri –no-rdoc).
agile metodologispørgsmål og svar
Det bliver installeret, og du får følgende besked:
Henter: selen-webdriver-3.11.0.gem (100%)
Selenium-webdriver-3.11.0 er installeret
1 perle installeret
** Hvis du får en Windows Firewall-besked, skal du lukke vinduet.
Nu har vi brug for IEDriverServer. Klik på her for at downloade IEDriverServer
Klik på det første link, og vælg derefter den passende version til din computer, dvs. Win32 eller X64.Zip-fil hentes. Følg nedenstående trin for at vide, hvor disse filer skal udpakkes:
Gå til kommandoprompt.
Skriv> PATH
Fig. 8 : Følgende resultat opnås:
Vi udpakker vores filer til PATH C: Ruby24-x64 bin . Uddrag filer til din Ruby-mappesti. Skriv nu irb i kommandoprompten, og tryk på ENTER. IRB står for Interactive Ruby.
> kræv “selen-webdriver”
Du får => sandt
> browser = Selen :: WebDriver.for: internet_explorer
Din IE-browser åbnes, og du får vist meddelelsen: “Dette er den indledende startside for WebDriver-serveren” .
For at åbne websiden www.google.co.in i IE-browseren skriv kommandoen:
> browser. få “https://www.google.co.in/”
Følgende tabel giver dig en liste over drivere til de respektive browsere og deres downloadlink. Følg den samme procedure for de andre drivere såvel som forklaret for IEDriverServer.
Browsernavn | Drivernavn | Download link | |
---|---|---|---|
:klar | : f8 | :venstre | : numpad7 |
Firefox | gecko driver | https://github.com/mozilla/geckodriver/releases | |
Google Chrome | chromedriver | http://chromedriver.storage.googleapis.com/index.html | |
Safari | - | Safari fungerer ikke til Windows |
Watir installation:
- Gå til kommandoprompten.
- Skriv kommando> perle installere watir
- Tryk på Enter-knappen.
Watir bliver installeret. Nu kan du begynde at bruge Watir.
Installation af Watir Til Mac
Trin:
- Installation af Ruby
- Installation af Ruby perle
- Opdaterer Ruby perle
- Installation af Selen WebDriver
- Installation af IE Driver / Gecko Driver / Chrome Driver / safari driver
- Installation af Watir
Det er ikke nødvendigt at installere Ruby på Mac. Derfor har vi allerede dækket det første trin. Det sparer meget tid. Vi vil kontrollere versionen af rubin med kommandoen: $ rubin -v
Her har vi det som - ruby 2.0.0p648 (2015-12-16 revision 53162) (universal.x86_64-darwin16)
Nu vil vi kontrollere versionen af rubin: gem $ gem -v
Her er det - 2.0.14.1. Vi opdaterer vores rubinperler ved hjælp af kommandoen - $ sudo perle opdatering - system. Vi installerer Selenium WebDriver ved hjælp af kommandoen: $ sudo perle installerer selen-webdriver —no-ri —no-rdoc
Der er en mulighed for at få følgende fejl under installation af Selenium webdriver eller opdatering af rubin-perlen.
Fejl :YAML-sikker indlæsning er ikke tilgængelig. Opgrader psych til en version, der understøtter sikker indlæsning (> = 2.0).
For at løse denne fejl skal vi opdatere vores Ruby. For at opdatere Ruby vil vi først kræve Ruby version manager, du kan få det ved hjælp af denne kommando ($ krølle -L https://get.rvm.io | bash -s stabil) . For at installere den nyeste version af Ruby-typen ($ rvm installer rubin - (version)) . Genstart terminalen, når rvm er fuldstændig installeret.
Nu skal vi indstille denne seneste version, som vi vil bruge den. Så skriv ($ rvm brug ruby-2.4.1). For at indstille denne version som standard, skal du bruge følgende kommando: ($ rvm — standard brug 2.4.1). Opdater nu igen rubinperler. Prøv at installere selen-webdriver. Hvis du får en fejl igen, kan du muligvis kræve kommandolinjeudviklerværktøjer og derfor installere den ved hjælp af ($ git —version). Som vi allerede har, har vi ikke installeret det her.
For at installere kromdriveren har vi brug for homebrew ($ ruby -e “$ (curl -fsSL https://raw.github.com/mxcl/homebrew/go/install) ”).
Lad os installere Chrome-driveren. ($ bryginstallation chromedriver).
Prøv denne kode i terminalen:
$irb >require “selenium-webdriver” You will get >true browser=Selenium::WebDriver.for:chrome browser.get “https://www.google.co.in”
Med denne kode skal din browser åbne med den angivne webside. Nu installerer vi Watir: ($ gem installer vand).
Vi er færdige med installationsprocessen. Du kan nu begynde at skrive testskripter.
Sådan bruges Watir: Oprettelse og udførelse af testsager
Du kan skrive testcases eller scripts i Notesblok. Gem denne fil med .rb udvidelse.
Eksempel: Antag at du har oprettet en fil test.rb. For at køre dette script / program skal du dobbeltklikke på denne fil eller følge nedenstående trin. Antag at du har gemt denne fil i C-drevet. Adressen på denne fil er “C Ruby_Programs”.
>cd >cd Ruby_Programs >ruby test.rb
Tryk på ENTER-knappen. For at redigere denne fil skal du højreklikke på denne fil og vælge indstillingen Åbn med.
# 1) Løbende testtilfælde parallelt
Hvis du har skrevet to testsager og gemt dem som test1.rb og test2.rb. For at køre disse to tests parallelt skal du følge disse trin:
Fig.9: Gå til kommandoprompten, og skriv (> gem installation parallel_tests). Du får vist følgende meddelelse.
Kør derefter dine tests.
>parallel_test test1.rb test2.rb
# 2) Oprettelse af Test Suite
Hvis du vil have et par tests til at køre ofte og tilføje dem i testpakken, så er her koden til det.
Kode:
require 'minitest/autorun' require 'C:/Ruby_Programs/test3' # This is the path of your test file which you want to include. require 'C:/Ruby_Programs/test4' # This is the path of your test file which you want to include.
Gem denne fil som testSuite.rb, og kør
C: Ruby_Programs> rubin testSuite.rb
Watir eksempler
Eksempel 1:
Da dette er vores første program, åbner vi bare websiden “Google.co.in” og klikker på Gmail-linket.
Kode:
require 'watir' test_site = 'https://www.google.co.in/' browser = Watir::Browser.new:firefox browser.goto test_site browser.link(:href, 'https://mail.google.com/mail/?tab=wm').click puts “Test Executes” browser.close
Forståelse af koden
# 1) kræver 'watir' # Her fortæller vi, at vi vil kræve, at Watir-biblioteket kører vores program, og det vil blive fyldt med denne erklæring.
# 2) test_site = “https://www.google.co.in/” # Her erklærer vi variablen.
# 3) browser = Watir :: Browser.new: firefox # Her åbner vi Firefox-browseren.
Watir :: Browser.new: internet_explorer # For Internet Explorer
Watir :: Browser.new: safari # Til Safari
# 4) browser.goto test_site # Eller browser.goto “https://www.google.co.in/” # goto-kommando bruges til at navigere til det angivne websted.
# 5) browser.link (: href, “https://mail.google.com/mail/?tab=wm”).click # Her klikker vi på Gmail-linket. Hyperlinket kaldes et link i koden, og vi bruger dets “href” egenskab til at lokalisere dette hyperlink.
# 6) sætter 'Test udført' # Denne linje skriver strengen 'Test udført' på kommandoprompten.
# 7) browser.close # Denne linje lukker browseren.
Hvis vi ikke nævner browsernavne, så skriver vi kun denne linje i vores kode (Watir :: Browser.new), Watir åbner Chrome-browseren, da Chrome er standardbrowseren for Watir.
Eksempel 2:
I dette eksempel åbner vi websiden www.google.co.in. Derefter søger vi i teksten “Manuel testning”. Dernæst vender vi tilbage til hjemmesiden og klikker på linket 'Gmail'.
Kode:
require 'watir' browser=Watir::Browser.new:firefox browser.goto 'https://www.google.co.in' if browser.title.include? 'Google' browser.text_field(:class, 'gsfi').set 'Manual Testing' browser.button(:name, 'btnK').click if browser.text.include? 'Manual Testing is a process of finding out the defects' puts 'Title of webpage '+ browser.title browser.img(:src, “/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png').click browser.link(:class, 'gb_P').click else puts 'Wrong result found' end else puts 'Either you are on wrong page or page not found' end puts 'Now title of webpage '+ browser.title browser.close puts 'Test Executed Successfully'
Forståelse af koden:
# 1) browser.goto https://www.google.co.in - Her navigerer vi til det angivne websted.
# 2) hvis browser.title.include? “Google” - Her kontrollerer vi titlen på websiden, om den er som forventet eller ej. I den anden del af dette 'Hvis' sætter vi denne erklæring 'Enten er du på den forkerte side eller siden blev ikke fundet'. Denne erklæring vises på kommandoprompten.
# 3) browser.text_field (: klasse, 'gsfi'). Sæt 'Manuel testning' - Her indtaster vi teksten 'Manuel testning' i søgningens tekstfelt.
# 4) browser.button (: navn, 'btnK'). Klik - Her klikker vi på knappen 'Google-søgning'.
# 5) hvis browser.text.include? “Manuel testning er en proces til at finde ud af manglerne” - Nu kontrollerer vi teksten på websiden for at kontrollere, om vi har det rigtige søgeresultat. I 'Else' -delen af denne 'Hvis' udsagn sætter vi udsagnet 'Forkert resultat fundet'.
# 6) sætter 'Titel på webside' + browser.title - Her viser vi titlen på websiden på kommandoprompten.
# 7) browser.img (: src, “/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png”).click - Her klikker vi på billedet for at gå tilbage til hjemmesiden.
# 8) browser.link (: klasse, “gb_P”). Klik - Her klikker vi på Gmail-linket.
# 9) sætter “Nu titlen på websiden” + browser.title - Nu igen sætter vi titlen på websiden på kommandoprompten. Det skal være titlen på Gmail-siden.
# 10) browser.close - Her lukker vi browseren.
# 11) sætter 'Test udført med succes'. Bare for at sikre, at alle trin udføres korrekt, sætter vi denne erklæring på kommandoprompten.
Eksempel 3:
I dette eksempel vil vi forsøge at bruge maksimale Watir-kommandoer, så du forstår, hvordan du bruger dem. Vi vil også se dens beskrivelse sammen med koden.
Kode med kommentarer:
require 'watir' browser=Watir::Browser.new:chrome browser.goto “http://watir.com/examples/forms_with_input_elements.html” #Here we will see how to insert data in text field. t1=browser.text_field id: 'new_user_first_name' t1.set 'Testing' t2=browser.text_field id: 'new_user_last_name' t2.set “testdata' #Here we will see how to select data from select list. sl=browser.select_list id: 'new_user_languages' sl.select 'English' sl.selected_options #Here we will see how to select radio button. rd=browser.radio value: 'no' rd.set chk=browser.checkbox value: 'cars' chk.set #Here we will see how to click button. btn=browser.button name: 'new_user_button_2' btn.click #This is an Explicit wait statement. This statement will make the program wait #until the particular event happens. Watir::Wait.until {browser.text.include? 'submit'} # Here I used this if statement because this is a test webpage and nothing is #happening after clicking the button. So just to show that button is clicked I used If #statement. if browser.text.include? 'submit' puts 'Data Submitted' else puts 'Data not yet submitted' end # This is an implicit wait statement. It will make your program to wait for 30 seconds compulsory. browser.driver.manage.timeouts.implicit_wait = 30 # You can send special keys to browser. There is a big list of these keys. browser.send_keys :page_up #Here we are taking the screenshot and saving it in a png file. browser.screenshot.save ‘screenshot1.png' browser.send_keys :page_down browser.screenshot.save ‘screenshot2.png' puts 'TestCase Executed' browser.close
Vent og specielle taster
Der er to typer ventetilkendegivelser, der understøttes af Watir. Først er en eksplicit ventetid, og den anden er en implicit ventetid. Vi har set syntaksen for begge i ovenstående kode, dvs. eksempel 3.
Særlige taster understøttet af Watir: Først ser vi syntaksen for brug af disse specielle taster.
- browser.send_keys: page_up # Vi har brugt dette i vores kode.
- browser.element.send_keys (: kontrol, ‘c’),: annuller
- browser.element.click (: enter,: space)
Følgende er en liste over de specielle taster, der understøttes af Watir:
:gå ind | :f1 | :styring | : numpad0 |
:flytte | : f2 | :alt | : numpad1 |
:nul | : f3 | :pause | : numpad2 |
:afbestille | : f4 | :flugt | : numpad3 |
:Hjælp | : f5 | :plads | : numpad4 |
: backspace | : f6 | :ende | : numpad5 |
: fane | : f7 | :hjem | : numpad6 |
:Vend tilbage | : f9 | :op | : numpad8 |
:venstre skift | : f10 | :ret | : numpad9 |
: venstre_kontrol | :f11 | :ned | :formere sig |
:side op | : f12 | : indsæt | :tilføje |
:side ned | : meta | : slet | :trække fra |
: pil_venstre | :kommando | :lige med | : del |
Test af regression med Watir
I regressionstest kontrollerer vi, om ændringerne har påvirket den uændrede del eller ej.
Til det er vi nødt til at køre vores tidligere testsager. Regressionstestning vil være tidskrævende, hvis det udføres manuelt. Watir er et af de bedste værktøjer til regressionstest, da det er nemt at skrive, vedligeholde / opdatere og udføre testsager.
Konklusion
Afslutningsvis kan vi sige, at Watir er let at lære værktøjet. Det er et open source-værktøj, derfor er det omkostningseffektivt og let at bruge. Selvom det ikke har så mange fordele i forhold til Selenium WebDriver, er det et bedre værktøj sammenlignet med mange andre værktøjer.
Det understøtter programmering, derfor meget bedre end andre optagelses- og afspilningsværktøjer. Det er faktisk et af de bedste værktøjer til regressionstest.
Har du prøvet Watir-værktøjet?
Anbefalet læsning
- 30+ bedste selen-tutorials: Lær selen med rigtige eksempler
- ChromeDriver Selen Tutorial: Selen Webdriver Tests på Chrome
- 180+ eksempler på testtilfælde til webapplikation (prøvecheckliste)
- Top 30+ værktøjer til test af webapplikationer i 2021 (omfattende liste)
- Test af webapplikation komplet guide (Sådan testes et websted)
- Top 10 mest populære regressionstestværktøjer i 2021
- Hvad er regressionstest? Definition, værktøjer, metode og eksempel
- Bedste softwaretestværktøjer 2021 (QA Test Automation Tools)