geb tutorial browser automation testing using geb tool
Geb ('jeb' olarak telaffuz edilir), tarayıcı otomasyonunun zorluklarına cevaptır. Web üzerinden otomasyon testi yapmak için çok etkili bir araçtır.
Geb, tarayıcı otomasyonunu (başlangıçta web testi için) daha az karmaşık, sorunsuz ve daha verimli hale getirme ihtiyacından doğdu. Programlama, web'den veri çıkarma ve manuel web görevlerini otomatikleştirme için kullanılabilir. Ek olarak, Geb bir tarayıcılar arası otomasyon testi için bir araç.
Geb, web tarayıcıları ve web içeriği arasındaki işbirliğini otomatikleştirmek için geliştirici odaklı bir araç olarak işlev görür. WebDriver'ı Groovy dilinde çalıştırır.
Geb test aracının güzelliği, Groovy programlama dili jQuery'nin en iyi özelliklerini bir araya getirmesidir. WebDriver ve güçlü, sağlam ve dinamik içerik denetimi, seçimi ve web etkileşimi sağlamak için Sayfa Nesnesi Modelleme.
Geb'i diğerlerine kıyasla benzersiz kılan nedir otomasyon test araçları piyasada mevcut sözdizimidir. Normalde HTML sayfalarını kolayca sorgulamak için kullanılan jQuery'ye benzer. İkinci olarak, Sayfa Nesnesi kalıbı için entegre desteğe sahiptir.
Geb, aşağıdakiler de dahil olmak üzere yaygın olarak kullanılan ve yaygın bazı test platformlarıyla entegrasyon yoluyla işlevsel web testi için büyük yardım sağlar: Spock , Taneler, JUnit , Salatalık-JVM , TestNG, vb. Geb'in Grails çerçevesiyle nasıl entegre edilebileceğini bu makalenin ilerleyen kısımlarında göreceğiz.
Ne öğreneceksin:
- Pratik Kullanımlar
- Avantajlar
- Önkoşullar
- Başlarken
- Örneklerle Öğrenin
- Geb komut dosyası aracılığıyla veritabanı doğrulama testi:
- Geb'de Birkaç Yararlı Yöntem
- Bu aracın dezavantajları
- Daha fazla kaynak:
- Sonuç
- Önerilen Kaynaklar
Pratik Kullanımlar
Bu Geb eğitiminin girişinde daha önce tartışıldığı gibi, kullanılabilir:
- Chrome, Firefox, Internet explorer vb. Gibi birden çok tarayıcıda bir Test aracı olarak (Aynı otomasyon komut dosyası, uygulamanızın web testini gerçekleştirmek için farklı tarayıcılarda çalıştırılabilir.)
- Kullanıcı kabulünü ve işlevsel test durumlarını otomatikleştirmek için.
- Herhangi bir uygulamanın işlevsel veya web testi için oluşturulan test senaryolarını otomatikleştirmek için.
- UI (Kullanıcı Arayüzü) doğrulaması ve DB (Veritabanı) doğrulaması dahil olmak üzere uçtan uca testi kapsamak için.
- Bir web tarayıcısı ile web içeriği arasındaki etkileşimi otomatikleştirmek için bir Geliştirici aracı olarak.
Avantajlar
- Geb ücretsiz, açık kaynaklı bir araçtır. Apache Lisansı, Sürüm 2.0 kapsamında lisanslanmıştır.
- Web testini otomatikleştirmek kolay ve basit.
- Geb’in Page Objects ve Groovy DSL, testleri neredeyse düz İngilizce gibi göründükleri ölçüde okunabilir hale getiriyor.
- Testleri hızlı çalıştırır ve böylece test süresinden ve maliyetinden tasarruf sağlar.
- IE, Firefox, Chrome ve HTMLUnit gibi farklı tarayıcılarla uyumludur.
- Testleri gerçek tarayıcıda yürütür. Sanki kullanıcının göreceği gerçek ortamda test ediyormuş gibi.
- Regresyon testini kolaylaştırır. Uygulamadaki bir düzeltme veya değişiklikten sonra mevcut herhangi bir işlevselliğin bozulup bozulmadığını kontrol etmek için Geb otomatik test senaryolarını çalıştırabilirsiniz.
- Geb'i otomasyon testi için kullanırken, uygulamanızda herhangi bir UI değişikliği varsa minimum test kodu değişikliği gerekir. Böylece, kodun çabasını ve tekrarını azaltır.
- Tek bir komut dosyası içinde 360 derece (veya maksimum) test kapsamına yardımcı olur.
Önkoşullar
Başlamadan önce yazılımı indirip yüklememiz gerekiyor. Merkezi Maven deposunda, Geb tek bir Geb çekirdekli kavanoz olarak mevcuttur. Buraya Tıkla makinenize kurmak için.
Geb'in makinenizde çalışmasını sağlamak için yukarıdaki Geb çekirdekli kavanoza, bir web sürücüsü uygulamasına ve selenyum destek kavanozuna ihtiyacınız olacak.
Aleti kurmak ve çalıştırmak için lütfen Geb kitabının aşağıdaki kurulum ve kullanım bölümüne bakın => Geb kurulum ve kullanım kılavuzu .
Başlarken
Daha önce tartışıldığı gibi, Geb farklı test çerçeveleriyle entegre edilebilir.
Seçtiğiniz çerçeveye bağlı olarak, ilgili eklentiyi yüklemeniz gerekecektir.
Örneğin : Taneler ( Taneler , otomasyon test komut dosyaları yazmak ve test senaryolarını otomatikleştirmek için web uygulamaları için çok ünlü bir çerçevedir. Grails işlevsel testiniz için Geb'i kullanmak isterseniz, ilgili eklentiyi buradan yükleyebilirsiniz. grails-geb eklentisi . Bu eklenti, baseUrl ve raporlarDir yapılandırma öğeleri.
Örneklerle Öğrenin
Şimdi bir test senaryosunu otomatikleştirmek için bir Geb betiğinin nasıl yazılacağını göstereyim.
Aşağıdaki test senaryosunu alın:
Test Senaryosu Kimliği | Yazılım testi yardım-1 | Test Vakası Kimliği | Yazılım testi yardımı -1A |
çıkış | |||
Test Durumu Açıklaması | Softwaretestinghelp.com Sayfasını arama motoru aracılığıyla doğrulayın | Otomasyon Komut Dosyası Durumu | Devam etmekte |
Ön koşul | 1 Tarayıcı 2. arama motoru 3. web sitesi - Softwaretestinghelp.com mevcut olmalıdır | Ön Koşul Komut Dosyası | NA |
Yürütme adımları şunlardır:
Google arama motorunu başlatın |
Arama motorunun başarıyla yüklenip yüklenmediğini doğrulayın |
Arama kutusuna softwaretestinghelp.com yazın |
Sonuçların yüklenmesini bekleyin |
Sonuçlardaki ilk bağlantının softwaretestinghelp.com'a yönlendirip yönlendirmediğini doğrulayın |
Varsa, bağlantıyı açın. |
Web sitesi açılıncaya kadar bekleyin. |
İşte yukarıdaki senaryo için Geb otomasyon aracı komut dosyası:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
Şimdi yukarıdaki örneğe başvurarak kendi başınıza basit bir GEB komut dosyası yazmayı deneyebilirsiniz.
Geb komut dosyası aracılığıyla veritabanı doğrulama testi:
Herhangi bir web otomasyon testi üç bölüme ayrılmıştır:
- UI Doğrulaması - Otomasyon test senaryosu çalıştırılmadan önce ve sonra kullanıcı arayüzüne (ön uç) yansıtılan verilerin doğrulanması.
- DB Doğrulaması - Otomasyon testi senaryosu çalıştırılmadan önce ve sonra veritabanında (arka uç) yansıtılan verilerin doğrulanması.
- Gerçek Test akışı / Komut dosyası akışı.
Bir test senaryosunu otomatikleştirmek için yazılan Geb komut dosyası, yukarıdaki üç bölümün tümü için kodu içerebilir.
Yukarıdaki örnek bölümündeki Geb komut dosyası, test akışını ve UI doğrulamasını otomatikleştirmek içindi. Benzer şekilde, veritabanı doğrulaması için bir test komut dosyası yazabilirsiniz.
Herhangi bir DB doğrulama testi için, aşağıdaki şablonu her zaman kodunuzun ana hatları olarak kullanabilirsiniz:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Geb'de Birkaç Yararlı Yöntem
- Test durumu senaryonuz birden fazla sekme ve pencere içerdiğinde: Yeni pencereler veya sekmeler açan bir uygulamayla karşılaştığınızda, Örneğin hedef özellik kümesine sahip bir bağlantıya tıkladığınızda, withWindow () ve withNewWindow () diğer pencereler bağlamında kod çalıştırma yöntemleri.
- Tahrik yöntemi: Browser sınıfı statik bir yöntem içerir - sürücü () . Bu yöntem Geb komut dosyası oluşturmaya ekstra kolaylık sağlar. Tüm üst düzey yöntem çağrıları ve özellik erişimlerinin tarayıcıya aykırı olduğu ima edilir.
- İstekte bulunma: Tarayıcı örnekleri bir baseUrl tüm göreli URL'leri çözmek için kullanılan özellik. Genelde en çok temel URL'lerinizi sondaki eğik çizgilerle tanımlamak ve göreli URL'lerde başında eğik çizgi kullanmamak tercih edilir.
- Sayfayı Değiştirme: Yararlı yardımı ile sayfa() yöntemleri, yeni bir istekte bulunmadan sayfa örneğini değiştirmek mümkündür.
- Tarayıcıdan Çıkmak: Tarayıcı nesnesi şunları sağlar: çık () ve kapat() yöntemler (görevi temel sürücüye aktaran).
Bu aracın dezavantajları
- Doğum yürütür WebDriver Groovy dilinde. Bunun arkasındaki tüm fikir, WebDriver daha kolay ve daha basit. Dolayısıyla, Webdriver'ı Geb üzerinden kullandığınızda, yalnızca Groovy programlama dili desteklenecektir. Ancak, doğrudan kullanırsanız WebDriver Ruby, C #, Python, Java gibi birçok dili desteklemektedir.
- Geb'in küçük projeler için kullanılmasını önermem - Muazzam görevler için harika çalışıyor, ancak küçük faaliyetler için bir darbe alıyor. Web uygulamanız, bilgilerin aktarılması gereken birden fazla sayfa ve form içermiyorsa, Geb'in size ayırdığından çok daha fazla zamana mal olduğunu keşfedebilirsiniz.
- Web sitesi uygulamanızın hangi ortamı kullandığı çok özeldir. Geb'in iyi çalışması için belirli bir ortama iyi entegre edilmesi gerekir.
Daha fazla kaynak:
- Kontrol et Book of Geb burada ayrıntılı belgeler ve örnekler için.
- İşte gösteren örnek bir proje Geb'in grails ile entegrasyonu .
Sonuç
Geb, test senaryolarının otomatikleştirilmesinde çok kullanışlıdır. Web, işlevsellik ve kullanıcı kabul testlerini otomatikleştirmek yararlıdır. Birden çok tarayıcıyı destekler ve farklı çerçevelerle entegre edilebilir. WebDriver'ın gücünü, jQuery Selection'ın zarafetini, Page Object Modeling'in sağlamlığını ve Groovy'nin ifade gücünü birleştirir.
Geb komut dosyaları hem geliştirici hem de kullanıcı dostudur, daha iyi test kapsamı ve hızlandırılmış test sağlarken aynı zamanda daha verimli hale getirir.
Yazar hakkında: Bu Priya K.'nın konuk gönderisidir. Test konusunda uzmanlığı ve çeşitli uygulamalar için destek ile BT Hizmetlerinde 4 yıldan fazla deneyime sahiptir.
Geb otomasyon testi sorgularınızı yorumlara göndermekten çekinmeyin.
Önerilen Kaynaklar
- WAVE Erişilebilirlik Test Aracı Eğitimi
- Ranorex Eğitimi: Güçlü Bir Masaüstü, Web ve Mobil Otomasyon Test Aracı
- Sikuli GUI Otomasyon Test Aracı - Başlangıç Kılavuzu Bölüm # 2
- Parrot QA Eğitimi: Çapraz Tarayıcı İşlevsel Test Aracı İncelemesi
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Yeni Başlayanlar İçin Derinlemesine Eclipse Eğiticileri
- Otomasyon Testi Nedir (Test Otomasyonunu Başlatmak için Nihai Kılavuz)
- Parasoft SOAtest Eğitimi: Komut Dosyasız API Test Aracı