Apidog'da otomatik test iş akışları tasarlarken, API istekleri, veritabanı sorguları, For döngüsü, ForEach Döngüsü, Komut Dosyaları gibi çeşitli test adımı türlerini kullanacaksınız.

Genellikle, bir adımda üretilen verinin daha sonraki bir adımda kullanılması gerekir. Bu, verinin süreci yönlendirdiği ve adımların birbirine bağlandığı mantıksal bir akış oluşturur.
Örneğin, şunları yapabilirsiniz:
- Önceki bir adımda bir kullanıcı belirteci (token) almak veya belirli bir kaydı almak için bir veritabanı sorgusu çalıştırmak
- Ardından bu sonuçları bir sonraki adımda bir uç nokta isteğinde kullanmak.
Bu önemli bir soruyu gündeme getiriyor:
Önceki (yukarı akış) adımlardaki verileri, sonraki (aşağı akış) adımlarda nasıl doğru şekilde referans alabilirsiniz?
Apidog'da Veri Aktarımı için İki Mekanizma
Apidog'un otomatik testinde, farklı test adımları arasında veri aktarımı için iki ana yöntem vardır:
1. "Dinamik Değerler" aracılığıyla Önceki Adım Verilerini Alma
Önceki (yukarı akış) bir adımın çıktısını, sonraki (aşağı akış) bir adımda "Dinamik Değer" özelliğini kullanarak doğrudan referans alabilirsiniz. Bu, verileri depolamadan anında almanızı sağlar.

2. Değişkenleri Saklama ve Yeniden Kullanma
Yukarı akış bir adımdan önemli verileri çıkarıp değişken olarak saklayabilirsiniz. Bu değişkenler daha sonraki herhangi bir adımda yeniden kullanılabilir.

Bu iki veri aktarım yöntemine hakim olmak, Apidog'da veriye dayalı, verimli otomatik iş akışları oluşturmanın anahtarıdır.
Bu makale, farklı test adımı türlerinde verinin nasıl ele alınacağını iki açıdan açıklamaktadır: veri nasıl çıkarılır ve nasıl kullanılır. Her ikisini de anlayarak daha esnek ve daha iyi bağlantılı test iş akışları oluşturabileceksiniz.
Uç Nokta Yanıt Verilerini Çıkarma ve Kullanma
Uç Nokta Yanıt Verilerini Anlama
Otomatik testlerde, API istekleri genellikle yapılandırılmış JSON yanıtları döndürür ve bunlar genellikle sonraki test adımları için girdi görevi görür.

Diğer adım türlerinden farklı olarak, uç nokta yanıtları genellikle daha karmaşıktır — sıklıkla iç içe nesneler ve diziler içerir.
Uç Nokta Yanıtından Veri Nasıl Çıkarılır
Test adımları arasında uç nokta yanıt verilerini çıkarmak ve aktarmak için iki ana yol vardır:
Yöntem Bir: Dinamik Değer Referansı
Önceki adımlardaki verileri doğrudan referans almak için "Dinamik Değerler" kullanın:
- Aşağı akış bir adımın herhangi bir giriş alanında, sihirli değnek simgesine tıklayın.
- "Önceki Adım Verilerini Al" seçeneğini seçin.
- Apidog doğru ifadeyi otomatik olarak ekleyecektir — manuel olarak yazmaya gerek yoktur.

Yöntem İki: Verileri Değişken Olarak Çıkarma
Uç nokta işlem sonrası modüllerinde "Değişkenleri Çıkar" özelliğini kullanarak yanıttan belirli alanları değişken olarak da çıkarabilirsiniz.
Örneğin, bir yanıttaki ürünlerin id
'sini çıkarmak için:
- Değişken adını
products_id
olarak ayarlayın. - JSONPath'i kullanın:
$.products[0].id

Daha sonraki adımlarda, {{products_id}}
kullanarak basitçe referans alın.
Uç Nokta Yanıtından Çıkarılan Veriler Nasıl Kullanılır
Bir API yanıtından veri çıkardıktan sonra — ister "Dinamik Değerler" ister "Çıkarılan Değişkenler" kullanarak — bu veriyi aşağı akış adımlarında çeşitli şekillerde kullanabilirsiniz:
1. Verileri uç nokta isteklerinde kullanın
- Dinamik Değer Aracılığıyla: Daha önce olduğu gibi, giriş alanındaki sihirli değnek simgesine tıklayın, "Önceki Adım Verilerini Al" seçeneğini seçin ve Apidog doğru ifadeyi otomatik olarak ekleyecektir.
- Çıkarılan Değişken Aracılığıyla: Daha önce bir değeri değişken olarak kaydettiyseniz (örneğin,
products_id
), API isteğinde{{products_id}}
'yi parametre olarak kullanmanız yeterlidir.

