Katalon Studio İle API Testi – POST Request and verify the Response

Herkese Merhaba ,

Bu yazımda Katalon Studio ile REST API testleri için JSON yanıtını inceleme ve parametre olarak kullanma konularını örnek bir proje üzerinden anlatmaya çalışacağım. Projemiz için https://reqres.in/ adresinde yer alan test API ‘lerini kullanacağız.

1.ADIM – API ‘leri Katalon Studio ‘ ya ekleme

İlk olarak Katalon Studio projemizi açıyoruz ve Object Repository > New > Web Service Request seçeneğine tıklanır.

https://reqres.in/ adresinde yer alan yukarıdaki ekran görüntüsünde de işaretlenen LIST USERS ve UPDATE API ‘lerini test için kullanacağız.

Web Service Request sayfasında yer alan URL alanına LIST USERS API ‘sinin URL bilgisi https://reqres.in/api/users?page=2 yazılır.

2.ADIM – Test Case içerisine API ‘leri dahil etme

Aşağıdaki ekran görüntüsünde de gösterildiği şekilde Add to new Test Case butonuna basılarak , API Sent Request ‘i içeren Test Case otomatik olarak tanımlanır.

3.ADIM – JSON response içeriğinde yer alan parametre değerini global değişken olarak tanımlama

İlk olarak ortam değişkenlerine “UserName” adında string bir değişken tanımlanır.

JSON parametresinin path bilgisini alabilmek için https://jsonpathfinder.com/ adresine USERLIST API ‘sinin response içeriği kopyalanır , ardından path bilgisi alınmak istenen parametrenin üzerine tıklanır. Aşağıdaki ekran görüntüsünde de görüleceği üzere first_name parametresine ait path bilgisi x.data[1].first_name olarak ekranda yer almaktadır.

4.ADIM – JSON response içeriğinde yer alan parametre değerini global değişkene değer olarak atama

response1 = WS.sendRequest(findTestObject(‘UserList’)) kod parçacığı ile API ‘ye request gönderilir.

Response içeriğinden ilgili parametre bilgisini alabilmek için ise aşağıdaki kod parçacığı kullanılır:

def slurper = new groovy.json.JsonSlurper()

def result = slurper.parseText(response1.getResponseBodyContent())

def value = result.data[1].first_name

JSON response içeriğinde yer alan parametre değerini global değişkene değer olarak atamak için ise aşağıdaki kod parçacığı kullanılır :

GlobalVariable.UserName = value

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static com.kms.katalon.core.testobject.ObjectRepository.findWindowsObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import com.kms.katalon.core.windows.keyword.WindowsBuiltinKeywords as Windows
import internal.GlobalVariable as GlobalVariable

response1 = WS.sendRequest(findTestObject(‘UserList’))

def slurper = new groovy.json.JsonSlurper()

def result = slurper.parseText(response1.getResponseBodyContent())

def value = result.data[1].first_name

GlobalVariable.UserName = value

5.ADIM : Global Değişken Olarak tanımlanan API response parametresini , farklı bir API ‘nin request parametresi olarak kullanma

2.adımda olduğu gibi https://reqres.in/api/users/2 API bilgisi projeye dahil edilir.

Request içerisinde yer alan name alanı değişken atanacağı için ${UserName} olarak tanımlanır.

name alanına global değişkeni atamak için ise aşağıdaki ekran görüntüsünde de gösterildiği üzere Variables alanına UserName adında bir değişken tanımlanır ve değeri Global değişken olarak tanımlanan UserName olarak atanır.

Son olarak 2. API içinde request göndermek için Test Case içeriğine aşağıdaki kod satırı eklenir.

WS.sendRequest(findTestObject(‘UserUpdate’))

Son olarak projeyi çalıştırdığımızda ilk olarak USERLIST API ‘ sine istek gönderilecektir. İsteğin response mesajında yer alan first_name parametresi global değişken olarak tanımlanır.

UPDATE API ‘si için request içeriğinde yer alan name parametresi için USERLIST API ‘nin response parametresi kullanılır.

Bir çok kullanımı harmanlamaya çalıştığım bir yazının daha sonuna geldik.

Umuyorum yararlı bir yazı olmuştur. Sorularını ve yorumlarınızı https://emineakturkblog.wordpress.com/iletisim/ kısmından iletebilirsiniz.

Bir sonraki yazımda görüşmek üzere..

                         Emine Aktürk

7 Comments Kendi yorumunu ekle

  1. Excellent post. I was checking constantly this blog and I’m inspired!
    Very useful information specially the final part 🙂 I handle such information much.
    I used to be seeking this certain info for a long time. Thanks and good luck.
    http://marcyfas.Mee.nu/?entry=3087418 https://zenwriting.net/a7v7w5xq8b http://Haleyjtxtmq2i8.ek1.pl/2020/09/19/austin-peay-state-s-borders-university-or-college-athletics/

    Take a look at my website … wholesale nba jerseys free shipping

    Beğen

  2. it konsultan dedi ki:

    Everythіng is very open with a very clear explanation of the
    challenges. It was tгuly informative. Your website is extremeⅼy helpful.
    Tһanks for sharing!

    Beğen

  3. Gregory dedi ki:

    Somе genuinely intеresting рoints you hɑᴠe
    ᴡritten.Assisted mе ɑ lot, just whаt I
    waѕ looking for :D.

    Beğen

  4. Hi there Dear, are you actually visiting this web page on a regular basis,
    if so after that you will absolutely obtain good experience.

    Beğen

  5. First-class article indeed. My boss has been looking for this
    info.

    Beğen

  6. Cameron dedi ki:

    Ι like the valuable info yoս provide іn your articles.
    I’ll bookmark your weblog and cһeck again here regularly.
    I’m quite sure I wilⅼ learn a lot of new stuff riɡht here!
    Best of luck for the next!

    Beğen

  7. Hey There. I ɗiѕcovered youг blog using msn. Thiѕ is a гealⅼy well written article.
    I will make sure to bookmark it and come back to learn extra of yoսr useful info.

    Thank you for the post. I will ceгtainly comeback.

    Beğen

Yorum bırakın