In der modernen Softwareentwicklung ist die Qualität der verwendeten Testdaten entscheidend für den Erfolg eines Projekts. Besonders bei der Arbeit mit internationalen Systemen stellen länderspezifische Identifikationsnummern oft eine Herausforderung dar, da sie komplexen Validierungsregeln folgen. Hier setzt mock-jutsu an: Mit der Funktion za_idnr bietet die Bibliothek eine spezialisierte Lösung zur Generierung von südafrikanischen Identitätsnummern (South African ID). Diese Mock-Daten sind so strukturiert, dass sie von Validierungsalgorithmen als echt erkannt werden, ohne dabei den Datenschutz durch die Verwendung realer Personendaten zu gefährden.
Die Funktion za_idnr erzeugt eine 13-stellige Nummer, die exakt den offiziellen Vorgaben Südafrikas entspricht. Der Aufbau beginnt mit den ersten sechs Ziffern, die das Geburtsdatum im Format JJMMTT abbilden. Es folgen vier Ziffern für das Geschlecht, wobei Werte unter 5000 für weibliche und Werte ab 5000 für männliche Personen stehen. Die elfte Ziffer gibt den Status der Staatsbürgerschaft an, gefolgt von einer Klassifizierungsziffer. Das entscheidende Merkmal für die technische Korrektheit ist jedoch die letzte Stelle: eine Prüfziffer, die auf dem Luhn-Algorithmus basiert. Durch diese präzise Implementierung stellt mock-jutsu sicher, dass die generierten Testdaten auch strengste Checksummen-Prüfungen in Backend-Systemen bestehen.
Die Integration in den Workflow ist für Entwickler denkbar einfach gestaltet. Über das Python-Modul lässt sich die ID mit jutsu.generate('za_idnr') direkt in Skripte einbinden, während das Command Line Interface (CLI) mit dem Befehl mockjutsu generate za_idnr schnelle Ergebnisse für die Konsole liefert. Auch für Performance-Tests ist die Bibliothek optimiert; so kann za_idnr in JMeter über den Ausdruck ${__mockjutsu(za_idnr,)} genutzt werden, um Lasttests mit realistischen Datensätzen zu befeuern. Diese Vielseitigkeit macht die Funktion zu einem unverzichtbaren Werkzeug für QA-Ingenieure und Backend-Entwickler gleichermaßen.
Typische Testszenarien umfassen die Validierung von Registrierungsformularen, die Verarbeitung von KYC-Prozessen (Know Your Customer) in Fintech-Anwendungen oder die Befüllung von Staging-Datenbanken für HR-Systeme. Da za_idnr garantiert valide Prüfsummen liefert, entfällt die zeitaufwendige manuelle Erstellung von Testdaten. Entwickler profitieren von einer erheblichen Zeitersparnis und einer höheren Testabdeckung, da verschiedene Geburtsdaten und Geschlechterkombinationen automatisiert generiert werden können. Mit mock-jutsu wird die Simulation internationaler Identitäten effizient, sicher und technisch präzise.
mockjutsu generate za_idnrmockjutsu bulk za_idnr --count 10mockjutsu export za_idnr --count 10 --format jsonmockjutsu export za_idnr --count 10 --format csvmockjutsu export za_idnr --count 10 --format sql# --mask: regulation-compliant output (PCI DSS / GDPR / KVKK)mockjutsu generate za_idnr --maskmockjutsu bulk za_idnr --count 5 --maskfrom mockjutsu import jutsujutsu.generate('za_idnr')jutsu.bulk('za_idnr', count=10)jutsu.template(['za_idnr'], count=5)# mask=True: regulation-compliant outputjutsu.generate('za_idnr', mask=True)jutsu.bulk('za_idnr', count=5, mask=True)${__mockjutsu_intl_ids(za_idnr)}# JMeter Function: __mockjutsu_intl_ids# Parameter 1: za_idnr# Parameter 2: (not required for this function)# Add 'mask' keyword to get a regulation-compliant masked value${__mockjutsu_intl_ids(za_idnr,mask)}GET /generate/za_idnr# → {"type":"za_idnr","result":"...","status":"ok"}GET /bulk/za_idnr?count=10POST /template {"types":["za_idnr"],"count":1}# mask=true: regulation-compliant outputGET /generate/za_idnr?mask=trueGET /bulk/za_idnr?count=5&mask=true| Parameter | Werte | Beschreibung |
|---|---|---|
| --mask | true | false | Return a regulation-compliant masked value (PCI DSS, GDPR, KVKK…) |