how automate api requests using rest assured
Bu Eğiticide, Jenkins Üzerinden Test Komut Dosyalarını Yürütürken REST Güvencesini Kullanarak API İsteklerini Otomatikleştirmeyi Öğreneceğiz:
REST API Eğitim Serisinin 2. öğreticide, POSTMAN kullanarak farklı yanıt kodları, REST istekleri, REST en iyi uygulamaları ve API testlerini öğrendik.
DİNLENME web servisleri geliştirme, uygulama, erişim ve daha sonra yürütme kolaylıkları nedeniyle gün geçtikçe popüler hale geliyor. Üstelik, bunlar hafiftir ve uyulması gereken katı standartları yoktur.
Bununla birlikte, daha fazla sayıda hizmet mevcut olduğunda ve her yeni yapıda yürütülmesi gerektiğinde, test eden için ve proje maliyeti için bir kabusa dönüşür. Yine, bazı hizmetler projenin kendisi ile ilgili içseldir ve bazıları üçüncü şahıslar tarafından kullanılmak üzere oluşturulmuştur.
Böylece otomasyon fikri ortaya çıktı. REST hizmetlerini otomatikleştirmek için kullanılabilecek birkaç araç vardır.
- vRest
- HttpMaster
- Parasoft
- Emin olabilirsiniz
RestAssured, test kullanıcıları arasında popüler bir otomasyon aracıdır. Neden tercih edilen bir seçenek olduğunu görelim.
Ne öğreneceksin:
Neden RESTAssured?
- Açık kaynaklıdır, bu nedenle herhangi bir kuruluş proje ihtiyaçları için kullanabilir.
- REST Assured bir Java kitaplığıdır, bu nedenle diğer araçlar gibi bir GUI olarak gelmez. Java'da REST servislerini test etmek için bir çerçevedir.
- Otomasyon komut dosyası oluşturmak için Etki Alanına Özgü Dil (DSL) sağlar, Java gibi herhangi bir yerel dili kullanır ve RESTful Web API'sini test eder.
- İstek, Yanıtlar için XML ve JSON formatını destekler.
- Başsız bir müşteri gibi davranır.
- Bu kütüphaneyi kullanarak sunucuya göndereceğimiz isteği özelleştirebiliriz.
- Ayrıca, karmaşık iş mantığının çeşitli bir kombinasyonunu test edebilir.
- Gönderilen istek için sunucudan durum kodunu, yanıtları, yanıt gövdesini, başlıkları alma yeteneğine sahiptir.
- BDD tarzı test komut dosyası yazma, yani GIVEN-NE ZAMAN-SONRA biçiminde sağlar, böylece herhangi bir iş ekibi üyesi, özellikle de BT dışı arka plandan, bunu görebilir ve mantığı ve test kapsamını anlayabilir.
Bu eğitimde, POSTMAN aracılığıyla ilk REST API eğitiminde daha önce manuel olarak oluşturduğumuz istekleri otomatikleştireceğiz ve ayrıca GITHUB adlı ticari bir aracı da tartışacağız.
REST Assured Kullanarak Web API İsteklerini Otomatikleştirme
Bu eğiticide, uçtan uca otomasyon, yani bir Java sınıfı oluşturup bunu Jenkins'ten çalıştıracağız.
Ön koşullar:
- Hedeflenen alıcılar, Eclipse IDE, Maven, TestNG, ReportNG hakkında çalışma bilgisine sahip olmalıdır.
- Alıcılar ayrıca Jenkins'ten haberdar olmalıdır.
- Web üzerinden dağıtılan hizmetlere erişiyorsak internet bağlantısı gereklidir. Yerel olarak dağıtılan hizmetlere erişiyorsak, bu durumda, test uzmanının hakka sahip olduğundan emin olun.
- Herhangi bir ticari, güvenli siteyi otomatikleştiriyorsak, bu durumda yetkilendirme jetonunun, API jetonlarının, API Anahtarlarının vb. Düzgün çalıştığından ve şu anda komut dosyasını otomatikleştiren test kullanıcısına sağlandığından emin olun.
URL test ediliyor
- http://jsonplaceholder.typicode.com hazır ve çalışıyor
- Kullanıcı üzerinde geçerli kimlik bilgisi var GitHub
Çevresel Ayarlar
# 1) Eclipse IDE'yi yükleyin
Öncelikle, Eclipse IDE'yi resmi web sitesinden indirmemiz gerekiyor. Eclipse.
Ardından IDE'yi kurun. Yolu, JAVA_HOME çevre değişkenini doğru ayarlayın. JDK, JRE yolunu ileride kullanmak üzere elinizin altında tutun. Eclipse kurulduktan sonra, bir çalışma alanı oluşturun / ayarlayın ve çalışma alanını açın.
Benim durumumda:
#iki) Maven Projesi Oluşturun
Maven evini Çevresel değişkenler üzerinden yapılandırdığınızdan emin olun.
# 3) REST-ASSURED, TESTNG, REPORTNG ile ilgili tüm ilgili, gerekli bağımlılık eklentilerini pom.xml'e ekleyin.
İşte örnek bir pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Maven projeleri derleme yoluna gerekli kavanozları ekleyin.
Normalde bunlar, REST garantili kavanoz, TESTNG, REPORTNG altında gelen kitaplık dosyasıdır. Bağımlılığı, eklentiyi pom.xml dosyası üzerine eklememize rağmen, ancak yine de bazen hata geliyor, bu nedenle hataları önlemek için maven projesinin yolunu oluşturmak için bu kavanozları / kitaplıkları eklememiz gerekir (varsa).
Ancak Maven projeleri yerine Java projeleri oluştururken, bu durumda bu kavanozları, kitaplıkları el altında tutmamız ve gerektiğinde kullanmamız gerekiyor.
# 5) JENKINS'i Kurun (Windows'ta)
Jenkins'i jenkins.io/download/ adresinden indirin.
Ardından, kurulumu açın, doğru şekilde yüklenene kadar adımları izleyin.
Kurulduktan sonra JENKINS'i başlatmamız gerekir, aynısını bir komut isteminden yapabiliriz.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
yazılım testinde test planı nedir
Yukarıdaki mesaj görüntülendiğinde, aşağıdaki mesajı görmek için biraz daha beklememiz gerekir.
Yukarıdaki ekranda Jenkins'in tamamen çalışır durumda olduğu son mesajı görebildiğimiz gibi, artık aşağıdaki URL'yi kullanarak Jenkins'i başlatabiliriz.
http: // localhost: 9090 /
İlk seferinde zaman alabilir ama sonra daha hızlı olacaktır. Bundan sonra bir kullanıcı oluşturmamız gerekiyor.
Kullanıcı oluşturulduktan sonra, Jenkins'i yeniden başlatmalı ve kullanıcı arayüzüne parolayla erişmeliyiz.
Jenkin kurulduktan sonra, eklentileri Manage Jenkins> Global Tool Configuration üzerinden kurabiliriz (Jenkin kurulumu sırasında bile).
Otomasyon Komut Dosyası Oluşturma
# 6) Yeni bir JAVA CLASS oluşturabilir ve TESNG'ye dönüştürebiliriz veya doğrudan bir TESTNG SINIFI oluşturun ve ardından yeni bir XML dosyası (testng.xml) oluşturun.
Basit olması için, oluşturulmuş iki Java Sınıfı vardır
# 1) Tutorial1.java - Bu dosya, sahte bir test URL'si kullanarak GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT gibi tüm yöntemlerin kullanımını içerir. https: jsonplaceholder.typicode.com.
URL, bu tür yanıtları geri vererek orijinal bir URL gibi davransa da, ancak gerçekte sunucu üzerinden herhangi bir değişiklik yapılmaz. Yalnızca bir istemciden herhangi bir istek aldıklarında web hizmetleri özelliklerini ve tepkilerini göstermek içindir.
# 2) Tutorial2.java - Bu dosya, bir öze eklenen yorumu okuyacağımız gerçek zamanlı GitHub örneğini içerir.
Not : GitHub kimlik doğrulaması gerektirir, bu nedenle GitHub'da oturum açtıktan sonra API belirteci veya temel yetkilendirme oluşturmamız gerekir - ayarlar yoksa POSTMAN'ın kendisinden yetkilendirme jetonu oluşturabiliriz
TESNG.XML
İşte her ikisini de yürütecek XML dosyası Tutorial1.java ve Tutorial2.java
Gösteri amacıyla, çalıştırmak için tüm yöntemleri hariç tuttum ve yalnızca bir Tutorial1.java GET yönteminin çalıştırılmasını etkinleştirdim. Ancak, yürütülen tüm yöntemleri görmek istiyorsak, o zaman TestNG XML dosyası üzerinden değiştirmemiz gerekir. Bizim durumumuzda TestNG dosya adı testng1.xml'dir.
Şimdi yukarıdakileri uygularsak Eclipse üzerinde testng1.xml dosyası o zaman aşağıdakileri alacağız konsol çıkışı.
(TestNGContentHandler) (UYARI) Dosyanızın en üstüne '' eklemeniz şiddetle tavsiye edilir, aksi takdirde TestNG başarısız olabilir veya beklendiği gibi çalışmayabilir.
(TestNG) Çalışıyor:
D: RestAssured restapi testng1.xml
*** YÖNTEMİ AL ***
Kullanıcı kimliği - (1) ila - (3) Başlık - (egzersizin ağrılı olması sorun yaratıyorsa veya) vücut - (ve doğru, ancak yasa
Ve tüm seçimler ya da körlerin zevkine
veya ortaya çıkan herhangi bir üzüntü ve zevki kınamak
ve tiksindirici veya rahatsızlık verici bir zahmete ve zahmete istekli; ve)
*** YÖNTEM SONLARINI ALIN ***
————————————————–
REST API Eğiticileri
Toplam test çalışması: 1, Başarısızlıklar: 0, Atlamalar: 0
————————————————-
İşte paketin test sonucu.
İşte TestNG tarafından oluşturulan varsayılan rapor.
İşte ReportNG tarafından oluşturulan rapor.
ReportNG'yi zaten yapılandırdığımız için, yukarıdaki gibi geçen toplam başarısız sayımın net bir görünümünü bekleyebiliriz.
Komut İstemi Kullanarak Test Komut Dosyalarını Yürütme
- Komut istemini başlatmamız gerekiyor
- Çalışma dizinini çalışma alanı konumu olarak ayarlayın
- Depo / hedef yeri bulun
- Kitaplık konumu bul / oluştur
- Öncelikle projenin bulunduğu dizine, bir kümeye ihtiyacımız var. Benim durumumda D: RestAssured restapi
- Java - anahtar kelime
- cp - Sınıf yolu, projede Java sınıfının bulunduğu yol anlamına gelir
- Hedef - Bir Java projesi üzerinde çalışırken bin klasörüyle aynıdır. Maven projesi üzerinde çalıştığımız için, bu nedenle bu klasöre sahip olacağız. Bu klasörün altında iki klasör daha olabilir: sınıflar, test sınıfları. Gerçek Java sınıfı bu iki klasör arasında bulunacaktır
- Lib - Bu klasör, Eclipse'den test komut dosyasını çalıştırırken kullandığımız tüm kavanozları içerecektir. Bazı durumlarda klasör mevcut olmayabilir. Bu nedenle, bir klasör oluşturmamız ve içindeki tüm kavanozları, çalıştırılabilirleri vb. Saklamamız gerekebilir.
- org.testng.TestNG testng1.xml - Bu bir sözdizimi gibidir. Son bölüm, testng1.xml, istenen test komut dosyalarını yürütmek için çağrılacak olan TestNG'nin kaynak dosyasıdır.
Komple komut şu şekilde olacaktır:
java -cp hedef / test sınıfları; hedef / Sınıflar; lib / * org.testng.TestNG testng1.xml
Bundan sonra enter tuşuna basın
Not: Bir Java projesi üzerinde çalışırken bin klasörünü görebiliriz. Bununla birlikte, bir Maven projesinde çalışıyorsak, bir hedef klasörümüz ve normal sınıflarımız olacak, test sınıfları klasörü altında bulunacaktır.
BAT Dosyası Oluşturma ve Test Komut Dosyalarını Yürütme
Komut istemini açmak ve test betiğini çalıştırmak için yukarıdaki komutu çalıştırmak yerine, komutu bir metin dosyasında tutabiliriz ve kaydederken ona şöyle bir isim verebiliriz:
'Run.bat' (run.bat çevresinde '' yazdığınızdan emin olun)
İşte oluşturulduktan sonra nasıl göründüğü.
Şimdi 'çalıştır' ı çift tıklayın
Komut istemi açılacak ve test komut dosyasını çalıştıracak ve yürütme tamamlandığında komut istemi kapatılacaktır.
en iyi youtube mp4 dönüştürücü çevrimiçi
JENKINS'i Maven, Java ile Entegre Etmek
Maven, Java ile entegre etmek ve çalıştırmak için Jenkins'te 4-5 konfigürasyon yapmamız gerekiyor.
Jenkins'e giriş yaptığımızda,
Goto Manager Jenkins >> Global Araç Yapılandırması
JDK yükleme yolunu ayarla
Not : Jenkin’in sürümünün JDK / Java sürümünü desteklediğinden emin olun. Jenkins 2.73 sürümü, en az JDK / JAVA Sürüm 1.8'i gerektirir, aksi takdirde test betiklerini çalıştırırken sorun yaratır.
Maven kurulum yolunu ayarlayın
Bundan sonra, Goto Manager Jenkins >> Sistemleri Yapılandır
Çevresel değişken yolunu ayarla
Sonraki, Yeni Bir Öğe Oluşturun
Yeni bir bağlantı oluştur seçeneğine tıklamamız, isim iş için proje türünü şu şekilde seçin: Serbest stil . Şu an için başka şeyler için endişelenmenize gerek yok.
İş oluşturulduktan sonra şöyle görünecektir.
Şimdi işe tıklayın
Aşağıdaki adımları izleyin:
- Sol taraftaki panelde bulunan yapılandırma bağlantısına tıklayın.
- Genel sekmesini aşağı kaydırın ve Gelişmiş düğmesine tıklayın.
- Özel çalışma alanı onay kutusunu seçin ve proje klasörü konumunu belirtin.
Daha sonra
- Tetikleyiciler Oluşturmak için daha aşağı kaydırın
- Periyodik olarak oluştur onay kutusunu seçin
- Aşağıda belirtildiği gibi biraz zaman ayarlayın
Aşağı kaydırın, Yapı adını ayarlayın. Bizim durumumuzda, yürütülebilir bir Windows toplu iş komutudur.
Daha önce run.bat dosyasını tuttuğumuz yerde D: RestAssured restapi klasörüdür.
Şimdiye kadar yapılan tüm değişiklikleri kaydedin.
Şimdi, cron işinin çalışmasını bekleyin. Yapının başladığını görebiliriz.
Derleme başarıyla yürütüldükten sonra, yukarıdaki görüntüde belirtildiği gibi 20 numaralı yapıya tıklamamız gerekir.
Tıkla Konsol Çıkışı sol paneldeki bağlantı.
Şimdi aşağıdaki çıktıyı görebilmeliyiz.
Sonuç
REST ASSURED, dilden bağımsız olarak REST API’lerini otomatikleştirmek için çok kullanışlı bir JAVA kitaplığıdır. Birçok dahili seçeneğe sahiptir. Ayrıca, ilginç işlevlere sahip birçok sürümü vardır, içinde seçenekler vardır. XML, JSON vb. İstekler gibi birçok formatı destekler.
Bu eğiticide, Jenkins kullanarak test komut dosyalarını çalıştırırken RESTAssured kullanarak API İsteklerini nasıl otomatikleştireceğimizi açıkladık. Ayrıca Rest Assured'ın API İsteklerini otomatikleştirmek için neden daha iyi bir seçim olduğunu da açıkladık.
Bu Rest API Eğitimi serisini okumaktan keyif aldığınızı umuyoruz!
Önerilen Kaynaklar
- BDD Yaklaşımı Kullanılarak Salatalık ile REST API Testi
- 2021'deki En İyi 10 API Test Aracı (SOAP ve REST API Test Araçları)
- Spring RestTemplate ve TestNG ile REST API Testi
- JMeter'da HTTP Talepleriyle Çalışma
- POSTMAN Eğitimi: POSTMAN Kullanarak API Testi
- En Önemli 20 API Testi Görüşme Soruları ve Cevapları
- Özellik Karşılaştırmalı En İyi 10 API Yönetim Aracı
- En İyi 36 Jenkins Röportaj Sorusu (2021 için)