2. Verileri veritabanı işlemlerinde kullanın
API yanıtını bir veritabanı sorgusunda girdi olarak kullanabilirsiniz. Her iki yöntem de çalışır:
- Dinamik Değer Yöntemi
SELECT * FROM products WHERE id = '{{$.1.response.body.products[0].id}}'
API yanıt verilerini doğrudan SQL sorgusunda referans almak için dinamik değerleri kullanın:

- Çıkarılan Değişken Yöntemi: Ürün ID'sini
products_id
adında bir değişken olarak çıkardıysanız, şunu kullanın:
SELECT * FROM products WHERE id = '{{products_id}}'
3. Verileri For Döngüsü
'nde kullanın
Bir API yanıtındaki bir dizinin uzunluğuna göre adımları tekrarlamak için:
- Dizi uzunluğunu almak için dinamik değerleri kullanın, örneğin:
{{$.1.response.body.products.length}}
Bu, döngü yineleme sayısını ayarlar.

4. Verileri ForEach Döngülerinde
kullanın
Bir uç nokta tarafından döndürülen bir dizideki her öğeyi döngüye almak istiyorsanız:
- Dinamik Değer Yöntemi: Tüm diziyi doğrudan çıkarın, örneğin
{{$.1.response.body.products}}

- Değişken Çıkarma Yöntemi: Tüm dizinin
products
değişkeni olarak çıkarıldığı varsayılırsa, döngüye doğrudan{{products}}
ekleyin.

5. Verileri komut dosyalarında kullanın
Önceki adımlardaki verileri bir komut dosyası içinde kullanmak için pm.variables.get()
yöntemini kullanın. İşte nasıl yapılacağı:
- Dinamik Değer Yöntemi: Verileri doğrudan önceki bir adımdan okuyun:
const products = pm.variables.get("$.1.response.body.products")

- Değişken Çıkarma Yöntemi: Diziyi veya değeri bir değişken olarak kaydettiyseniz, veriyi almak için aşağıdaki komut dosyasını kullanın:
Geçici bir değişkenin değerini alın:
const products = pm.variables.get("products")
Ortam değişkeninin değerini alın:
const products = pm.environment.get("products")
Global bir değişkenin değerini alın:
const products = pm.globals.get("products")
{{products}}
gibi enterpolasyon sözdizimini doğrudan kullanamazsınız. Bunun yerine, değişken değerlerini yukarıda belirtilen uygun yöntemleri kullanarak almanız gerekir.Veritabanı Sorgu Sonuçlarını Çıkarma ve Kullanma
Veritabanı Verilerini Anlama
Bir veritabanı sorgu adımı yürütüldüğünde, nesne dizisi şeklinde yapılandırılmış veri döndürür. Yalnızca bir kayıt döndürülse bile, yine de bir dizi içinde sarılı olacaktır. Örneğin:

