API Testlerinde Kusursuz Doğrulama: Postman’de Otomatik TCKN Üretimi

Yayın: 6 dk okuma

Yazılım geliştirme ve kalite güvence (QA) süreçlerinde, sistemin uçtan uca (E2E) doğru çalıştığından emin olmak için gerçeğe en yakın verilerle test yapmak sağlam bir mimarinin temel taşıdır. Özellikle Türkiye'deki finans, sağlık, e-ticaret veya kamu entegrasyonu içeren projelerde, Nüfus ve Vatandaşlık İşleri (NVİ) doğrulamasından geçen veya algoritma kurallarına birebir uyan sahte TCKN algoritması verileri kullanmak zorunludur.

Sistem mimarları ve test mühendisleri için her defasında manuel olarak geçerli bir Türkiye Cumhuriyeti Kimlik Numarası (TCKN) bulmaya çalışmak veya rastgele klavyeye basarak veriler girmek, uygulamanızın doğrulama (validation) katmanına takılarak asıl test etmeniz gereken iş mantığına (business logic) ulaşmanızı engeller. Bu nedenle güvenilir bir test TCKN oluşturucu altyapısı, modern otomasyon süreçlerinin vazgeçilmez bir parçasıdır.

Bu rehberde, Postman TCKN üretme süreçlerini nasıl otomatize edebileceğinizi, algoritma kurallarına %100 uygun Postman Mock veri oluşturma adımlarını ve bu dinamik veriyi test senaryolarınıza nasıl entegre edeceğinizi teknik detaylarıyla inceleyeceğiz.

Neden Statik Veri Yerine Dinamik Mock Veri Kullanmalıyız?

API testlerinizi Postman üzerinden yürütürken karşılaşılan en büyük handikaplardan biri statik veri kullanımıdır. Veritabanı kısıtlamaları (örneğin Unique Index, Primary Key veya natural key kullanımları) söz konusu olduğunda, request body içine sabit olarak yazılan "11111111110" gibi değerler, ilk testte çalışsa bile sonraki isteklerde hızla "Duplicate Key" veya "Conflict (409)" hatalarına yol açar. Ayrıca statik veriler, cache mekanizmalarının test edilmesini de zorlaştırır.

Statik veriler yerine, her istekte yeniden hesaplanan mock TCKN verisi kullanmanın teknik avantajları şunlardır:

  • CI/CD Pipeline Uyumunu ve Verimliliğini Artırır: Testleriniz dışa bağımlı olmadan, manuel müdahaleye gerek kalmadan sürekli ve kesintisiz çalışmasını garanti eder.
  • Veritabanı Şişmesini ve Çakışmaları Önler: Her çalışmada benzersiz bir kayıt atılarak veritabanı indekslerinin sağlıklı kalması sağlanır. Büyük ölçekli ve yüksek hacimli test veritabanlarında indeks bozulmalarının önüne geçer.
  • Gerçekçi Yük Testleri (Load Testing) ve Senaryolar Sunar: Doğrulama servislerini ve cache mekanizmalarını statik verinin yaratacağı yanılgılardan uzak, gerçek dünya şartlarında test etmenize olanak tanır.

Çözüm: Postman Pre-request Script ile Üretim (Hazır Kod Bloğu)

Postman, asıl istek sunucuya gitmeden hemen önce JavaScript kodları çalıştırmanıza olanak tanıyan harika bir özelliğe sahiptir. Postman Pre-request Script alanını kullanarak, her bir "Send" işleminde yepyeni ve NVİ algoritmasına birebir uyan bir TCKN üretebiliriz.

Aşağıdaki kod, 11 haneli matematiksel doğrulama algoritmasına uygun, modern, performanslı ve hatasız bir TCKN üretir ve bunu bir çevresel değişken (environment variable) olarak atar. (Kod bloğunda eski nesil tanımlamalar yerine modern ES6 JavaScript standartları kullanılmıştır).


// Geçerli bir TCKN üreten ana fonksiyon
const generateValidTCKN = () => {
    const tcknDigits = [];
    
    // 1. Kural: TCKN 0 ile başlayamaz (1-9 arası rastgele)
    tcknDigits.push(Math.floor(Math.random() * 9) + 1);

    // 2. ile 9. haneler arası rastgele sayılar (0-9)
    for (let i = 1; i < 9; i++) {
        tcknDigits.push(Math.floor(Math.random() * 10));
    }

    // 1, 3, 5, 7 ve 9. hanelerin toplamı (İndeks olarak: 0, 2, 4, 6, 8)
    const sumOdd = tcknDigits[0] + tcknDigits[2] + tcknDigits[4] + tcknDigits[6] + tcknDigits[8];
    
    // 2, 4, 6 ve 8. hanelerin toplamı (İndeks olarak: 1, 3, 5, 7)
    const sumEven = tcknDigits[1] + tcknDigits[3] + tcknDigits[5] + tcknDigits[7];

    // 10. Hane Algoritması: (Tek haneler toplamı * 7 - Çift haneler toplamı) mod 10
    let digit10 = ((sumOdd * 7) - sumEven) % 10;
    if (digit10 < 0) {
        digit10 += 10; // Negatif mod durumunu düzeltme
    }
    tcknDigits.push(digit10);

    // 11. Hane Algoritması: İlk 10 hanenin toplamının 10'a bölümünden kalan
    const sumFirst10 = tcknDigits.reduce((acc, curr) => acc + curr, 0);
    const digit11 = sumFirst10 % 10;
    tcknDigits.push(digit11);

    return tcknDigits.join('');
};

