advanced scripting complex testing workflows postman
Karmaşık Test İş Akışları İçin Postman Gelişmiş Komut Dosyası Hakkında Bilgi Edinin:
Bu eğitimde, karmaşık test iş akışlarını çalıştırmamızı sağlayacak Postman ile Gelişmiş Komut Dosyası kullanmanın bazı temel örneklerini göreceğiz.
Verilerin bir istekten diğerine aktarılması, Talep zincirleme, yani Postman koleksiyonundaki isteklerin yürütülme sırasının kontrol edilmesi gibi örnekleri tartışacağız.
ikili dosyalar pencerelerde nasıl açılır
=> Kolay Postacı Eğitim Serisini Okuyun.
Ne öğreneceksin:
- Postacıda İstekler Arasında Veri Geçirme
- Postacıda Zincirleme İste
- Postacı ile Gelişmiş İş Akışı Zincirleme
- Önemli İpuçları
- Sonuç
- Önerilen Kaynaklar
Postacıda İstekler Arasında Veri Geçirme
İstekler arasında veri aktarımı, farklı Postman değişkenleri kullanmanın bir uzantısıdır. Bir API isteğinin önceki talebin yanıtından alınan verilere bağlı olması çok nadir değildir.
Postman'ı kullanarak bu tür yetenekler oluşturmak için, önceki veya önceki isteklerden alınan yanıta bağlı olarak değeri ayarlamak için Postman değişkenlerini kullanabiliriz.
İşte bir Video Eğitimi:
Bunu açıklamak için bir örneğe bakalım.
Aynı API'yi kullanacağız https://reqres.in 2 uç noktası ile, yani Kullanıcı kaydet ve Kullanıcı bilgilerini al.
Kayıt uç noktasından döndürülen kullanıcı kimliğinin değerini kullanacağız ve kullanıcı ayrıntıları yöntemini almak için kullanacağız. Bu, userId değerini bir ortam değişkeninde depolayarak ve bu ortam değişkenini sonraki istekte kullanarak gerçekleştirilecektir.
Lütfen bu tür tüm komut dosyalarının Postacı istek oluşturucu konsolunun 'Testler' sekmesinin bir parçası olacağını unutmayın.
Bakalım komut dosyası nasıl görünecek:
# 1) Register user endpoint için, bu API'nin yanıtı aşağıda gösterildiği gibi görünecektir.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Şimdi, GET isteğini yanıttan kullanıcı kimliğini kullanarak yürütmek için yukarıdaki yanıttan id değerini almamız gerekiyor. Bu JSON'daki id'nin değerini adlı bir ortam değişkenine depolamak için aşağıdaki komut dosyasını kullanacağız. Kullanıcı kimliği.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Yukarıdaki komut dosyasıyla, kimliğin değeri artık userId ortam değişkeninde saklanacak ve aynısı GET kullanıcı isteği uç noktası yürütülürken kullanılabilir.
#iki) Böylece GET kullanıcı talebi aşağıda gösterildiği gibi görünecektir.
https://reqres.in/api/users/{(userId}}
İlk istek yürütüldüğünde, UserID'nin değerini yanıttan alacak ve diğer isteklerde kullanılabilmesi için ortam değişkeninin değerini güncelleyecektir.
Postacıda Zincirleme İste
Önce İstek zincirlemenin temel bir kullanım durumunu anlamaya çalışalım ve ardından Postman kullanarak İstek zincirlemesini nasıl başarabileceğimizi daha ayrıntılı olarak inceleyelim.
Bir e-ticaret sitesinin giriş akışının bir senaryosunu düşünün ve giriş yapan kullanıcıyı doğrulayın. Artık bir kullanıcının oturum açması için, önce siteye kayıtlı olması ve ancak o zaman oturum açabilmesi gerekir. Bu, mobil uygulamanın asıl sitesinin API çağrılarını yürütme sırasıdır.
Bir entegrasyon testi perspektifinden bakın. Bir API testi için öncelikle şunları yapmamız gerekir:
- Kullanıcının başarıyla kaydolması için API'nin kayıt uç noktasını çağırın.
- Ardından oturum açma uç noktasını çağırın ve oturum açmış kullanıcının ayrıntılarını doğrulayın.
Postman ile, talebin yerine getirilme sırasını kontrol etmek kolay değildir. Varsayılan yürütme sırası yukarıdan aşağıya, yani isteklerin Postman koleksiyonunda bildirildiği veya yaratıldığı sıradır.
İstek zincirleme veya istek yürütme sırası aşağıdaki komut dosyası kullanılarak değiştirilir:
postman.setNextRequest({{RequestName}});
Burada, bu İstek zinciri oluşturma komut dosyasının, yürütme altındaki istek tamamlandığında iş akışını tetikleyen ön istek komut dosyasına veya istek sonrası komut dosyasına (veya Postman istek oluşturucudaki testler sekmesine) eklenmesi gerektiğine dikkat etmek önemlidir.
Burada {{RequestName}}, Postman koleksiyonunda yapılandırılan veya ayarlanan gerçek istek adıdır.
İstek zincirleme konseptini göstermek için 4 farklı istek içeren bir Postman koleksiyonu yapılandıralım. 4 istek içeren yeni bir koleksiyon oluşturun (Aynı API'yi kullanacağız https://reqres.in bunu göstermek için).
Koleksiyondaki 4 istek aşağıdaki gibi olacaktır:
# 1) YAYIN kullanıcıyı kaydetme talebi ( https://reqres.in/api/register ) aşağıdaki gibi e-posta ve şifreye sahip alanlara sahip örnek JSON gövdesi ile.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#iki) Giriş uç noktası ile POST isteği ( https://reqres.in/api/login ) yukarıdaki ile aynı istek gövdesi ile.
# 3) UserID 4 ile istek GET.
Ulaşmaya çalışacağımız iş akışı şudur:
Kaydol (POST) -> Kullanıcı ayrıntıları (GET) -> Oturum Aç (POST)
Bu istekler nasıl yapılandırılırsa yapılandırılsın, bunların bu sırayla yürütülmesi için bir iş akışı oluşturacağız.
java'da bir nesne dizisi nasıl bildirilir
Lütfen taleplerin sırasıyla Kullanıcı Kaydı, Kullanıcı Al ve Kullanıcı Giriş olarak adlandırıldığını unutmayın. Bu istek adlarının komut dosyasında tam olarak ve doğru bir şekilde belirtilmesi önemlidir, aksi takdirde iş akışı sıkışır.
Şimdi senaryoların nasıl göründüğüne bakalım.
# 1) Kayıt için POST isteği.
postman.setNextRequest('Login User');
#iki) Oturum açmak için POST isteği.
postman.setNextRequest('Get User');
# 3) Kullanıcı ayrıntılarını almak için istek alın. Bu talepten sonra bir şey olmasını istemememiz burada önemlidir. Buraya herhangi bir iş akışı komut dosyası eklemezsek, Postman koleksiyonu bir sonraki isteği mantıksal veya varsayılan sırada devam ettirecek şekilde tasarlanmıştır.
Dolayısıyla, koleksiyondaki taleplerin orijinal sırasının şu şekilde olduğunu varsayalım: Kayıt Ol, Kullanıcı Al ve Oturum aç ve iş akışımız Kullanıcı Alın denetim bir sonraki isteğin hangi istek üzerine yapılacağını bilmediğinden, sonraki mantıksal isteğe gider Oturum aç ve nihayetinde sonsuz bir döngü ile sonuçlanacaktır.
Böyle bir durumu önlemek için, iş akışını aşağıdakileri kullanarak sonlandırmak yararlıdır:
postman.setNextRequest(null)
Koleksiyon yürütme sırasında yukarıdaki komut dosyasıyla her karşılaşıldığında, iş akışı yürütmesi duracak ve toplama çalıştırıcısı sona erecektir.
Bir sonraki talebin döngüsel referanslarının olduğu durumlarda, toplama koşucusu sonsuz bir döngüde sıkışıp kalacak ve böylece er ya da geç bir bellek sızıntısına neden olacaktır.
İş akışını yürütmek için, ilk veya başlangıç isteğini manuel olarak yürütmeniz gerekeceğini lütfen unutmayın, bunu yayınlayın, istek sonrası komut dosyalarında tanımlandığı gibi iş akışını izleyecektir.
Başka bir deyişle, iş akışının bir parçası olarak çalıştırılması gereken ilk istek, aynı zamanda koleksiyon veya koleksiyon klasöründeki ilk istek olmalıdır, böylece iş akışı yürütülmesi, iş akışının ilk isteği olan ilk istekle başlar. .
Postacı ile Gelişmiş İş Akışı Zincirleme
Yukarıda bahsettiğimiz örnek, daha çok aynı koleksiyondaki bir dizi istek arasında iş akışını yapılandırdığımız doğrusal bir iş akışıdır. Aynı teknik, bazı yanıt değerlerine veya ortam değişkenlerine bağlı olarak bir istek üzerinde birden çok kez döngü oluşturmak için de kullanılabilir.
Bir alışveriş sepeti uygulaması için Entegrasyon testini düşünün, burada bir kullanıcının bir ürünü arayıp sepete eklediği ve aynı işlemi 5 kez gerçekleştirmesi gereken bir senaryo için test etmeniz gerekir, yani alışveriş sepetinde toplam 5 ürün olana kadar ve ardından nihayet ödeme.
Dolayısıyla, bu tür bir test için doğrusal bir akış yazacak olsaydınız, koleksiyondaki bireysel istekleri tekrarlardınız ve esasen koleksiyonda bir öğeyi aramak için 5 istek ve sepete ürün eklemek için 5 istek ve 1 ödeme talebi.
Bu iş akışı işlevselliği ile, koleksiyonda aynı isteklerin tekrarlanmasını önleyebilir ve istekler arasında döngü oluşturmak için iş akışlarını kullanabiliriz.
Böyle bir senaryo için bir akış dizisi görelim (o zaman bu, Postman iş akışı ve ortam değişkenlerinin bir kombinasyonu kullanılarak kullanılabilir / yaratılabilir).
Bir Spotify çalma listesi oluşturmak için Postman iş akışını kullanmanın ilginç bir örneği de var. Öner İşte daha fazla bilgi için.
Önemli İpuçları
Aşağıda, iş akışları oluşturmaya çalışırken hatırlamanız gereken bazı önemli ipuçları verilmiştir.
- Bir koleksiyon çalıştırılırken, birkaç istekte ayarlanan postment.setNextRequest yoksa, yürütme varsayılan koleksiyon sırasına göre devam eder. Bu nedenle, genellikle tüm isteklerde veya hiçbirinde Postman.setNextRequest bulunması önerilir.
- Koleksiyonlarla çalışırken, bir koleksiyon içinde klasörler varsa, Postman.setNextRequest sadece aynı klasöre ait istekler için kullanılabilir, yani istek seçimi mevcut klasörün ötesine geçemez.
- Postman.setNextRequest, nerede ve hangi sırayla bahsedildiğine bakılmaksızın istek sonrası veya ön istek komut dosyasında çalıştırılan son ifadedir.
SetNextRequest için birden fazla değer bulunması durumunda, en son bahsedilen, etkilidir.
Sonuç
Bu eğiticide, Postman'daki farklı istekler arasında veri iletmek için ortam ve yerel değişkenleri birleştirme gibi birkaç gelişmiş komut dosyası oluşturma konusunu ele aldık ve döngü ve dallanma gibi gelişmiş yeteneklere izin veren Postacı İstek zincirini kullanarak isteklerin yürütme sırasını nasıl kontrol edebiliriz.
Bir uygulamanın davranışını, farklı API'lerle etkileşime girecek şekilde taklit etmek harika bir özelliktir ve API uç noktaları ile entegrasyon testleri kullanarak uçtan uca iş akışları yazmak yararlıdır.
=> Mükemmel Postacı Eğitim Kılavuzuna Buradan Bakabilirsiniz.
Önerilen Kaynaklar
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Primer e-Kitap İndirmeyi Test Etme
- POSTMAN Eğitimi: POSTMAN Kullanarak API Testi
- LoadRunner VuGen Komut Dosyası Kullanarak Web Hizmetleri Performans Testi
- Postman, Farklı API Formatlarını Test Etmek İçin Nasıl Kullanılır?
- HP LoadRunner Öğreticileriyle Yük Testi
- Masaüstü, İstemci Sunucu Testi ve Web Testi arasındaki fark
- Yeni veya İleri Düzey Bir Test Kullanıcısı mısınız? Bu Kart Oyunundan Bulun