karate framework tutorial
Bu eğitim, Karate Framework kullanarak API Testine giriş niteliğindedir. Karate Test Komut Dosyasının yapısı ve ilk test komut dosyasını oluşturma adımları hakkında bilgi edinin:
API, Uygulama Programlama Arayüzü anlamına gelen bir kısaltmadır. Basit bir ifadeyle, uygulamalar arasında iletişime izin veren bir yazılım aracı olarak tanımlayabiliriz.
API testine ihtiyacımız var çünkü:
- Sonuçlar daha hızlı yayınlanır, dolayısıyla API'nin düzgün çalışıp çalışmadığını görmek için artık beklemenize gerek yok.
- Daha hızlı yanıtla, bu API'lerin dağıtımı da daha hızlı hale gelir ve bu nedenle hızlı geri dönüş süresi sağlar.
- Erken arıza tespiti, uygulamanın kullanıcı arayüzü oluşturulmadan önce bile riskleri azaltmamıza ve hataları düzeltmemize olanak tanır.
- Daha kısa sürede büyük ölçekli teslimat mümkündür.
API Testi üzerinde çalışabilmek için, piyasada Postman, Mocha ve Chai gibi çeşitli araçlarımız var. Bunlar, API'leri test etmek için iyi sonuçlar ve etkili kullanım göstermiştir, ancak bunlar büyük ölçüde koddan etkilenmiştir. Bunları kullanabilmek için, kişinin teknik olarak sağlam ve programlama dillerine aşina olması gerekir.
Karate Framework, önceki yazılım araçlarının bu sorununu güzel bir şekilde çözer.
Ne öğreneceksin:
Karate Framework Nedir
Karate? Karate konuşalım. Japonya'dan mı? Sen ne düşünüyorsun? Büyük Bruce Lee bunu boş zamanlarında geliştirmiş olabilir.
Karate'nin ilginç köklerini araştırmak istiyor olsak da, şimdilik, Karate aracı tarafından geliştirilmiştir Peter Thomas , API test kullanıcılarını kurtarmaya gelen harika araçlardan biri.
Karate çerçevesi, BDD yaklaşımını izleyen programı yazarken Hıyar stilini takip eder. Sözdiziminin programcı olmayanlar tarafından anlaşılması kolaydır. Ve bu çerçeve, API Otomasyonu ve performans testini tek bir bağımsız araçta birleştiren tek API test aracıdır.
Kullanıcılara test durumlarını Paralelde yürütme ve JSON & XML kontrollerini gerçekleştirme yeteneği sağlar.
Bu bilgilerle, Karate aracını daha ayrıntılı olarak anlamak için belirli kilit noktalar çıkarılabilir:
- Karate, TDD yerine bir BDD test çerçevesidir.
- Programcı olmayanlar için kolay olacak şekilde tasarlanmıştır. Bu özellik, teknik geçmişleri veya kapasiteleri ne olursa olsun birçok kişi tarafından daha fazla kullanım ve erişim sağladığından oyunun kurallarını değiştirir.
- Anlaması çok kolay olan testi yazmak için Salatalık özellik dosyasını ve Kornişon dilini kullanır.
Tüm bu özellikler, onu bugün mevcut olan en uygun otomasyon araçlarından biri yapar.
Karate Framework Tarihi
Tarafından yaratıldı ' Peter Thomas ’ 2017'de bu yazılım, test işlevlerini herkes için hazır hale getirmeyi amaçlamaktadır. Java ile yazılmıştı ve çoğu kişi dosyalarının da aynı dilde olmasını bekliyordu, ancak neyse ki durum böyle değil.
Bunun yerine, Salatalık çerçevesiyle olan ilişkisinin bir sonucu olan Kornişon turşusu dosyalarını kullanır. Otomasyon yazılımı, Salatalığın bir uzantısıdır, bu nedenle işleminde Kornişonların kullanımını devralır. İkisi arasındaki en büyük fark, Karate'nin test sırasında Java'yı kullanmaması, ancak Cucumber'ın kullanmasıdır.
Kornişonlar sözdizimi süper okunabilir ve kapsamlı olduğu için programcı olmayanlara hitap etmesinin nedeni budur. Bu, Karate'nin otomatik API testi dünyasına giriş yapmak için en uygun ve önerilen nedendir.
Karate Test Çerçevesinin bazı özellikleri şunlardır:
- Anlaşılması kolay Kornişon dilini kullanır.
- Java gibi teknik programlama bilgisi gerektirmez.
- Popüler Salatalık standartlarına dayanmaktadır.
- Çerçeve oluşturmak kolaydır.
- Paralel test, Karate'nin kendisi tarafından sağlanan temel işlevdir, dolayısıyla buna bağlı olmamıza gerek yoktur. Maven, Gradle , vb.
- Testte hata ayıklamak için kullanıcı arayüzü.
- Başka bir dosyadan bir özellik dosyasını çağırmak.
- Şirket içinde yerleşik olan Veri Sürücüsü Testi için destek sağlar, bu nedenle dış çerçevelere bağımlı olmaya gerek yoktur.
- Yerleşik Yerli Dinlenme Raporları. Ayrıca, daha iyi UI Raporları ve daha fazla netlik için Salatalık ile entegre edilebilir.
- Farklı test ortamlarında (QA, Stage, Prod, Pre-Prod) yapılandırmayı değiştirmek için şirket içi destek sağlar.
- Yararlı olabilecek CI / CD entegrasyonu için kesintisiz destek.
- Çeşitli HTTP çağrılarını yönetebilir:
- Web Soketi desteği
- SABUN isteği
- HTTP
- Tarayıcı tanımlama bilgisi işleme
- HTTPS
- HTML biçimli veriler
- XML isteği
Karate ile Rest-Assured karşılaştırması
Emin olabilirsiniz : REST servislerini test etmek için Java tabanlı bir kütüphanedir. Kod satırlarını yazmak için Java dilini kullanır. Farklı iş mantığı kombinasyonlarının doğrulanması ile sonuçlanan çok sayıda istek kategorisinin test edilmesine yardımcı olur.
Karate Çerçevesi : SABUN ve DİNLENME hizmetlerini test etmek için kullanılan Salatalık / Kornişon bazlı bir araç.
Aşağıdaki tablo, Rest-Assured ve Karate Framework arasında birkaç önemli farkı daha listelemektedir:
S.No | Temel | Karate Çerçevesi | Emin olabilirsiniz |
---|---|---|---|
7 | Raporlama | Şirket içi raporlama sağlar, bu nedenle harici eklentilere bağımlı olması gerekmez. Daha iyi bir kullanıcı arayüzü için Salatalık raporlama eklentisi ile entegre edebiliriz. | Junit, TestNG gibi Harici Eklentilere bağımlı olmanız gerekir |
bir | Dil | Salatalık ve Kornişon karışımı kullanır. | Java Dilini kullanır |
iki | Kod Boyutu | Salatalığa benzer bir yapıyı takip ettiği için genellikle kod satırı daha azdır. | Java dilinin kullanımını içerdiği için kod satırı daha fazladır |
3 | Teknik Bilgi gerekli | Programcı olmayanlar kolayca Kornişon kodunu yazabilir | Java kodunu yazmak için teknik bilgi gereklidir |
4 | Veriye Dayalı Test | Aynı şeyi desteklemek için TestNG veya eşdeğerinden yararlanmanız gerekiyor | Şirket içi etiketler, veri testini desteklemek için kullanılabilir |
5 | SOAP çağrı desteği sağlıyor mu | Evet, sağlar | Yalnızca bir REST isteği ile ilgilidir |
6 | Paralel Test | Evet, paralel testler paralel rapor oluşturma ile de kolayca desteklenir | Büyük ölçüde değil. İnsanlar bunu yapmayı denemiş olsa da, başarısızlık oranı başarı oranından fazladır. |
8 | Harici Veriler için CSV desteği | Evet, Karate 0.9.0'dan | Hayır, Java Kodunu veya kitaplığını kullanmalıyım |
9 | Web UI Otomasyonu | Evet, Karate 0.9.5'ten Web-UI Otomasyonu mümkündür | Hayır, desteklenmiyor |
10 | Örnek GET | Given param val1 = ‘name1’ | given(). |
Dolayısıyla, yukarıdaki farklılıkların da gösterdiği gibi, Karate'nin herkesin yapabileceği en kolay şeylerden biri olduğunu söylemek güvenlidir.
Karate Framework ile Çalışmak İçin Gerekli Araçlar
Şimdi, Karate Framework ile ilgili temel bilgilerimizi yerinde edindiğimiz için, Karate ortamını kurmak için gerekli süreçlere ve araçlara bakalım.
# 1) Tutulma
Eclipse, bilgisayar programlama alanında kullanılan bir Entegre Geliştirme Ortamıdır. Çoğunlukla Java Programlama için kullanılır. Daha önce de belirtildiği gibi, Karate Java ile yazılmıştır, bu nedenle Eclipse'in API test yazılımı için ideal bir IDE olmasının nedeni daha mantıklıdır. Diğer bir neden de bunun açık kaynaklı bir araç olmasıdır ve bu, bu aracı tercih etmek için oldukça güçlü bir nedendir.
Not: IntelliJ, Visual Studio ve piyasada bulunan diğer farklı editörleri bile kullanabiliriz.
# 2) Maven
Bu, öncelikle Java projeleri oluşturmak için kullanılan bir derleme otomasyon aracıdır. Karate ortamı kurmanın ve kodu yazmanın bir yoludur. Eclipse'inizi Maven gereksinimleriyle ayarlamak için, İşte Maven kurulumu için.
Maven'de çalışırken, Karate Framework'ü desteklemenize yardımcı olacak Maven bağımlılıklarını kullanın.
Aşağıdaki bağımlılıklar, pom.xml'de Maven ile kullanılacaktır.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Not: En son sürümler Maven deposunda bulunabilir.
deneyimli pdf için ios mülakat soruları ve cevapları
# 3) Gradle
Gradle, Maven'e bir alternatiftir ve eşit kapasitede kullanılabilir. Benzerlikleri ve farklılıkları vardır, ancak Karate kodlarımız için bir ortam oluşturmada eşit derecede kullanılabilirler.
Kullanımı daha kolaydır, esnektir ve uygulamamızın bir grup eklenti ile bazı modülerleştirme ve yönetim gereksinimleri olduğunda kullanılması önerilir. Gradle kurulum kodu şuna benzer.
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Not: Ya kullanabilirsin UZMAN veya GRADLE.
# 4) Sisteminizde Java Ortamı kurulumu
Karate Framework betiklerini kullanmaya başlamak için JDK ve JRE ortamını kurmanız gerekir.
Karate Test Komut Dosyasının Yapısı
Karate test komut dosyası, '.feature' uzantısına sahip olmasıyla bilinir. Bu özellik, Hıyar'dan miras alınmıştır. Java kuralında dosyaların düzenlenmesine de aynı şekilde izin verilir. Dosyalarınızı Java paketi kurallarına göre düzenlemekte özgürsünüz.
Ancak, Maven yönergeleri, Java dışı dosyaların ayrı ayrı depolanması talimatını verir. Bir içinde yapılırlar src / test / kaynaklar yapı. Ve Java dosyaları altında tutulur src / main / java .
Ancak Karate Framework'ün yaratıcılarına göre, hem Java hem de Java dışı dosyaları yan yana tuttuğumuza şiddetle inanıyorlar. Onlara göre, standart Maven yapısını takip etmek yerine, bir arada tutulduklarında * .java ve * .feature dosyalarına bakmak çok daha kolaydır.
Bu, pom.xml dosyanızı aşağıdaki gibi değiştirerek kolayca yapılabilir (Maven için):
src/test/java **/*.java ...
Karate Çerçevesinin genel yapısının ana hatları aşağıdadır:
Şimdi, bu Karate Framework, özellik dosyalarını çalıştırmak için Cucumber'da da gerekli olan Runner dosyasını kullandığından, yazıların çoğu Hıyar standartlarını takip edecektir.
Ancak, Hıyar'ın aksine, adımlar Karate'de net bir tanım gerektirmez ve bu da esnekliği ve işlem kolaylığını artırır. Salatalık çerçevesini izlediğimizde genellikle eklememiz gereken fazladan yapıştırıcıyı eklememize gerek yoktur.
'Runner' sınıfı çoğu zaman adlandırılır TestRunner.java.
Daha sonra TestRunner.java dosyası şu şekilde olacaktır:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
Ve hakkında konuşmak .feature dosya, API'nin beklenen gereksinimlere göre çalıştığından emin olmak için test edilmesi gereken tüm test senaryolarını içerir.
Genel bir * .feature dosyası aşağıda gösterildiği gibi görünür:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
İlk Temel Karate Test Komut Dosyasını Oluşturma
Bu bölüm, API'leri bir Karate çerçevesi biçiminde dönüştürmenize yardımcı olacak ilk Test Komut Dosyanızı oluşturmaya başlamanıza yardımcı olacaktır.
bir dizi java'nın derin bir kopyası nasıl yapılır
Temel Karate test komut dosyalarını yazmadan önce, lütfen aşağıdaki gereksinimleri makinenize kurun:
- Eclipse IDE
- Uzman. Uygun Maven yolunu ayarlayın.
- JDK ve JRE. Uygun yolu ayarlayın.
Adım adım yaklaşıma bir göz atalım:
# 1) Yeni bir tane oluştur UZMAN Eclipse Editor'da Proje
- Eclipse'i aç
- Dosyaya tıklayın. Yeni Proje'yi seçin.
- Maven Projesi'ni seçin
- Çalışma alanı konumunu seçin.
- Arketipi seçin (genellikle ' Maven-arketip-hızlı başlangıç 1.1 'Basit Maven projeleri için).
- Grup Kimliğini ve Yapı Kimliğini sağlayın (örneğimizde aşağıdaki değerleri kullandık).
- Grup kimliği : Karate
- Yapı Kimliği: KarateTestScriptsSample
- Kurulumu tamamlamak için Bitir'e tıklayın.
#iki) Oluşturulduktan sonra, artık Proje Gezgini penceresinde aşağıdaki yapıyı görebileceksiniz.
# 3) Tüm Bağımlılıklarınızı dahil edin.
İlk adımımız, kurulumdan sonra tüm bağımlılıkları dahil et infaz için gerekli olacak. Tüm etiketi POM.xml altında tutacağız (POM.xml kullanımının zaten farkında olduğunuzu varsayarak).
- POM.xml'yi açın ve aşağıdaki kodu bağımlılık etiketinin altına kopyalayıp dosyayı kaydedin.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Tıklayın İşte kaynak için.
# 4) Şimdi senaryoya beyin fırtınası yapalım, bu Karate Temel Test Senaryosunda neyi test edeceğiz.
Senaryo:
Bununla bir API test edeceğiz URL.
Yol: api / kullanıcılar / 2
Yöntem: ALMAK
Ve onaylamamız gerekiyor , isteğin bir Başarı kodu (200) ya da değil.
Basit bir ifadeyle, başarılı bir şekilde yürütülüp yürütülmediğini görmek için örnek bir API'yi test edeceğiz.
Not: Test için mevcut olan örnek bir API alıyoruz. Herhangi bir PATH seçebilir veya API'nize başvurabilirsiniz.
Tıklayın İşte kaynak için.
# 5) Şimdi bir sonraki adımımız bir .feature dosya.
Giriş bölümünde tartışıldığı gibi, .feature dosyası Hıyar'dan miras alınan özelliktir. Bu dosyada, API Testini gerçekleştirmek için yürütülmesi gereken test senaryolarını yazacağız.
- Klasöre git src / test / java projenizde.
- Üzerine sağ tıklayın ve yeni bir dosya oluşturun - userDetails.feature. Ardından Bitir düğmesine tıklayın.
Şimdi klasörün altında aşağıdaki dosyayı göreceksiniz src / test / java
Yeşil renkli simge benzer .feature fi Az önce yarattığımız salatalık.
- Dosya oluşturulduktan sonra, şimdi aşağıdaki bölümde tartışılacak olan test senaryolarımızı yazacağız.
# 6) Senaryoya ve boşluğa sahip olduğumuzdan beri. özellik dosya hazır, şimdi ilk komut dosyamızla başlayalım. Kodlamaya başlayalım
5. Adımda oluşturduğumuz userDetails.feature dosyasının altına aşağıdaki Kod satırını yazın:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Yukarıdaki dosyada yazılan bileşenleri anlamaya çalışalım:
- Özellik: Anahtar kelime, test ettiğimiz özelliğin adını açıklar.
- Arka fon: Bu, Ön koşul bölümü olarak kabul edilen isteğe bağlı bir bölümdür. Bu, API'yi test etmek için neyin gerekli olduğunu tanımlamak için kullanılabilir. Bu içerir BAŞLIK, URL ve PARAM seçenekler.
- Senaryo: Göreceğiniz her özellik dosyası en az bir özelliğe sahip olacaktır (ancak çoklu senaryolar). Test senaryosunun açıklamasıdır.
- Verilen: Başka herhangi bir test adımı gerçekleştirilmeden önce uygulanması gereken adımdır. Yapılması zorunlu bir işlemdir.
- Ne zaman: Bir sonraki test adımını gerçekleştirmek için karşılanması gereken koşulu belirtir.
- Sonra: Bize, içinde belirtilen durum olması durumunda ne olması gerektiğini söyler. Ne zaman memnun.
Not: Yukarıda belirtilen tüm anahtar kelimeler Kornişon dilindendir. Bunlar, Cucumber kullanarak test komut dosyalarını yazmanın standart yoludur.
Ve özellik dosyasında kullanılan birkaç kelime daha:
- 200: Beklediğimiz durum / yanıt kodudur (Tıklayın İşte durum kodları listesi için)
- ALMAK: POST, PUT, vb. Gibi API yöntemidir.
Umarız bu açıklamayı anlamanız kolay olmuştur. Şimdi, yukarıdaki dosyada tam olarak yazılanlarla ilişki kurabileceksiniz.
Şimdi bir TestRunner.java dosyası oluşturmamız gerekiyor
Yukarıdaki bölümde açıklandığı gibi, Cucumber'ın çalıştırılması için gerekli olan bir Runner dosyasına ihtiyacı vardır. .feature test senaryolarını içeren dosya.
- Klasöre git src / test / java senin projende
- Sağ tıklayın ve Yeni bir Java dosyası oluşturun: TestRunner.java
- Dosya oluşturulduktan sonra, altına aşağıdaki kod satırlarını yerleştirin:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner, Adım 5 altında yazılan istenen senaryoyu gerçekleştirmek için şimdi yürütülecek olan dosyadır.
# 7) Artık her iki dosyayla da hazırız TestRunner.Java ve userDeatils.feature. Bize kalan tek görev Koşmak senaryo.
- TestRunner.java dosyasına gidin ve aşağıdaki resimde gösterildiği gibi dosyaya sağ tıklayın.
- Farklı Çalıştır -> Junit Testi'ni seçin
- Şimdi, bir kez seçildiğinde, test senaryosunun şimdi başladığını gözlemlemeye başlayacaksınız.
- Test komut dosyasının yürütülmesini bekleyin. Tamamlandığında, pencerenizde aşağıdaki resimde gösterildiği gibi bir şey göreceksiniz.
- Son olarak, ilk temelimizi başarıyla oluşturduğumuzu söyleyebiliriz. Test Komut Dosyası kullanmak Karate Çerçevesi.
# 8) Son olarak, Karate çerçevesi, gerçekleştirilen uygulama için bir HTML rapor sunumu da verir.
- Hedef Klasöre gidin -> surefire-reports-> Burada açabileceğiniz HTML raporunuzu göreceksiniz.
** Daha iyi bir görünüm ve his için Chrome Tarayıcıyı kullanarak aynısını açmanızı da öneririz.
- Aşağıdaki HTML Raporu size tasvir edilerek gösterilecek Senaryolar ve Test söz konusu senaryo için yürütülen:
Sonuç
Bu eğitimde, API testini, piyasada bulunan farklı test araçlarını ve Karate Framework'ün benzerlerine kıyasla nasıl daha iyi bir seçenek olduğunu tartıştık.
İlk temel test komut dosyamızı oluşturmak için adım adım bir yaklaşım izledik. Bir temel oluşturmakla başladık Eclipse IDE'de Maven projesi tüm test senaryosunu içeren bir .feature dosyası ve .feature dosyasında belirtilen test senaryosunu yürütmek için bir Runner dosyası oluşturmak için.
Çoklu adımların sonunda, test sonuçlarının uygulama raporunu görebiliyorduk.
Bu eğitimin, yeni başlayanlar için Karate Framework kullanarak ilk test komut dosyasını nasıl oluşturacaklarını ve API Testini nasıl gerçekleştireceklerini öğrenmede yardımcı olacağını umuyoruz. Bu ayrıntılı adım adım yaklaşım, API üzerinde çeşitli testleri çalıştırmanın ve yürütmenin harika bir yoludur.
Önerilen Kaynaklar
- Node.js Test Çerçevesi Nasıl Kurulur: Node.js Eğitimi
- Parasoft SOAtest Eğitimi: Komut Dosyasız API Test Aracı
- Mockito Eğitimi: Birim Testinde Alay için Mockito Çerçevesi
- API Test Eğitimi: Yeni Başlayanlar İçin Tam Bir Kılavuz
- TestNG Eğitimi: TestNG Çerçevesine Giriş
- Jest Eğitimi - Jest Framework Kullanarak JavaScript Birim Testi
- Yıkıcı Muayene ve Tahribatsız Muayene Eğitimi
- Postman, Farklı API Formatlarını Test Etmek İçin Nasıl Kullanılır?