automation testing using cucumber tool
Son Selenium eğitiminde sizi Selenyum Izgara hangisi -e dağıtılmış test yürütme bir test geçişinin yürütülmesini hızlandırmak için ortam .
Şimdi bu kapsamlı Selenium eğitim serisinin sonunda, ileri düzeyde öğreniyoruz Selenyum testi ve ilgili kavramlar.
Bu ve bir sonraki öğreticide, sizi Salatalık - bir Selenium ile birlikte kabul testi yapmak için kullanılan Davranış Odaklı Geliştirme (BDD) çerçevesi.
Ne öğreneceksin:
Salatalık Giriş
Bir salatalık, web uygulaması için kabul testleri yazmak için kullanılan Davranış Odaklı Geliştirme (BDD) çerçevesine dayalı bir araçtır. İş Analistleri, Geliştiriciler, Test Uzmanları vb. İçin kolayca okunabilir ve anlaşılabilir formatta (düz İngilizce gibi) işlevsel doğrulamanın otomasyonunu sağlar.
Salatalık özellik dosyaları herkes için iyi bir belge görevi görebilir. BDD çerçevesini de destekleyen JBehave gibi birçok araç var. Başlangıçta, Cucumber Ruby'de uygulandı ve ardından Java çerçevesine genişletildi. Her iki araç da yerel JUnit'i destekler.
Davranış Odaklı Geliştirme, Test Güdümlü Geliştirmenin bir uzantısıdır ve belirli bir kod parçasını test etmek yerine sistemi test etmek için kullanılır. BDD'yi ve BDD testleri yazma tarzını daha fazla tartışacağız.
Salatalık, Selenium, Watir ve Capybara vb. İle birlikte kullanılabilir. Hıyar, Perl, PHP, Python, Net vb. Gibi diğer birçok dili destekler. Bu eğitimde, bir dil olarak Cucumber with Java'ya odaklanacağız.
Salatalık Temelleri
Salatalığı anlamak için salatalığın tüm özelliklerini ve kullanımını bilmemiz gerekir.
Java'nın c ++ 'dan farkı nedir
# 1) Özellik Dosyaları:
Özellik dosyaları, test otomasyon adımları veya kabul testleri yazmak için kullanılan salatalığın temel parçasıdır. Bu, canlı belge olarak kullanılabilir. Adımlar, uygulama spesifikasyonudur. Tüm özellik dosyaları .feature uzantısıyla biter.
Örnek özellik dosyası:
Özellik : Oturum Açma İşlevselliği Özelliği
Login Fonksiyonelliğinin çalıştığından emin olmak için,
Çalıştığını doğrulamak için salatalık testini çalıştırmak istiyorum
Senaryo : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı 'KULLANICI' ve Parola 'PASSWORD' olarak Kullanıcı Adı kullanarak oturum açar
Sonra giriş başarılı olmalı
Senaryo : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı adını 'USER1' ve Parolasını 'PASSWORD1' olarak kullanarak oturum açar
Sonra hata mesajı atılmalıdır
# 2) Özellik:
T onun üst düzey iş işlevselliği (önceki örneğe bakın) ve test edilen Uygulamanın amacı hakkında bilgi verir. Herkes, ilk Özellik adımını okuyarak özellik dosyasının amacını anlayabilmelidir. Bu kısım temelde kısa tutulur.
# 3) Senaryo:
Temel olarak, bir senaryo test edilmekte olan belirli bir işlevi temsil eder. Senaryoyu görerek, kullanıcı senaryonun ardındaki amacı ve testin neyle ilgili olduğunu anlayabilmelidir. Her senaryo verilen, ne zaman ve sonra formatı takip etmelidir. Bu dile 'kornişon' denir.
- Verilen: Yukarıda bahsedildiği gibi verilen ön koşulları belirtir. Temelde bilinen bir durumdur.
- Ne zaman : Bu, bazı eylemlerin gerçekleştirilmesi gerektiğinde kullanılır. Yukarıdaki örnekte olduğu gibi, kullanıcının kullanıcı adı ve şifre kullanarak giriş yapmaya çalıştığını gördük, bu bir eylem haline geliyor .
- Sonra: Beklenen sonuç veya sonuç buraya yerleştirilmelidir. Örnek için: oturum açma işleminin başarılı olduğunu doğrulayın, sayfada başarılı gezinme.
- Arka fon: Her senaryoda herhangi bir adımın gerçekleştirilmesi gerektiğinde, bu adımların Arka Plana yerleştirilmesi gerekir. Örnek için: Bir kullanıcının her senaryodan önce veritabanını temizlemesi gerekiyorsa, bu adımlar arka plana konulabilir.
- Ve : Ve iki veya daha fazla aynı eylem türünü birleştirmek için kullanılır.
Misal:
Özellik : Oturum Açma İşlevselliği Özelliği
Senaryo : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı adını kullanarak 'KULLANICI' olarak oturum açar
Ve 'şifre' olarak şifre
Sonra giriş başarılı olmalı
Ve Ana sayfa görüntülenmelidir
qa test mülakat soruları ve cevapları
Arka Plan Örneği:
Arka fon:
Verilen kullanıcı, veritabanı yöneticisi olarak oturum açtı
Ve tüm önemsiz değerler temizlendi
# 4) Senaryo Özeti:
Senaryo ana hatları, aynı testin farklı veri setiyle gerçekleştirilmesi gerektiğinde kullanılır. Aynı örneği ele alalım. Oturum açma işlevini birden çok farklı kullanıcı adı ve şifre seti ile test etmeliyiz.
Özellik : Oturum Açma İşlevselliği Özelliği
Login Fonksiyonelliğinin çalıştığından emin olmak için,
Çalıştığını doğrulamak için salatalık testini çalıştırmak istiyorum
Senaryo Özeti : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETESTINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı adını kullanarak oturum açar< Kullanıcı adı > ve Şifre< parola >
Sonra giriş başarılı olmalı
Örnekler:
| kullanıcı adı | şifre |
| Tom | şifre1 |
| Harry | şifre2 |
| Jerry | şifre3 |
Not:
- Yukarıdaki örnekte gösterildiği gibi, sütun adları bir parametre olarak aktarılır Ne zaman Beyan.
- Senaryo yerine, Senaryo Taslağını kullanmanız gerekir.
- Tablo biçiminde farklı argümanlar iletmek için örnekler kullanılır. Dikey borular iki farklı sütunu ayırmak için kullanılır. Bir örnek birçok farklı sütun içerebilir.
# 5) Etiketler:
Cucumber varsayılan olarak tüm özellik dosyalarındaki tüm senaryoları çalıştırır. Gerçek zamanlı projelerde, her zaman çalıştırılması gerekmeyen yüzlerce özellik dosyası olabilir.
Örneğin : Duman testiyle ilgili özellik dosyalarının her zaman çalıştırılmasına gerek yoktur. Bu nedenle, duman testi ile ilgili her özellik dosyasında dumansız olarak bir etiketten bahsederseniz ve @ SmokeTest etiketi ile salatalık testi çalıştırırsanız. Hıyar, yalnızca belirli etiketlere özgü özellik dosyalarını çalıştırır. Lütfen aşağıdaki örneği izleyin. Tek bir özellik dosyasında birden çok etiket belirtebilirsiniz.
Tekli etiketlerin kullanımına örnek:
@Sigara testi
Özellik : Oturum Açma İşlevselliği Özelliği
Login Fonksiyonelliğinin çalıştığından emin olmak için,
Çalıştığını doğrulamak için salatalık testini çalıştırmak istiyorum
Senaryo Özeti : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETESTINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı adını kullanarak oturum açar< Kullanıcı adı > ve Şifre< parola >
Sonra giriş başarılı olmalı
Örnekler:
| kullanıcı adı | şifre |
| Tom | şifre1 |
| Harry | şifre2 |
| Jerry | şifre3 |
Birden çok etiketin kullanımına örnek:
Aşağıdaki örnekte gösterildiği gibi, aynı özellik dosyası duman testi senaryolarının yanı sıra oturum açma testi senaryosu için de kullanılabilir. Komut dosyanızı duman testi için çalıştırmayı planladığınızda @SmokeTest kullanın. Benzer şekilde, komut dosyanızın Login testi için çalışmasını istediğinizde @LoginTest etiketini kullanın.
Bir özellik dosyası için olduğu kadar senaryo için de herhangi bir sayıda etiketten bahsedilebilir.
@Hayalhanemersin
Özellik : Oturum Açma İşlevselliği Özelliği
Login Fonksiyonelliğinin çalıştığından emin olmak için,
Çalıştığını doğrulamak için salatalık testini çalıştırmak istiyorum
yeni başlayanlar için en iyi oyun geliştirme yazılımı
Senaryo Özeti : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı Adı ve Parola kullanarak oturum açar
Sonra giriş başarılı olmalı
Örnekler:
| kullanıcı adı | şifre |
| Tom | şifre1 |
| Harry | şifre2 |
| Jerry | şifre3 |
Benzer şekilde, belirli bir senaryoyu bir özellik dosyasında çalıştırmak için etiketler belirtebilirsiniz. Belirli bir senaryoyu çalıştırmak için lütfen aşağıdaki örneği kontrol edin.
Özellik : Oturum Açma İşlevselliği Özelliği
Login Fonksiyonelliğinin çalıştığından emin olmak için,
Çalıştığını doğrulamak için salatalık testini çalıştırmak istiyorum
@fotomac
Senaryo : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı 'KULLANICI' ve Parola 'PASSWORD' olarak Kullanıcı Adı kullanarak oturum açar
Sonra giriş başarılı olmalı
@kafadergisi
Senaryo : Oturum Açma İşlevselliği
Verilen kullanıcı SOFTWARETETINGHELP.COM'a gider
Ne zaman kullanıcı, Kullanıcı adını 'USER1' ve Parolasını 'PASSWORD1' olarak kullanarak oturum açar
Sonra hata mesajı atmalı
# 6) JUnit Runner:
Salatalık belirli özellik dosyasını çalıştırmak için standart JUnit Runner kullanır ve @Cucumber içinde etiketleri belirtir. Seçenekler. Ayrı virgül kullanılarak birden çok etiket verilebilir. Burada, raporun yolunu ve oluşturmak istediğiniz raporun türünü belirtebilirsiniz.
Junit Runner Örneği:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Genel sınıf JUnitRunner {} Benzer şekilde, salatalığa birden fazla etiket çalıştırması talimatı verebilirsiniz. Aşağıdaki örnek, farklı senaryolar çalıştırmak için salatalıkta birden çok etiketin nasıl kullanılacağını gösterir.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Salatalık Raporu:
Hıyar kendi HTML formatını oluşturur. Bununla birlikte, Jenkins veya bambu aracı kullanılarak daha iyi raporlama yapılabilir. Raporlamanın ayrıntıları bir sonraki salatalığın konusundadır.
Hıyar Proje Kurulumu:
Salatalık proje kurulumunun ayrıntılı açıklaması bir sonraki eğitimde ayrı olarak mevcuttur. Proje kurulumu hakkında daha fazla bilgi için lütfen Hıyar Eğitimi Bölüm 2'ye bakın. Salatalık için ekstra yazılım kurulumu gerekmediğini unutmayın.
Özellik dosyasının uygulanması:
Özellik dosyalarını test etmek için bu adımları Java'da uygulamalıyız. Verilenleri, when ve then ifadelerini içeren bir sınıf oluşturmanız gerekir. Hıyar, ek açıklamalarını kullanır ve tüm adımlar bu ek açıklamalara gömülüdür (o zaman verilir). Her cümle “^” ile başlar, böylece salatalık adımın başlangıcını anlar. Benzer şekilde, her adım '$' ile biter. Kullanıcı, farklı test verilerini geçmek için normal ifadeler kullanabilir. Normal ifadeler, özellik adımlarından veri alır ve adım tanımlarına geçer. Parametrelerin sırası, özellik dosyasından nasıl aktarıldıklarına bağlıdır. Özellik dosyaları ile Java sınıfları arasında proje kurulumu ve eşleme için lütfen sonraki eğiticiye bakın.
Misal:
Aşağıdaki örnek, özellik dosyalarının nasıl uygulanabileceğini göstermek içindir.
Bu örnekte, herhangi bir selenyum API kullanmadık. Bu sadece salatalığın bağımsız bir çerçeve olarak nasıl çalıştığını göstermek içindir. Salatalık ile selenyum entegrasyonu için bir sonraki öğreticiyi takip edin.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Hıyar koşucu sınıfını çalıştırdığınızda, salatalık özellik dosyası adımlarını okumaya başlayacaktır. Örneğin, @smokeTest'i çalıştırdığınızda salatalık okuyacaktır. Özellik adım ve Verilen bir açıklama senaryo . Salatalık bulur bulmaz aynı Verilen ifadesi java dosyalarınız için aranacaktır. Java dosyasında aynı adım bulunursa, salatalık aynı adım için belirtilen işlevi çalıştırır, aksi takdirde salatalık adımı atlar.
Sonuç
Bu eğitimde, salatalık aletinin özelliklerini ve gerçek zamanlı senaryoda kullanımını ele aldık.
Hıyar, anlaşılması kolay, okunabilir olması ve işle ilgili işlevsellik içermesi nedeniyle birçok proje için en gözde araçtır.
Sonraki bölümde , bir salatalık - java projesinin nasıl kurulacağını ve Selenium WebDriver'ın Hıyar ile nasıl entegre edileceğini ele alacağız.
Önerilen Kaynaklar
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- 30+ En İyi Selenyum Öğreticisi: Gerçek Örneklerle Selenyum Öğrenin
- Selenium Grid Eğitimi: Çapraz Tarayıcı Testinin Kurulumu ve Örneği
- Selenyum ile Entegrasyon ve Fonksiyonel Test İçin Spock
- Selenium için Maven Build Automation Tool ve Maven Project Setup Kullanımı - Selenium Tutorial # 24
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- Yeni Başlayanlar İçin Derinlemesine Eclipse Eğiticileri
- WAVE Erişilebilirlik Test Aracı Eğitimi