Yazılım geliştirme süreçlerinde özellikle finansal teknolojiler üzerine çalışan ekipler için gerçekçi veri setleriyle çalışmak büyük bir önem taşır. Ödeme sistemlerinin, e-ticaret altyapılarının ve kullanıcı kayıt formlarının test edilmesi aşamasında, gerçek kredi kartı bilgilerini kullanmak hem güvenlik riskleri oluşturur hem de yasal düzenlemelere aykırıdır. İşte bu noktada mock-jutsu kütüphanesinin sunduğu cardnum fonksiyonu devreye girerek, geliştiricilere ihtiyaç duydukları güvenli ve standartlara uygun test verisi üretim imkanını sağlar. Bu fonksiyon, tamamen sentetik ancak yapısal olarak geçerli kredi kartı numaraları oluşturarak test süreçlerini hızlandırır.
Cardnum fonksiyonu tarafından üretilen her bir mock data, finans dünyasında geçerlilik kontrolü için kullanılan standart Luhn algoritması (Mod 10) doğrulamasına tabi tutulur. Bu algoritma, bir kart numarasının rastgele bir sayı dizisi olmadığını, belirli bir matematiksel formüle dayandığını garanti eder. Örneğin "4532 0151 9283 1029" gibi bir çıktı üreten cardnum, uygulamanızın ön yüzündeki doğrulama mekanizmalarından veya arka plandaki ödeme geçidi kontrollerinden başarıyla geçecek yapıdadır. Bu durum, hata ayıklama süreçlerinde sahte hata raporlarıyla uğraşmak yerine sistemin mantıksal akışına odaklanmanıza yardımcı olur.
Mock-jutsu, geliştiricilere esnek kullanım seçenekleri sunarak farklı iş akışlarına kolayca entegre edilebilir. Python projelerinizde sadece jutsu.generate('cardnum') çağrısıyla anlık veri üretebilirken, otomasyon senaryoları veya hızlı denemeler için komut satırı üzerinden mockjutsu generate cardnum komutunu kullanabilirsiniz. Ayrıca, performans ve yük testleri için popüler bir araç olan JMeter içerisinde de ${__mockjutsu(cardnum,)} söz dizimi ile dinamik olarak binlerce benzersiz kart numarası oluşturmanız mümkündür. Bu çok yönlülük, cardnum fonksiyonunu hem birim testlerde hem de geniş kapsamlı sistem testlerinde vazgeçilmez bir araç haline getirir.
Sonuç olarak, kaliteli bir test verisi stratejisi oluşturmak, yazılımın güvenilirliğini doğrudan etkiler. Mock-jutsu kütüphanesinin cardnum özelliği, gerçek kullanıcı verilerini tehlikeye atmadan, endüstri standartlarında finansal veriler üretmenizi sağlar. KVKK ve GDPR gibi veri gizliliği standartlarına uyum sağlarken, geliştirme ortamınızın kalitesini artırmak istiyorsanız bu fonksiyonu projelerinize dahil etmek oldukça verimli bir adım olacaktır. Hem manuel testlerde hem de CI/CD süreçlerinde bu fonksiyonun sağladığı tutarlılık, geliştirme ekibinin hata yapma olasılığını azaltarak daha sağlam bir kod yapısı oluşturulmasına katkıda bulunur.
mockjutsu generate cardnum --network visamockjutsu bulk cardnum --count 10mockjutsu export cardnum --count 10 --format jsonmockjutsu export cardnum --count 10 --format csvmockjutsu export cardnum --count 10 --format sql# --mask: regulation-compliant output (PCI DSS / GDPR / KVKK)mockjutsu generate cardnum --maskmockjutsu bulk cardnum --count 5 --mask# --bin8: 8-digit BIN masking (ISO/IEC 7812:2017)mockjutsu generate cardnum --mask --bin8mockjutsu masker cardnum_bin8:from mockjutsu import jutsujutsu.generate('cardnum')jutsu.bulk('cardnum', count=10)jutsu.template(['cardnum'], count=5)# with --network parameterjutsu.generate('cardnum', network='visa')# mask=True: regulation-compliant outputjutsu.generate('cardnum', mask=True)jutsu.bulk('cardnum', count=5, mask=True)# 8-digit BIN mask (ISO/IEC 7812:2017)jutsu.masker('cardnum_bin8', '4532015112830366')${__mockjutsu_financial(cardnum)}${__mockjutsu_financial(cardnum:visa)}# JMeter Function: __mockjutsu_financial# Parameter 1: cardnum OR cardnum:# Qualifier values: visa|mc|amex|troy|mir|jcb|discover|unionpay|maestro# Parameter 2: (not required for this function)# Add 'mask' keyword to get a regulation-compliant masked value${__mockjutsu_financial(cardnum,mask)}GET /generate/cardnum# → {"type":"cardnum","result":"...","status":"ok"}GET /bulk/cardnum?count=10POST /template {"types":["cardnum"],"count":1}# mask=true: regulation-compliant outputGET /generate/cardnum?mask=trueGET /bulk/cardnum?count=5&mask=trueParametreler
| Parametre | Değerler | Açıklama |
|---|---|---|
| --network | visa|mc|amex|troy|mir|jcb|discover|unionpay|maestro | Card network |
| --bin8 | value | bin8 |
| --mask | true | false | Return a regulation-compliant masked value (PCI DSS, GDPR, KVKK…) |
Örnek Çıktılar
4274657629402676Doğrulama Kuralları
- Standart: ISO/IEC 7812
- Kontrol algoritması: Luhn algoritması (son rakam kontrol hanesi)
- Visa: 4 ile başlar, 16 rakam | Mastercard: 51-55 veya 2221-2720, 16 rakam
- Amex: 34 veya 37 ile başlar, 15 rakam | Troy: 9792 ile başlar, 16 rakam
- Luhn: sağdan her çift konumdaki rakamı 2 ile çarp, 9'u geçerse 9 çıkar, toplam 10'a bölünmeli