Uç nokta yanıtlarından farklı olarak, veritabanı adımlarındaki verilere dinamik değişkenler kullanılarak doğrudan erişilemez. Önce değerleri değişkenlere çıkarmanız gerekir.
Veritabanından Veri Nasıl Çıkarılır
Bir veritabanı adımında SQL sorgusunu çalıştırdıktan sonra, Apidog yanıtı otomatik olarak aşağıdaki gibi yapılandırılmış verilere ayrıştıracaktır:
[
{
"id": "1000",
"title": "Title 1",
"description": "Description for Title 1"
}
]
Daha sonra JSONPath kullanarak belirli alanları çıkarabilir ve bunları değişken olarak kaydedebilirsiniz.
Örneğin:
- Değişken adı:
products_id
- JSONPath:
$[0].id
(ilk öğenin ID'sini çıkarmak için). Tüm sonuç kümesini çıkarmak istiyorsanız:$
kullanın. - Aşağı akış adımları değişkenleri
{{ }}
aracılığıyla referans alır, örneğin:{{products_id}}

Veritabanından Çıkarılan Veriler Nasıl Kullanılır
1. Verileri uç nokta isteklerinde kullanın
Veritabanı sorgunuz bir ID döndürürse ve bunu bir değişken olarak kaydettiyseniz (products_id
), bunu doğrudan aşağı akış bir uç nokta isteğinde kullanabilirsiniz:

2. Verileri ForEach Döngülerinde
kullanın
Sorgunuz bir kayıt listesi döndürürse ve her birini ayrı ayrı işlemek istiyorsanız, tüm diziyi bir ForEach
döngüsü için kaynak olarak kullanabilirsiniz:

Önkoşul, veritabanı işlemlerinde değişkenleri çıkarırken tüm diziyi kaydetmenizdir, örneğin:
- Değişken adı:
products
- JSONPath:
$

3. Verileri komut dosyalarında kullanın
Çıkarılan veritabanı değişkenlerini bir komut dosyasında kullanmak için, diğer değişkenlerle aynı yöntemi kullanın.
Geçici bir değişkenin değerini alın:
const products = pm.variables.get("products")
Ortam değişkeninin değerini alın:
const products = pm.environment.get("products")
Global bir değişkenin değerini alın:
const products = pm.globals.get("products")
For Döngülerinden
Veri Çıkarma ve Kullanma
For Döngüleri
Nasıl Çalışır?
Bir For döngüsü
, belirli bir dizi eylemi birden çok kez tekrarlamak için kullanılır. Tanımlanmış bir yineleme sayısına göre çalışır.
Döngü için sabit bir sayı belirleyebilir veya önceki bir adımdan dönen bir dizinin uzunluğu (.length
) gibi dinamik bir değer kullanabilirsiniz. Örneğin: {{$.1.response.body.products.length}}
:

Not: Veri çıktısı veren diğer adımlardan farklı olarak, bir For döngüsü
kendisi doğrudan veri döndürmez. Yalnızca döngünün kaç kez yürütüldüğünü gösteren bir indeks değeri (0'dan başlayarak) sağlar.
For Döngülerinden
Veri Nasıl Çıkarılır
Yürütme işlemi sırasında, mevcut döngü indeksine dinamik değişken sözdizimi kullanarak erişebilirsiniz: {{$.9.index}}

9
sayısı,For döngüleri
adımının ID'sini ifade eder.- Her adımın benzersiz bir ID'si vardır.
- İndeks, ilk döngü için 0'dan, ikinci için 1'den başlayarak devam eder.
For Döngülerinden
Çıkarılan Veriler Nasıl Kullanılır
1. Verileri komut dosyalarında kullanın
Test komut dosyanızda döngüyle ilgili bilgileri kullanmak istiyorsanız, mevcut indeksi almak için pm.variables.get()
kullanabilirsiniz:
// Get the current loop index
const index = pm.variables.get("$.7.index");

2. Verileri diğer veri kaynaklarıyla kullanın
Bir For döngüsü
için yaygın bir kullanım durumu, önceki adımlardaki verileri işlemektir — bir dizi üzerinde döngü yapmak ve her öğeyi ele almak gibi:
// Get the array from a previous step
const products = pm.variables.get("$.1.response.body.products");
// Get the current loop index
const index = pm.variables.get("$.7.index");
// Access the current item in the array using the index
console.log(products[index]);
Bu, her döngü yinelemesi sırasında dizideki her öğe üzerinde toplu işlemler yapmanızı sağlar.
ForEach Döngüsünden
Veri Çıkarma ve Kullanma
ForEach Döngüsü
Nasıl Çalışır?
ForEach döngüsü özellikle dizi verileri için tasarlanmıştır. Dizideki her öğe üzerinde otomatik olarak yineler ve aynı işlem kümesini gerçekleştirir.
Bir ForEach döngüsü
ile bir For döngüsü
arasındaki temel fark, ForEach döngüsünün
her yinelemede mevcut dizi öğesinin tüm verilerini otomatik olarak çıkarması ve bu verileri alt adımlarında doğrudan erişilebilir kılmasıdır.
ForEach Döngüsünde
Verilere Erişme
Bir ForEach döngüsü
içinde sistem otomatik olarak iki özel değişken oluşturur:
- Mevcut döngü öğeleri: Şu anda işlenmekte olan dizi öğesinin tam verilerini içerir. Örneğin:
{{$.4.element}}
. Dizi nesneler içeriyorsa, özelliklerine doğrudan erişebilirsiniz, örneğin:{{$.4.element.id}}
,{{$.4.element.title}}
, vb.

- Mevcut döngü indeksi: Mevcut yineleme sayısını (0'dan başlayarak) temsil eder, örneğin:
{{$.4.index}}
.

Not: 4
sayısı, ForEach Döngüsü
adımının ID'sini ifade eder. Gerçek iş akışınızda, bunu sürecinizdeki doğru adım ID'si ile değiştirin.
ForEach Döngüsü
Verileri için Yaygın Kullanım Durumları
1. Verileri uç nokta isteklerinde kullanın
ForEach döngüleri, toplu veri işlemlerini yönetmek için mükemmeldir. Örneğin, bir öğe diziniz varsa, dizideki her öğe için otomatik olarak bir uç nokta isteği gönderebilirsiniz. Her döngü sırasında, aynı istek şablonu yeniden kullanılır, ancak {{$.4.element.id}}
gibi farklı verilerle doldurulur.

2. Verileri veritabanı işlemlerinde kullanın
Mevcut döngü öğesindeki verileri veritabanı sorguları çalıştırmak veya birden çok satır eklemek için kullanabilirsiniz.
Örnek: Mevcut öğenin alanını kullanarak veritabanını sorgulama
SELECT * FROM products WHERE id = '{{$.4.element.id}}'
{{$.4.element.id}}
ifadesine dinamik değer özelliği kullanılarak erişilebilir.

Mevcut öğeden birden çok alanı bir tabloya ekleme:
INSERT INTO products (id, title) VALUES ('{{$.4.element.id}}', '{{$.4.element.title}}')
3. Verileri komut dosyalarında kullanın
Döngüden gelen verileri özel bir komut dosyasında daha fazla işlemeniz gerekiyorsa, değerleri almak için pm.variables.get()
yöntemini kullanabilirsiniz:
// Get the current element
const item = pm.variables.get("$.4.element");
// Get the current index
const index = pm.variables.get("$.4.index");
Komut Dosyalarından Veri Çıkarma ve Kullanma
Komut Dosyası Verileri Nasıl Çalışır
Bir iş akışındaki diğer adımlardan farklı olarak, komut dosyaları sonraki adımlarda doğrudan kullanılabilecek çıktıları otomatik olarak oluşturmaz. Bir komut dosyasından sonraki adımlara veri aktarmak istiyorsanız, bunu manuel olarak bir değişkende saklamanız gerekir.
Bir Komut Dosyasından Veri Nasıl Çıkarılır
Değerleri farklı türdeki değişkenlere şu şekilde kaydedebilirsiniz:
// Get JSON response data
// 1. From the current endpoint response
// const currentData = pm.response.json();
// 2. Or get it from a previous step using a dynamic value
const preData = pm.variables.get("$.1.response.body");
// Save to environment variables
pm.environment.set('products', preData.products);
pm.environment.set('products_id', preData.products[0].id);
// Save to global variables
pm.globals.set('products', preData.products);
// Save to temporary variables (valid only during this run)
pm.variables.set('products', preData.products);
Değişkenler çıkarılıp ayarlandıktan sonra, bunları sonraki adımlarda {{variableName}}
sözdizimini kullanarak referans alabilirsiniz.
Komut Dosyalarından Çıkarılan Veriler Nasıl Kullanılır
1. Verileri uç nokta isteklerinde kullanın
Bir komut dosyasında ayarlanan değişkenler, aşağı akış uç nokta isteklerinde doğrudan parametre olarak kullanılabilir. Örneğin, komut dosyasında products_id
'yi kaydettiyseniz, daha sonraki bir istekte şu şekilde referans alabilirsiniz: {{products_id}}
.

2. Verileri veritabanı işlemlerinde kullanın
Komut dosyası değişkenleri, dinamik SQL ifadeleri oluşturmak için de kullanılabilir. Örneğin:
SELECT * FROM products WHERE id = '{{products_id}}'
3. Verileri For Döngüsü
'nde kullanın
Döngü sayısını veya diğer ara değerleri oluşturmak, bunları "geçici değişkenler" olarak saklamak ve For Döngüsü
adımına aktarmak için bir komut dosyası kullanabilirsiniz:
pm.variables.set("loopCount", 5);
Ardından, döngü ayarlarında, yineleme sayısı olarak {{loopCount}}
kullanın.
4. Verileri ForEach Döngülerinde
kullanın
Tüm bir diziyi bir değişkende saklayabilir ve bunu bir ForEach Döngüsü
için veri kaynağı olarak kullanabilirsiniz.
Örnek:
// Optionally retrieve array from a previous step using dynamic values
// const preData = pm.variables.get("$.1.response.body.products")
const preData = [{id: 1}, {id: 2}, {id: 3}];
// Save to environment variable
pm.environment.set('products', preData);
Ardından ForEach Döngüsünde
, veri kaynağını {{products}}
olarak ayarlayın.
Sonuç
Verimli bir otomatik test iş akışı oluşturmak için, farklı adım türlerinden verilerin nasıl çıkarılacağını ve kullanılacağını anlamak çok önemlidir:
- Uç nokta ve veritabanı adımları iş ile ilgili veriler üretir.
- Döngü adımları mantık akışını kontrol eder.
- Komut dosyası adımları verileri işlemek ve dönüştürmek için kullanılır.
Dinamik değer referansı ile değişken çıkarma yöntemlerini birleştirerek, esnek ve güçlü, veriye dayalı bir test süreci tasarlayabilirsiniz.
Veri Aktarımı için En İyi Uygulamalar:
- Yalnızca bir kez veya ara sıra kullanılan basit veriler için dinamik değer referansı kullanın.
- Birden çok adımda yeniden kullanılması veya komut dosyalarında işlenmesi gereken veriler için değişken çıkarma kullanın.
Veri karmaşıklığına ve kullanım sıklığına göre doğru yöntemi seçmek, iş akışınızı daha sürdürülebilir ve verimli hale getirecektir.