getting started with watir
Watir, 'Ruby'de Web Uygulaması Testi' nin Kısaltmasıdır. Kod Örnekleriyle Test Durumları Oluşturmak ve Çalıştırmak için Watir'i Nasıl Yükleyeceğinizi ve Kullanacağınızı Öğrenin:
Watir, Su olarak telaffuz edilir. Ruby kitaplıklarının açık kaynaklı bir koleksiyonudur. Ruby'de Web Uygulama Testi olduğundan, komut dosyası dili olarak Ruby'yi kullanır.
Ne öğreneceksin:
- Watir Kurulumu
- Watir Nasıl Kullanılır: Test Durumlarının Oluşturulması ve Yürütülmesi
- Watir Örnekleri
- Bekler ve Özel Tuşlar
- Watir ile Regresyon Testi
- Sonuç
- Önerilen Kaynaklar
Watir Kurulumu
Watir'i kullanmak için temel HTML, Programlama ve Ruby bilgisine sahip olmak gerekir. Bununla birlikte, Ruby'nin kullanımı ve anlaşılması kolay olduğundan, onu öğrenmek ve Watir'i kullanmak o kadar da zor değil.
Windows için Watir Kurulumu
Bilgisayarınızda Ruby'nin kurulu olmaması büyük bir olasılıktır. Bunu kontrol etmek için Komut İstemi'ni açın ve yazın > ruby –v ve 'Enter' tuşuna basın .
Şekil 1: Ruby kurulu değilse, aşağıdaki mesajı alacaksınız.

Ruby kuruluysa, versiyonunu bu komutla alacaksınız. Tıklayabilirsiniz İşte Ruby'nin en son sürümünü indirmek için. Uygun sürümü seçin, web sitesi Ruby'yi önerecektir 2.4.X x64 veya x86 yükleyici olarak.
Şekil 2: Bu sürüme tıkladığınızda aşağıdaki pencereyi göreceksiniz.

Şekil 3: İndirmeyi Başlat düğmesine tıkladığınızda aşağıdaki pencereyi göreceksiniz.

İndirme işlemi, ekran görüntüsü almak amacıyla duraklatıldığından, 'Başlat' düğmesi yoksa, 'Duraklat' burayı tıklayın. Şimdi dosyanızın indirildiği konuma / klasöre gidin (burada Şekil 2'de görebileceğiniz gibi, konum: C: Kullanıcılar Ojas Karşıdan Yüklemeler Programlar ).
Şekil 4: rubyinstaller-2.4.3-2-x64.exe dosyasını çalıştırın.

mkv dosyası nasıl oynatılır
Şekil 5: 'Lisansı kabul ediyorum' u seçin ve 'İleri' yi tıklayın:

Şekil 6: Yükle'ye ve ardından Bitir'e tıklayın.

Yukarıdaki ekranda 'Hangi bileşenler kurulacak?' Sorulacaktır. Emin değilseniz, sadece Enter tuşuna basın ve sistem üç bileşeni de yükleyecektir; MSYS2 temel kurulumu, MSYS2 sistem güncellemesi ve MSYS2 ve MINGW geliştirme araç zinciri .
MSYS2 araçları, C tabanlı ruby gems derlemek için gereklidir. MSYS2 ayrıca manuel olarak da kurulabilir.
Şekil 7: MSYS2 Manuel Olarak Yüklendi

Tüm bileşenlerin yüklenmesi birkaç dakika sürecektir. Komut İstemi'ni kapatın ve yeniden açın. Ardından> ruby –v yazın ve Enter tuşuna basın. Aşağıdaki mesajı alırsanız, Ruby'nin başarıyla kurulduğu anlamına gelir.
ruby 2.4.3p205 (2017-12-14 revizyon 61247) (x64-mingw32)
Ruby'de yazılan yazılıma Ruby Gems denir. Ruby'yi kurduk ama bu Ruby Mücevherlerinin en son sürümüne sahip olmama ihtimalimiz var. Bu nedenle, önce bu gem versiyonunu> gem –v komutunu kullanarak kontrol etmemiz gerekiyor, burada 2.6.14 versiyonunu elde ettik.
Şu komutu kullanarak güncelleyeceğiz:
> gem güncelleme –sistem
Tamamlandığında mesajı alacağız - RubyGems sistem yazılımı güncellendi .
Şimdi Selenium web sürücüsü gem'i kullanarak yüklememiz gerekiyor. (> gem selenium-web sürücüsünü –no-ri –no-rdoc'u yükle) komutu.
Yüklenecek ve aşağıdaki mesajı alacaksınız:
Getirme: selenyum-web sürücüsü-3.11.0.gem (% 100)
Selenium-web sürücüsü-3.11.0 başarıyla yüklendi
1 mücevher yüklü
** Herhangi bir Windows Güvenlik Duvarı mesajı alırsanız, o pencereyi kapatın.
Şimdi IEDriverServer'a ihtiyacımız var. Tıklayın İşte IEDriverServer'ı indirmek için
İlk bağlantıya tıklayın ve ardından bilgisayarınız için uygun sürümü seçin, yani Win32 veya X64.Zip dosyası indirilecektir. Bu dosyaların nereye çıkarılacağını öğrenmek için aşağıdaki adımları izleyin:
Komut istemine gidin.
Yazım> PATH
Şekil 8 : Aşağıdaki sonuç elde edilecektir:

