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, algoritma kurallarına birebir uyan test TCKN verileri kullanmak gerekir.

Kapsam uyarısı: Bu rehberde üretilen numaralar yalnızca format ve checksum açısından geçerlidir; resmî kayıtlarla karşılaştırılmaz, gerçek bir kişiye ait olmadığı garanti edilmez. "NVİ doğrulamasından geçen sahte TCKN" diye bir şey yoktur — NVİ sorgusu numaranın bir kişiyle eşleşip eşleşmediğini söyler, üretilen bir numara için bu sorgunun olumlu dönmesi beklenemez ve amaçlanmaz. Yalnızca yazılım testi ve eğitim amaçlıdır; gerçek işlemlerde kullanmayın.

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 uyan 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 çalışır; dış servis kesintileri test sonucunuzu bozmaz.
  • Benzersizlik Çakışmalarını Önler: Her koşumda farklı bir numara üretildiği için TCKN alanındaki UNIQUE kısıtı ikinci koşumda patlamaz. (Sabit değer kullanmak indeksi "bozmaz"; sorun, bütünlük kısıtının ihlal edilmesidir.)
  • 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. Alternatif olarak Vergi No Üretici ile toplu liste alabilir, TCKN Üretici ile test verinizi anında çeşitlendirebilirsiniz.

İşte tam bu noktada [tcknvkn.com](https://www.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 uyan 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](https://www.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.