Un generador de direcciones falsas produce direcciones que parecen estructuralmente correctas pero no describen ningún hogar, negocio o buzón real. Esa distinción es todo el producto. El resultado es un fixture para probar formularios, sembrar bases de datos, crear maquetas de capturas de pantalla y entornos de demostración. No es una forma de contactar a una persona ni sustituye a un servicio de verificación de direcciones. Cada dirección que devuelve este sitio se compone a partir de fixtures sintéticos.
La parte útil de una dirección generada es su forma: el orden de las líneas, el patrón del código postal, el código de estado o provincia, el conjunto de caracteres. Esos son exactamente los elementos que rompen los formularios en producción. Una dirección generada que los ignora es peor que no tener ningún fixture, porque pasará tu formulario y luego fallará con datos reales, o hará fallar tu formulario por un motivo que no puede darse. Esta guía cubre lo que un generador debe hacer bien, cómo sembrarlo y cómo los datos sintéticos se filtran a lugares a los que nunca deberían llegar.
Qué contiene realmente una dirección sintética
Cada resultado se compone a partir de una definición de país, uno de los cinco fixtures de ciudad de ese país, una lista de nombres de calles, un número de edificio y un patrón de código postal. El generador elige un país, elige un fixture de ciudad dentro de él, construye una línea de calle en el orden local y rellena el código postal según el patrón. No se toma ninguna muestra de una base de datos de entregas ni se copia nada de un buzón real.
Eso da dos garantías y dos no garantías. Garantizado: el formato sigue las convenciones del país y la misma semilla devuelve la misma dirección. No garantizado: que la calle exista con ese número, o que un código postal no estadounidense corresponda a una zona de entrega real. Para los ZIP de US hay una comprobación de existencia independiente contra un conjunto de datos de 40.979 filas en el verificador de códigos postales. Fuera de Estados Unidos la comprobación es solo estructural, y el sitio lo dice en lugar de insinuar más.
- Formato: correcto para el país seleccionado, siempre
- Reproducibilidad: determinista para una semilla dada
- Existencia: solo búsqueda de ZIP de US, contra 40.979 filas
- Entregabilidad: nunca se afirma ni se insinúa con una marca de verificación verde
- Datos personales: ninguno, porque no se representa a ninguna persona real
Por qué la corrección del formato importa incluso con datos desechables
Los formularios de dirección rara vez prueban la dirección. Prueban la capa de validación, el enmascaramiento, los límites de longitud, la dependencia país-región y el serializador que escribe la fila en la base de datos. Un fixture que ya está mal formado oculta todo eso. Si tu fixture canadiense es "123 Main St, Toronto, ON 12345", el formulario acepta un patrón que un código postal canadiense real nunca puede cumplir, y el error llega a producción.
El fallo inverso es igual de común. Los equipos escriben a mano un fixture que parece real pero es incorrecto para el país, y luego añaden una solución provisional en el validador para aceptarlo. Seis meses después, la solución provisional es crítica y nadie recuerda por qué el campo postal alemán permite letras. Los datos generados que siguen los patrones publicados eliminan ambas direcciones de deriva, siempre que el propio generador sea honesto sobre lo que sabe.
Dónde las direcciones sintéticas son la herramienta adecuada
Las direcciones sintéticas pertenecen a todas las capas por debajo de producción: pruebas unitarias de analizadores y validadores, pruebas de integración que escriben y leen filas de direcciones, pruebas de extremo a extremo que rellenan un formulario de pago, pruebas de carga que necesitan volumen sin tocar a un cliente real y ejecuciones de capturas de pantalla localizadas para una página de marketing. También son útiles para fuzzing, porque puedes generar deliberadamente valores en el límite de un límite de longitud o de un conjunto de caracteres.
Son la herramienta equivocada para cualquier cosa que dependa de un punto de entrega real. No las uses para comprobaciones de fraude, verificación de identidad, evasión de bloqueos, creación masiva de cuentas, manipulación de reseñas ni para probar una integración de envíos de extremo a extremo. Una dirección sintética no tiene buzón, así que cualquier paso que requiera un escaneo real del transportista fallará, y usar identidades generadas para obtener bienes o servicios es fraude independientemente de cómo se produjeron los datos.
- Bien: pruebas unitarias de validadores, semillas de staging, relleno de formularios e2e, volumen de carga
- Bien: QA de localización donde cada locale necesita una dirección local plausible
- Bien: entornos de capturas de pantalla y demostración que nunca deben mostrar a un cliente
- Mal: KYC, puntuación de fraude, cribado de sanciones o cualquier cosa que espere una entrega
- Mal: analítica de producción, porque las filas generadas contaminan los cálculos de conversión
Cobertura: 38 países con cinco fixtures de ciudad cada uno
El generador cubre 38 países. Cada país tiene cinco fixtures de ciudad, así que hay 190 definiciones de ciudad en total, y cada ciudad conoce su código de región, su patrón postal y las convenciones locales de calles. La cobertura se concentra en los mercados donde realmente se construyen formularios de dirección: Norteamérica, Europa occidental y septentrional, y los principales mercados de Asia-Pacífico y América Latina.
Dos países del conjunto no tienen código postal: Hong Kong y los Emiratos Árabes Unidos. El generador deja el campo vacío para ambos en lugar de inventar un número. Ese es el comportamiento correcto. Un formulario que marca el código postal como obligatorio en esos países está roto, y un fixture que proporciona un código falso ocultará el defecto hasta que un usuario real lo encuentre.
| Región | Países del conjunto de fixtures | Cantidad | Código postal |
|---|---|---|---|
| Norteamérica | Estados Unidos, Canadá, México | 3 | Sí, los tres |
| Europa occidental | Reino Unido, Irlanda, Francia, Alemania, Países Bajos, Bélgica, Suiza, Austria | 8 | Sí, los ocho |
| Europa septentrional | Suecia, Noruega, Dinamarca, Finlandia | 4 | Sí, los cuatro |
| Europa meridional y oriental | España, Portugal, Italia, Polonia, Chequia, Grecia, Rumanía, Hungría | 8 | Sí, los ocho |
| Asia-Pacífico | Japón, Corea del Sur, Singapur, Australia, Nueva Zelanda, India, China, Hong Kong | 8 | No para Hong Kong |
| América Latina | Brasil, Argentina, Chile, Colombia, Perú | 5 | Sí, los cinco |
| Oriente Medio y África | Emiratos Árabes Unidos, Sudáfrica | 2 | No para los EAU |
| Total | 38 países, cinco fixtures de ciudad cada uno | 38 | Dos sin código |
Orden de campos y patrones postales que puedes comprobar
Un generador vale lo que vale su tabla de países. Los patrones siguientes son los que más a menudo se aplanan en una única plantilla con forma estadounidense. Fíjate en que Japón invierte el orden por completo, que los Países Bajos ponen letras después de los dígitos y que Brasil y Japón usan ambos un guion que es convencional y no estructural.
Los códigos postales deben almacenarse como cadenas. Alemania, Francia, España, Italia y Polonia emiten códigos con ceros iniciales, y una columna entera convierte silenciosamente 01067 en 1067. Lo mismo se aplica a los códigos australianos y brasileños. Si tu esquema tiene una columna postal numérica, el fixture la expondrá en el momento en que siembres una dirección alemana.
| País | Orden de líneas | Patrón postal | Nota de almacenamiento |
|---|---|---|---|
| Estados Unidos | Calle, ciudad, ST ZIP | 5 dígitos o 12345-6789 | Conserva el guion en ZIP+4 |
| Canadá | Calle, ciudad, ST A1A 1A1 | Letra dígito letra, espacio, dígito letra dígito | No permitas D, F, I, O, Q, U como primera letra |
| Reino Unido | Calle, ciudad, A9A 9AA | 2-4 caracteres exteriores, espacio, 3 caracteres interiores | Un solo espacio; mayúsculas |
| Alemania | Calle, ciudad de 5 dígitos | 5 dígitos | Los ceros iniciales son significativos |
| Países Bajos | Calle, ciudad de 4 dígitos AB | 4 dígitos, espacio, 2 letras mayúsculas | Las letras forman parte del código |
| Japón | Postal, prefectura, ciudad, calle | 3 dígitos, guion, 4 dígitos | Primero la unidad más grande |
| Brasil | Calle, ciudad - ST, 12345-678 | 8 dígitos, guion después del quinto | El guion es convencional |
| Hong Kong | Calle, distrito, Hong Kong | Ninguno | Nunca exijas un código |
| Emiratos Árabes Unidos | Calle, ciudad, emirato | Ninguno | La convención habitual es el apartado de correos |
Siembra: hacer que la misma dirección falsa vuelva dos veces
Un generador que devuelve una dirección diferente en cada llamada no es un fixture, es ruido. La generación con semilla fija una entrada para que la secuencia de salida sea estable entre máquinas y entre ejecuciones. Pasa la semilla explícitamente en las pruebas, regístrala junto con cualquier conjunto de datos generado y trata un cambio de semilla como un cambio de fixture que requiere revisión.
El patrón práctico es derivar semillas por entidad a partir de una semilla padre, por ejemplo un hash de la semilla y el índice del registro. Eso mantiene estable el conjunto de datos y a la vez produce valores distintos por fila. También hace reproducibles los fallos: cuando CI informa de una dirección incorrecta, la semilla más el índice bastan para regenerar exactamente esa fila. Nunca derives la semilla del reloj ni de una llamada aleatoria, porque así es como una prueba inestable se convierte en un misterio permanente.
- Guarda la semilla junto al conjunto de datos generado, no en un comentario
- Deriva semillas de registro como hash(seed, index) para que los cambios de orden sigan siendo visibles
- Nunca uses Date.now() ni la fuente aleatoria del proceso como semilla en las pruebas
- Guarda una instantánea del primer y el último registro de cada conjunto de datos, no de todos
- Regenera en lugar de confirmar grandes blobs JSON de direcciones falsas
Validación estructural frente a comprobación de existencia
Son dos afirmaciones distintas, y confundirlas es la forma más común de que una suite de pruebas mienta a sus responsables. Una comprobación estructural responde a "¿esta cadena coincide con el patrón del país?". Una comprobación de existencia responde a "¿este código aparece en un conjunto de datos de referencia?". El verificador de códigos postales de este sitio hace la primera para todos los países y la segunda solo para los ZIP de US, donde consulta 40.979 filas.
Una comprobación estructural superada te dice que el formulario no rechazará un valor bien formado. No te dice nada sobre si un transportista puede entregar en él, si el número de calle está dentro del rango de esa calle o si la ciudad coincide con el ZIP. Eso requiere datos de referencia postales que este sitio no incluye. Escribe tus aserciones para que coincidan con la comprobación que realmente realizas, o los nombres de las pruebas prometerán de más durante años.
| Comprobación | Qué demuestra que pase | Qué no demuestra |
|---|---|---|
| Coincidencia con el patrón del país | El valor está bien formado para ese país | Que el código esté asignado |
| Existencia de ZIP de US (40.979 filas) | El ZIP de 5 dígitos aparece en el conjunto de datos | Que la calle o la ciudad coincidan |
| Comprobación de campo obligatorio | Que el formulario se enviará | Que la dirección sea coherente |
| Ida y vuelta del analizador | Que la cadena se puede dividir y reconstruir | Que la división sea semánticamente correcta |
| Salida del generador de direcciones | Que el fixture tiene la forma correcta | Nada sobre el mundo real |
Campos que este generador deliberadamente no produce
El sitio no genera números de Seguro Social, números de tarjetas de pago, valores IMEI o IMSI, direcciones Bluetooth ni números de serie de dispositivos. Es un límite deliberado, no una función que falte. Esos identificadores llevan sumas de comprobación, registros de asignación o restricciones legales, y un valor generado que parece plausible es mucho más peligroso que uno obviamente falso, porque puede pasar un validador ingenuo y acabar en una captura de pantalla, un ticket o un commit.
El mismo límite se aplica a los datos de contacto. Las direcciones de correo generadas usan siempre el dominio reservado example.test, que nunca puede resolverse a un buzón real. Los números de teléfono generados se limitan al bloque NANP 555-0100 a 555-0199 en US y Canadá, el rango reservado para uso ficticio. Si un flujo de trabajo necesita un número de tarjeta o un identificador fiscal, usa los valores de prueba oficiales publicados por el procesador o la autoridad fiscal, y nunca un valor extraído de un generador.
- No se genera: SSN, ITIN, EIN ni ningún documento de identidad nacional
- No se genera: números de tarjetas de crédito o débito, incluidos los válidos según Luhn
- No se genera: IMEI, IMSI, MEID ni direcciones de dispositivos Bluetooth
- No se genera: números de serie, matrículas ni números de pasaporte
- Correos generados: solo example.test, un dominio reservado que no resuelve
- Teléfonos generados: solo NANP 555-0100 a 555-0199 de US y Canadá
Preguntas
- No. Cada dirección se compone a partir de fixtures sintéticos y no describe ningún punto de entrega real. El sitio no afirma la entregabilidad, y solo los ZIP de US reciben una comprobación de existencia contra un conjunto de datos de 40.979 filas.
- 38 países, cada uno con cinco fixtures de ciudad. Hong Kong y los Emiratos Árabes Unidos están incluidos pero devuelven un código postal vacío, porque ninguno de los dos países usa códigos postales.
- Sí. La generación usa semilla, así que la misma semilla e índice devuelven la misma dirección en cualquier máquina. Guarda la semilla con el conjunto de datos para que los fallos sigan siendo reproducibles.
- No. Son fixtures de prueba. Las filas generadas en la analítica de producción o en las tablas de clientes corrompen los informes y pueden engañar a cualquiera que más tarde las trate como registros reales.
- Esos identificadores están regulados, llevan suma de comprobación o ambas cosas, y un valor falso plausible puede colarse en capturas de pantalla y tickets a través de una validación ingenua. Usa en su lugar los valores de prueba oficiales del procesador o la autoridad.
¿Las direcciones son reales?+
¿Cuántos países cubre el generador?+
¿Puedo obtener la misma dirección dos veces?+
¿Puedo usar direcciones generadas en producción?+
¿Por qué la herramienta se niega a generar SSN o números de tarjeta?+
Los ejemplos son sintéticos. No utilices una dirección generada para verificaciones de identidad, registro de cuentas ni entregas.
Estándares de referencia
Herramientas relacionadas
- Abrir el generador de direcciones falsas
- Por país
- Formato de dirección
- Búsqueda de ZIP
- Validador de direcciones
- Generador por lotes