Dosyalarımızı PATH konumuna çıkaracağız C: Ruby24-x64 bin . Dosyaları Ruby klasör yolunuza çıkarın. Şimdi komut istemine irb yazın ve ENTER tuşuna basın. IRB, Interactive Ruby'nin kısaltmasıdır.
> 'selenium-webdriver' gerektirir
=> Doğru olacaksın
> browser = Selenium :: WebDriver.for: internet_explorer
IE tarayıcınız açılacak ve şu mesajı göreceksiniz: 'Bu, WebDriver sunucusu için ilk başlangıç sayfasıdır' .
IE tarayıcısında www.google.co.in web sayfasını açmak için şu komutu yazın:
> tarayıcı. 'https://www.google.co.in/' edinin
Aşağıdaki tablo size ilgili tarayıcıların sürücülerinin bir listesini ve bunların indirme bağlantılarını verecektir. Diğer sürücüler için ve IEDriverServer için açıklanan aynı prosedürü izleyin.
| Tarayıcı Adı | Sürücü adı | İndirme: {link | |
|---|---|---|---|
| :açık | : f8 | :ayrıldı | : numpad7 |
| Firefox | geko sürücüsü | https://github.com/mozilla/geckodriver/releases | |
| Google Chrome | krom sürücü | http://chromedriver.storage.googleapis.com/index.html | |
| Safari | - | Safari, Windows için çalışmıyor |
Watir Kurulumu:
- Komut istemine gidin.
- Komut yazın> gem install watir
- Enter düğmesine basın.
Watir yüklenecek. Şimdi Watir'i kullanmaya başlayabilirsiniz.
Watir Kurulumu Mac için
Adımlar:
- Ruby'yi Kurmak
- Ruby gem kurulumu
- Ruby gem'i güncelleme
- Selenium WebDriver Kurulumu
- IE Sürücüsü / Gecko Sürücüsü / Chrome Sürücüsü / safari sürücüsünü yükleme
- Watir Kuruluyor
Mac'e Ruby yüklemenize gerek yoktur. Bu nedenle ilk adımı zaten ele aldık. Çok zaman kazandıracak. Ruby'nin sürümünü şu komutla kontrol edeceğiz: $ yakut -v
Burada, bizde - ruby 2.0.0p648 (2015-12-16 revizyon 53162) (universal.x86_64-darwin16)
Şimdi Ruby'nin versiyonunu kontrol edeceğiz: gem $ gem -v
İşte burada - 2.0.14.1. Yakut mücevherlerimizi şu komutu kullanarak güncelleyeceğiz: $ sudo gem update —system. Selenium WebDriver'ı şu komutu kullanarak kuracağız: $ sudo gem install selenium-webdriver —no-ri —no-rdoc
Selenium web sürücüsünü kurarken veya yakut taşını güncellerken aşağıdaki hatayı alma olasılığı vardır.
Hata :YAML güvenli yükleme mevcut değil. Lütfen psych dosyasını güvenli yüklemeyi destekleyen bir sürüme yükseltin (> = 2.0).
Bu hatayı çözmek için Ruby'mizi güncellememiz gerekiyor. Ruby'yi güncellemek için önce Ruby sürüm yöneticisine ihtiyacımız var, bu komutu kullanarak bunu elde edebilirsiniz ($ curl -L https://get.rvm.io | bash kararlı) . Ruby türünün en son sürümünü yüklemek için ($ rvm yakut yükle - (sürüm)) . Rvm tamamen kurulduktan sonra terminali yeniden başlatın.
Şimdi kullanmak istediğimiz bu son sürümü ayarlamamız gerekiyor. Bu nedenle ($ rvm use ruby-2.4.1) yazın. Bu sürümü varsayılan sürüm olarak ayarlamak için aşağıdaki komutu kullanın: ($ rvm —default 2.4.1 kullanın). Şimdi yine yakut mücevherlerini güncelleyin. Selenium-webdriver yüklemeyi deneyin. Tekrar bir hata alırsanız, komut satırı geliştirici araçlarına ihtiyaç duyabilirsiniz, dolayısıyla ($ git —version) kullanarak kurun. Zaten sahip olduğumuz gibi, buraya kurmadık.
Chrome sürücüsünü kurmak için homebrew ($ ruby -e “$ (curl -fsSL https://raw.github.com/mxcl/homebrew/go/install) ”).
Chrome sürücüsünü yükleyelim. ($ brew krom sürücüsünü yükleyin).
Bu kodu terminalde deneyin:
$irb >require “selenium-webdriver” You will get >true browser=Selenium::WebDriver.for:chrome browser.get “https://www.google.co.in”Bu kod ile tarayıcınız belirtilen web sayfası ile açılmalıdır. Şimdi Watir'i kuracağız: ($ gem kurulum suyu).
Kurulum sürecini bitirdik. Artık test komut dosyaları yazmaya başlayabilirsiniz.
Watir Nasıl Kullanılır: Test Durumlarının Oluşturulması ve Yürütülmesi
Test senaryolarını veya komut dosyalarını Not Defteri'nde yazabilirsiniz. Bu dosyayı .rb uzantısıyla kaydedin.
Misal: Bir dosya test.rb oluşturduğunuzu varsayalım. Bu betiği / programı çalıştırmak için bu dosyaya çift tıklayın veya aşağıda listelenen adımları izleyin. Bu dosyayı C sürücüsüne kaydettiğinizi varsayalım. Bu dosyanın adresi 'C Ruby_Programs'.
>cd >cd Ruby_Programs >ruby test.rbENTER düğmesine basın. Bu dosyayı düzenlemek için bu dosyaya sağ tıklayın ve Birlikte Aç seçeneğini seçin.
# 1) Test Durumlarını Paralel Olarak Çalıştırma
İki test senaryosu yazıp bunları test1.rb ve test2.rb olarak kaydettiyseniz. Bu iki testi paralel olarak çalıştırmak için şu adımları izlemeniz gerekir:
Şekil 9: Komut istemine gidin ve yazın (> gem paralel testler kurulumu). Aşağıdaki mesajı göreceksiniz.

Ardından testlerinizi çalıştırın.
>parallel_test test1.rb test2.rb# 2) Test Paketi Oluşturma
Birkaç testin sık sık çalışmasını ve bunları test paketine eklemesini istiyorsanız, işte bunun kodu.
Kod:
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. Bu dosyayı testSuite.rb olarak kaydedin ve çalıştırın
C: Ruby_Programs> ruby testSuite.rb
Watir Örnekleri
Örnek 1:
Bu bizim ilk programımız olduğu için sadece “Google.co.in” web sayfasını açacağız ve Gmail bağlantısını tıklayacağız.
Kod:
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 Kodu Anlamak
# 1) 'watir' gerektirir # Burada, programımızı çalıştırmak için Watir kitaplığına ihtiyaç duyacağımızı ve bu ifade ile yükleneceğini söylüyoruz.
# 2) test_site = “https://www.google.co.in/” # Burada değişkeni açıklıyoruz.
# 3) browser = Watir :: Browser.new: firefox # Burada Firefox tarayıcısını açıyoruz.
Watir :: Browser.new: internet_explorer # Internet Explorer için
Watir :: Browser.new: safari # Safari için
# 4) browser.goto test_site # Veya browser.goto 'https://www.google.co.in/' # goto komutu belirtilen web sitesine gitmek için kullanılır.
# 5) browser.link (: href, “https://mail.google.com/mail/?tab=wm”).click # Burada Gmail bağlantısını tıklıyoruz. Köprü, kodda bir bağlantı olarak anılır ve bu köprüyü bulmak için onun 'href' özelliğini kullanıyoruz.
# 6) 'Test Yürütüldü' koyar # Bu satır, komut isteminde 'Test Yürütüldü' dizesini yazar.
# 7) browser.close # Bu satır tarayıcıyı kapatacaktır.
Tarayıcı adlarından bahsetmezsek, kodumuza yalnızca bu satırı yazacağız (Watir :: Browser.new), Watir, Watir için varsayılan tarayıcı olduğu için Chrome tarayıcısını açacaktır.
Örnek 2:
Bu örnekte, www.google.co.in web sayfasını açacağız. Ardından 'Manuel Test' metnini arayacağız. Ardından, ana sayfaya geri döneceğiz ve 'Gmail' bağlantısını tıklayacağız.
Kod:
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' Kodu Anlamak:
# 1) browser.goto https://www.google.co.in - Burada belirtilen web sitesine gidiyoruz.
# 2) browser.title.include? 'Google' - Burada web sayfasının başlığını beklendiği gibi kontrol ediyoruz. Bu 'Eğer' nin diğer kısmında 'Ya yanlış sayfadasınız ya da sayfa bulunamadı' ifadesini koyuyoruz. Bu ifade, komut isteminde görüntülenecektir.
# 3) browser.text_field (: class, 'gsfi'). Set 'Manual Testing' - Burada, arama metin kutusuna 'Manuel Test' metnini giriyoruz.
# 4) browser.button (: name, 'btnK') tıklayın - Burada 'Google Arama' düğmesini tıklıyoruz.
# 5) browser.text.include? 'Manuel Test, kusurları bulma sürecidir' - Şimdi, doğru arama sonucunu alıp almadığımızı doğrulamak için web sayfasındaki metni kontrol ediyoruz. Bu 'Eğer' ifadesinin 'Else' bölümünde 'Yanlış sonuç bulundu' ifadesini koyuyoruz.
# 6) 'Web sayfasının başlığı' + browser.title - Burada komut isteminde web sayfasının başlığını görüntülüyoruz.
# 7) browser.img (: src, “/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png”).click - Ana sayfaya geri dönmek için görseli tıklıyoruz.
# 8) browser.link (: class, 'gb_P') tıklayın - Burada Gmail bağlantısını tıklıyoruz.
# 9) 'Şimdi web sayfasının başlığı' + browser.title - Şimdi yine web sayfasının başlığını komut istemine koyuyoruz. Gmail sayfasının başlığı olmalıdır.
# 10) browser.close - Burada tarayıcıyı kapatıyoruz.
# 11) 'Test Başarıyla Yürütüldü' ifadesini koyar. Sadece tüm adımların doğru şekilde yürütüldüğünden emin olmak için bu ifadeyi komut istemine koyuyoruz.
Örnek 3:
Bu örnekte, nasıl kullanılacağını anlayabilmeniz için maksimum Watir komutunu kullanmaya çalışacağız. Kodla birlikte açıklamasını da göreceğiz.
Yorumlu Kod:
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 Bekler ve Özel Tuşlar
Watir tarafından desteklenen iki tür bekleme ifadesi vardır. Birincisi açık bir beklemedir ve ikincisi örtük bir beklemedir. Her ikisi için de sözdizimini yukarıdaki kodda, yani Örnek 3'te gördük.
Watir tarafından desteklenen Özel Tuşlar: İlk olarak, bu özel anahtarları kullanmak için sözdizimini göreceğiz.
- browser.send_keys: page_up # Bunu kodumuzda kullandık.
- browser.element.send_keys (: control, 'c'),: iptal et
- browser.element.click (: enter,: boşluk)
Aşağıda Watir tarafından desteklenen özel tuşların bir listesi verilmiştir:
| :giriş | : f1 | :kontrol | : numpad0 |
| :vardiya | : f2 | : her şey | : numpad1 |
| :boş | : f3 | :Duraklat | : numpad2 |
| :iptal etmek | : f4 | :kaçış | : numpad3 |
| :Yardım Edin | : f5 | :Uzay | : numpad4 |
| : geri tuşu | : f6 | :son | : numpad5 |
| : sekme | : f7 | :ev | : sayısal tuş takımı6 |
| :dönüş | : f9 | : yukarı | : numpad8 |
| :Sol shift | : f10 | :sağ | : numpad9 |
| :sol kontrol | : f11 | :aşağı | :çarpmak |
| :sayfa yukarı | : f12 | : ekle | :Ekle |
| : page_down | :meta | : sil | : çıkarmak |
| : arrow_left | : komut | : eşittir | : bölmek |
Watir ile Regresyon Testi
Regresyon testinde, değişikliklerin değişmeyen kısmı etkileyip etkilemediğini kontrol ederiz.
Bunun için önceki test senaryolarımızı yeniden çalıştırmamız gerekiyor. Manuel olarak yapılırsa, regresyon testi zaman alıcı olacaktır. Watir, test durumlarını yazmak, sürdürmek / güncellemek ve yürütmek kolay olduğu için en iyi regresyon test araçlarından biridir.
Sonuç
Sonuç olarak, Watir'in aracı öğrenmesinin kolay olduğunu söyleyebiliriz. Açık kaynaklı bir araçtır, bu nedenle uygun maliyetli ve kullanımı kolaydır. Selenium WebDriver'a göre çok fazla avantajı olmamasına rağmen, diğer birçok araçla karşılaştırıldığında daha iyi bir araçtır.
Programlamayı destekler, dolayısıyla diğer kayıt ve oynatma araçlarından çok daha iyidir. Gerçekten de en iyi regresyon test araçlarından biridir.
Watir aracını denediniz mi?
Önerilen Kaynaklar
- 30+ En İyi Selenyum Öğreticisi: Gerçek Örneklerle Selenyum Öğrenin
- ChromeDriver Selenium Eğitimi: Chrome'da Selenium Webdriver Testleri
- 180+ Web Uygulaması Test Örneği Test Vakası (Örnek Kontrol Listesi)
- 2021'de En İyi 30'dan Fazla Web Uygulama Test Aracı (Kapsamlı Liste)
- Web Uygulama Testi Tam Kılavuzu (Bir Web Sitesi Nasıl Test Edilir)
- 2021'de En Popüler 10 Regresyon Testi Aracı
- Regresyon Testi nedir? Tanım, Araçlar, Yöntem ve Örnek
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)