Yükleniyor
Jmeter

Jmeter'da Json Extractor kullanımı

Jmeter'da Json Extractor kullanarak dönen response'da parametreden değer ayıklama

  • Yıldız:
  • Yazar: İnanç Özkul
  • Web sayfası: inancozkul.com.tr
  • Oluşturma Tarihi:12.12.2020 23:54:59
  • Güncellenme Tarihi:18.01.2022 14:03:46

 Merhabalar,

Neredeyse bütün uygulamalarda herhangi bir özel işlem gerçekleştirilirken kullanıcının login olması gerekmektedir ve bu her login işleminden sonra kullanıcıya özel bir token oluşturulur. Giriş yapan kullanıcı, işlemlerini gerçekleştirirken hissetmeden bu token yardımıyla diğer bütün api'lere erişim sağlamaktadır. Örneğin; Bir mail uygulamasında, mail atabilmek için login olma şartı vardır, login olduktan sonra içeride diğer işlemleri uygulayabilir yada herhangi bir alışveriş sitesinde alışveriş yaparken satın alma işlemi gerçekleştirilirken login olma şartı gerekmektedir. Bu yüzden birden fazla API'leri biribirine bağlamak için kullanılan olmazsa olmaz Json Extractor'dan bahsedeceğim. Jmeter'da hazırlık süresinde kullandığım bir çok elementten bu yazıda bahsetmeyeceğim.  Keyifli okumalar dilerim.

Uygulamaya geçmeden önce herhangi bir json'dan extraction işlemleri uygulayalım.

{
   "store":{
      "book":[
         {
            "category":"reference",
            "author":"Nigel Rees",
            "title":"Sayings of the Century",
            "price":8.95
         },
         {
            "category":"fiction",
            "author":"Evelyn Waugh",
            "title":"Sword of Honour",
            "price":12.99
         }
      ],
      "bicycle":{
         "color":"red",
         "price":19.95
      }
   },
   "expensive":10
}
JsonPathSonuç
$.store.book[*].authorBütün kitapların authors bilgilerini döndürür
$..authorBütün kitapların authors bilgilerini döndürür
$.store.*Store altında bulunan bütün dataları döndürür
$.store..pricePrice parametresine sahip bütün dataları döndürür
$..book[0,1]0. ve 1. indisteki kitap bilgilerinin döndürür 
$..book[:2]0. ve 1. indisteki kitap bilgilerinin döndürür 
$..book[2:]2. indisten, dizi sonuna kadar olan kitap bilgilerinin döndürür(2 adet indis olduğu için 0 döner)
$..book[?(@.isbn)]Bütün kitapların ISBN numarasını döndürür(ISBN olmadığı için 0 döner)
$.store.book[?(@.price < 10)]Fiyatı 10'dan küçük olan kitapları döner
$..book[?(@.price <= $[‘expensive’])]Satış fiyatı alış fiyatından büyük olan kitapları döndürür
$..book[?(@.author =~ /.*REES/i)]Regex bilgisine uygun bütün kitap bilgilerini döndürür
$..*Bütün response'u döndürür
........

Örnekler bu şekilde dilediğiniz gibi uzatılabilir. Kendinizi denemek için online olarak JsonPath uzantısını kullanabilirsiniz. Gerçekten bu hizmet çok yardımcı olmaktadır.

Dilerseniz artık örneğe geçebiliriz.

YaaniMail'de herhangi bir mail işlemi yapabilmek için kullanıcının giriş yapabilmesi gerekmektedir. Bu yüzden ilk olarak login işlemini sağlayabilmek için bir http request oluşturup gereken request header ve body'lerini dolduralım. Kullanacağım dataları önceden oluşturmuş CSV Data Set Config'den çekeceğim.

1.png

Login işlemini yaptıktan sonra Response Data > Response Body içerisinde access token parametresini görüntüleyebiliriz.

2.png

Bir adet json extractor ekleyerek bizlere dönen response'dan bu access_token'ı çekip, bir sonraki işlemlerde kullanacağız. 

3.png

Access_token parametresini çektikten sonra header manager'de kullanmak üzere alttaki gibi kurulumu gerçekleştirebiliriz.

4.png

Bu işlemden sonra bütün thread'lerin login işlemlerinin access_token'ı çekip local data'ya kaydettik. Bu değeri istediğiniz şekilde kullanımını gerçekleştirebiliriz.


Dosyalar: 

jsonExtractor.rar

Proje içerisinde bulunan username ve password test için eklendiği için kendinize yeni bir kayıt oluşturarak denemeniz sağlıklı olacaktır.


Umarım ilginizi çekmiştir, eğer ki konu hakkında sizleri en azından fikir sahibi yapabildiysem ne mutlu, şimdilik görüşmek dileğiyle sağlıkla kalın.


Kaynak:

octoperf

Etiketler : [ 4 ] Jmeter, Json, Extractor, Json Extractor,

Linked In
Giriş yap

Bu başlıkta herhangi bir yorum bulunmamaktadır