// Fonksiyonu çalıştırarak yeni değeri oluştur
const generatedTckn = generateValidTCKN();

// Üretilen değeri Postman Environment Variable olarak set et
pm.environment.set("dynamicTckn", generatedTckn);

// Not: Eğer environment yerine sadece o anki koleksiyon için geçerli olmasını isterseniz:
// pm.variables.set("dynamicTckn", generatedTckn); kullanabilirsiniz.
              

Üretilen Veriyi Requestlerde Kullanma

Pre-request script çalıştıktan sonra, pm.environment.set komutu ile dynamicTckn isimli bir çevresel değişken oluşturmuş olduk. Artık bu değişkeni Postman içinde süslü parantezler {{ }} ile dilediğimiz yerde çağırabiliriz.

Kullanım Adımları:

  1. Postman'de ilgili request'in veya collection'ın Pre-request Script sekmesine yukarıdaki kodu yapıştırın.
  2. Request'inizin Body kısmında, JSON verisi içinde bu değeri {{dynamicTckn}} şeklinde çağırın.

Örneğin, bir "Kullanıcı Kayıt" API'sine POST isteği atarken JSON body'niz şu şekilde görünmelidir:


{
  "firstName": "Test",
  "lastName": "Kullanıcısı",
  "identityNumber": "{{dynamicTckn}}",
  "email": "test-user-{{$timestamp}}@example.com"
}
              

*Burada API'ye her istek (Send) attığınızda, Pre-request script çalışacak, backend sisteminize yepyeni/geçerli bir kimlik numarası üretecek ve {{dynamicTckn}} alanına bu değeri yerleştirecektir.*

Daha Fazla Test Verisi İçin tcknvkn.com Avantajı

Postman içinde script yazmak bireysel API istekleriniz için harika bir çözümdür ve iş akışını mükemmel şekilde hızlandırır. Ancak bir backend geliştirici veya sistem mimarı olarak çoğu zaman daha geniş çaplı veri ihtiyaçlarımız olur. Bazen veritabanı "seed" işlemlerinde, yüksek hacimli yük testlerinde veya toplu veri entegrasyonlarında saniyeler içinde binlerce geçerli koda ihtiyaç duyabilirsiniz.

İşte tam bu noktada tcknvkn.com gerçek bir "can simidi" görevi görerek devreye giriyor.

  • Hız ve Pratiklik: Herhangi bir kod yazmanıza, karmaşık scriptlerle uğraşmanıza veya terminal açmanıza gerek kalmadan, tek tıkla algoritma kurallarına %100 uygun mock veriler elde edebilirsiniz.
  • Toplu Üretim: Yüksek hacimli veri ihtiyaçlarınız için saniyeler içinde binlerce geçerli TCKN ve VKN (Vergi Kimlik Numarası) üretebilirsiniz.
  • Doğrulama Aracı: API test süreçlerinizden sonra manuel kontroller yapmanız gerektiğinde, elinizdeki mevcut listelerin algoritmik olarak geçerli olup olmadığını anında test edebilirsiniz.

Kısacası, platform test veri yönetimi konusunda zaman kaybetmek istemeyen teknoloji profesyonellerinin başucu aracıdır.

Sonuç: Vakit Kaybetmeyin, Otomatize Edin!

Başarılı ve kesintisiz çalışan bir yazılım ürününün arkasında, yüksek kaliteli ve otomatize edilmiş test süreçleri yatar. Manuel test veri girişlerini geçmişte bırakıp API test otomasyonu süreçlerinizi kusursuzlaştırmak için Postman Pre-request Script'lerini kullanarak dinamik veriler üretmek, bu otomasyon kültürünün önemli bir parçasıdır.

Geliştirme ve test süreçlerinizde hızınızı kesmemek, manuel eforu sıfıra indirmek ve daha kapsamlı veri üretimi ile toplu doğrulama araçlarına anında ulaşmak için tcknvkn.com platformunu hemen şimdi tarayıcınızın yer imlerine (bookmark) eklemeyi unutmayın! Uygulamanızı test ederken veriye takılmayın, bırakın testleriniz aksamadan çalışsın.

www.tcknvkn.com

TCKN & VKN için format/algoritma doğrulama ve geçerli formatlı test verisi üretimi. Geliştiriciler için ücretsiz araç.