Generador IMEI Masivo: Genera Miles de IMEIs para QA y Automatización
Genera miles de números IMEI válidos a la vez para automatización QA, siembra de bases de datos, pruebas de carga y desarrollo de apps móviles. Guía completa.
Un IMEI de prueba es suficiente para validar un campo de formulario. Cien te llevan a través de una prueba de integración básica. Pero cuando ejecutas una suite de automatización QA para una plataforma MDM empresarial, siembras una base de datos para pruebas de carga, o construyes un entorno de simulación para un backend de telecomunicaciones, necesitas miles de números IMEI estructuralmente válidos — rápidos, variados y correctamente formateados. Para esto existe un generador IMEI masivo.
Esta guía explica cuándo y por qué importa la generación masiva de IMEI, los requisitos técnicos para generar IMEI válidos a escala, y cómo integrar los IMEI generados en lote en flujos de trabajo reales de QA y desarrollo.
Por Qué No Puedes Usar Simplemente Números de 15 Dígitos Aleatorios
El enfoque ingenuo para datos de prueba IMEI masivos es generar cadenas aleatorias de 15 dígitos. Parece sencillo, pero falla en todos los escenarios de prueba significativos:
-
Fallo de validación Luhn: Cada IMEI real tiene un dígito de verificación calculado mediante el algoritmo de Luhn. Los sistemas que validan el formato IMEI rechazarán cualquier número que no supere Luhn. Las cadenas puramente aleatorias de 15 dígitos fallan Luhn aproximadamente el 90% de las veces.
-
Fallo de validación TAC: Las plataformas MDM empresariales, los sistemas de operadores y las bases de datos de dispositivos identifican el fabricante y modelo del dispositivo a partir de los primeros 8 dígitos (el TAC). Un número aleatorio que no comience con un TAC registrado será marcado como dispositivo no reconocido o directamente rechazado.
-
Problemas de unicidad: Para el testing de bases de datos, necesitas IMEI genuinamente únicos. La generación aleatoria ingenua puede producir duplicados, causando violaciones de restricción UNIQUE en tu esquema y fallos de prueba erróneos.
-
Sin distribución realista: Las flotas de dispositivos del mundo real tienen una mezcla de fabricantes y modelos. Un dataset de prueba compuesto de números completamente aleatorios no refleja la distribución TAC que verías en producción, lo que puede ocultar bugs que solo se manifiestan con ciertos tipos de dispositivos.
Un generador IMEI masivo adecuado maneja los cuatro requisitos: checksums Luhn válidos, prefijos TAC auténticos, unicidad garantizada en el lote, y distribución configurable entre familias de dispositivos.
Casos de Uso para la Generación Masiva de IMEI
1. Siembra de Bases de Datos y Testing de Esquemas
Al construir o migrar una base de datos que almacena identificadores de dispositivo, necesitas datos de prueba realistas a escala. Las bases de datos vacías y las pruebas de un solo registro no revelan:
- Rendimiento de índices bajo cardinalidad realista
- Comportamiento del plan de consulta al filtrar por prefijo TAC de fabricante
- Eficiencia de poda de particiones en despliegues de gran escala
- Temporización de validación de restricciones bajo carga de inserción
Sembrar una base de datos de prueba con 100.000 IMEI únicos y correctamente formateados, distribuidos entre una mezcla realista de fabricantes, te da confianza de que tu esquema funcionará bien en producción.
2. Pruebas de Carga y Benchmarking de Rendimiento
Las pruebas de rendimiento requieren volumen de datos realista. Si estás haciendo benchmarking de una API de consulta de dispositivos que necesita manejar 10.000 peticiones por minuto, no puedes enviar el mismo IMEI en cada petición: el caché hará que los resultados sean artificialmente buenos, y los sistemas de rate-limiting pueden bloquear peticiones idénticas repetidas.
Necesitas un gran pool de IMEI únicos y válidos del que extraer. Un generador masivo te permite pre-generar ese pool — 50.000, 100.000 o más — y alimentarlo a tus herramientas de prueba de carga (k6, JMeter, Locust, Gatling) para conseguir variedad realista de peticiones.
3. Desarrollo de Plataformas MDM
Las plataformas de Mobile Device Management empresariales necesitan manejar inventarios de dispositivos a escala real. Un despliegue corporativo puede gestionar entre 5.000 y 500.000 dispositivos. Al probar la escalabilidad de tu plataforma MDM — flujos de enrollamiento, asignación de políticas, consultas de inventario, informes de cumplimiento — necesitas registros de dispositivos de prueba en esas cantidades.
Los IMEI generados masivamente te permiten poblar entornos MDM de staging con inventarios sintéticos de dispositivos a escala de producción, sin necesitar dispositivos físicos ni datos reales de clientes.
4. Pipelines de Automatización QA
Las suites de pruebas automatizadas que validan funcionalidades relacionadas con IMEI necesitan datos de prueba únicos para cada ejecución. Hardcodear un pequeño conjunto de IMEI de prueba en tus fixtures crea contaminación de pruebas: las pruebas empiezan a interferirse entre sí porque comparten estado alrededor de los mismos identificadores.
Un patrón mejor es generar IMEI frescos bajo demanda al inicio de cada ejecución de prueba, o mantener un gran pool pre-generado y extraer de él con un contador u offset aleatorio. La generación masiva soporta ambos enfoques.
5. Simulación de Red de Telecomunicaciones
Los ingenieros de telecomunicaciones que construyen o prueban sistemas HLR (Home Location Register), VLR (Visitor Location Register) o EIR (Equipment Identity Register) necesitan simular registros de suscriptores a escala. Un HLR de prueba realista puede contener millones de registros de suscriptores, cada uno con un par IMSI–IMEI. Generar millones de IMEI válidos — correctamente distribuidos entre familias de dispositivos — no es algo que se haga a mano.
6. Testing de Marketplaces de Dispositivos de Segunda Mano
Las plataformas que verifican el estado IMEI (comprobaciones de lista negra, estado de bloqueo de operador, consulta de garantía) necesitan probar su pipeline de consulta con entradas variadas. Quieres probar:
- Ruta rápida: IMEI no está en ninguna lista negra (ruta feliz, la más común)
- Ruta lenta: IMEI encontrado en la base de datos de lista negra
- Formato inválido: entrada malformada
- Casos extremos: Luhn válido pero TAC inexistente
Un generador masivo te proporciona el pool de prueba para el primer escenario: un gran conjunto de IMEI conocidos como limpios para usar como datos de prueba de referencia de la ruta feliz.
Requisitos Técnicos para la Generación Masiva de IMEI Válidos
Generar IMEI válidos a escala requiere resolver varios problemas simultáneamente:
Algoritmo de Luhn a Escala
Cada IMEI generado necesita un dígito de verificación Luhn válido. Aquí está el algoritmo implementado en Python, adecuado para generación masiva:
import random
def luhn_check_digit(digits_14: str) -> int:
"""Calcula el dígito de verificación Luhn para una cadena de 14 dígitos."""
digits = [int(d) for d in digits_14]
for i in range(12, -1, -2):
digits[i] *= 2
if digits[i] > 9:
digits[i] -= 9
total = sum(digits)
return (10 - (total % 10)) % 10
def generar_imei(tac: str) -> str:
"""Genera un IMEI válido con el TAC de 8 dígitos dado."""
serial = str(random.randint(0, 999999)).zfill(6)
base = tac + serial
check = luhn_check_digit(base)
return base + str(check)
def generar_masivo(tac: str, cantidad: int) -> list[str]:
"""Genera una lista de IMEI únicos válidos para un TAC dado."""
vistos = set()
resultados = []
while len(resultados) < cantidad:
imei = generar_imei(tac)
if imei not in vistos:
vistos.add(imei)
resultados.append(imei)
return resultados
# Ejemplo: Genera 1000 IMEI Galaxy S24 Ultra
imeis = generar_masivo("35349010", 1000)
print(f"Generados {len(imeis)} IMEI únicos")
print(f"Muestra: {imeis[:5]}")
Distribución TAC para Datasets Realistas
Para la mayoría de los propósitos de testing, quieres que tu dataset masivo refleje una distribución realista de fabricantes. Aquí tienes una composición típica de flota móvil empresarial:
| Fabricante | Cuota de mercado (empresa) | % sugerido en datos de prueba |
|---|---|---|
| Samsung | ~35% | 35% |
| Apple | ~45% | 45% |
| Google Pixel | ~8% | 8% |
| Motorola | ~5% | 5% |
| Otros Android | ~7% | 7% |
Construir tu dataset de prueba masivo con este tipo de distribución significa que tus benchmarks de rendimiento, planes de consulta y lógica de políticas se prueban con datos representativos, no con un dataset artificialmente uniforme.
Garantizar la Unicidad
Para la siembra de bases de datos, la unicidad no es negociable. Dos enfoques:
- Deduplicación basada en conjuntos (mostrada en el ejemplo Python anterior): Rastrea los IMEI generados en un conjunto y regenera en caso de colisión.
- Números de serie secuenciales: Incrementa el campo de número de serie (dígitos 9–14) secuencialmente en lugar de aleatoriamente. Esto garantiza la unicidad dentro de un bloque TAC sin comprobación de colisiones. Con 6 dígitos de serial, cada TAC soporta hasta 1.000.000 de IMEI únicos.
Generación Masiva a Escala: Números que Debes Conocer
¿Cuántos IMEI únicos puede soportar un único código TAC? El número de serie es de 6 dígitos (000000–999999), lo que da un máximo de 1.000.000 de IMEI únicos por TAC. Para datasets muy grandes (millones de registros), necesitas usar múltiples códigos TAC.
| Tamaño del Dataset | Enfoque |
|---|---|
| 1 – 10.000 | TAC único, seriales aleatorios, deduplicación por conjunto |
| 10.000 – 100.000 | TAC único, seriales secuenciales |
| 100.000 – 1.000.000 | Múltiples TAC, seriales secuenciales por TAC |
| 1.000.000+ | Distribución completa de TAC entre fabricantes |
Integración de IMEI Masivos con Herramientas QA
Con k6 (pruebas de carga JavaScript)
import { SharedArray } from 'k6/data';
// Pre-carga 50.000 IMEI generados desde un archivo
const imeis = new SharedArray('imeis', function () {
return open('./test_imeis.txt').split('\n').filter(l => l.length === 15);
});
export default function () {
// Elige un IMEI aleatorio del pool
const imei = imeis[Math.floor(Math.random() * imeis.length)];
const res = http.post('https://api.ejemplo.com/dispositivos/buscar', {
imei: imei,
});
check(res, {
'estado es 200': (r) => r.status === 200,
'devuelve info del dispositivo': (r) => r.json('fabricante') !== undefined,
});
}
Con pytest (suite de pruebas Python)
import pytest
import random
@pytest.fixture
def imei_unico(pool_imeis):
"""Proporciona un IMEI único del pool pre-generado."""
return pool_imeis.pop()
@pytest.fixture(scope="session")
def pool_imeis():
"""Carga el pool de IMEI pre-generado al inicio de la sesión."""
with open("test_data/imeis_masivos.txt") as f:
imeis = [linea.strip() for linea in f if len(linea.strip()) == 15]
random.shuffle(imeis)
return imeis
def test_busqueda_dispositivo(imei_unico, cliente_api):
respuesta = cliente_api.buscar_dispositivo(imei_unico)
assert respuesta.status_code == 200
assert respuesta.json()["formato_valido"] is True
Con SQL (siembra de base de datos)
-- PostgreSQL: inserción masiva desde CSV
CREATE TEMP TABLE temp_imeis (imei CHAR(15));
COPY temp_imeis FROM '/ruta/a/imeis_masivos.csv' CSV;
-- Insertar en la tabla de dispositivos con metadatos adicionales
INSERT INTO dispositivos_prueba (imei, creado_en, estado)
SELECT
imei,
NOW() - (random() * INTERVAL '365 days'),
CASE WHEN random() < 0.95 THEN 'activo' ELSE 'inactivo' END
FROM temp_imeis
ON CONFLICT (imei) DO NOTHING;
SELECT COUNT(*) FROM dispositivos_prueba; -- Verificar conteo
Uso de RandomIMEI.com para Generación Masiva
RandomIMEI.com soporta la generación masiva directamente desde la interfaz web y la API. Puedes:
- Generar hasta miles de IMEI en una sola solicitud
- Filtrar por fabricante (Apple, Samsung, Google, etc.)
- Exportar como texto plano (uno por línea), CSV o JSON
- Usar el endpoint de API para integración programática en pipelines CI/CD
Cada IMEI generado:
- Tiene un dígito de verificación Luhn válido
- Usa un prefijo TAC de fabricante real
- Es único garantizado dentro del lote
- No está asignado a ningún dispositivo real y no está en ninguna base de datos de operadores
Esta es la propiedad fundamental que hace que los IMEI generados masivamente sean seguros para el testing: son estructuras de datos válidas que superarán cualquier comprobación de formato, pero no corresponden a hardware real y no pueden usarse para acceder a servicios reales de operadores.
Formatos de Salida para IMEI Masivos
Dependiendo de tu flujo de trabajo, puede que necesites diferentes formatos de salida:
| Formato | Caso de Uso | Ejemplo |
|---|---|---|
| Texto plano | Scripting shell, importaciones simples | Un IMEI por línea |
| CSV | Hojas de cálculo, importaciones portal MDM | imei,fabricante,modelo |
| Array JSON | Integraciones API, herramientas JavaScript | ["352999068345622", ...] |
| Objetos JSON | Metadatos ricos para cada IMEI | [{"imei": "...", "tac": "35299906", "marca": "Apple"}] |
| INSERT SQL | Siembra directa de base de datos | INSERT INTO dispositivos VALUES (...) |
Para Qué NO Son los IMEI Generados en Masa
Esto es importante declararlo claramente. La generación masiva de IMEI es una práctica legítima de desarrollo de software. No es una herramienta para:
- Suplantación de IMEI: Reprogramar un dispositivo real para usar un IMEI falso es ilegal en prácticamente todos los países. Los IMEI de prueba generados existen solo como datos; no tienen ningún mecanismo para ser "flasheados" en hardware.
- Eludir listas: Las listas negras de operadores y los registros de dispositivos comprueban los IMEI contra bases de datos reales. Los IMEI generados son desconocidos para estas bases de datos y no pueden eludir ni sortear ningún sistema de seguridad del mundo real.
- Fraude: Fraude de seguros, fraude de financiación de dispositivos, o cualquier otro esquema que implique falsificar la identidad de un dispositivo. Los datos de prueba generados existen para entornos de desarrollo, no para enviarlos a sistemas del mundo real.
El marco legal es consistente en todas las jurisdicciones: usar IMEI falsos para acceder a servicios de telecomunicaciones, cometer fraude o eludir seguridad es un delito penal. Generar datos de prueba para el desarrollo de software no lo es.
Preguntas Frecuentes
¿Cuántos IMEI únicos puedo generar de un único código TAC?
Cada TAC tiene un campo de número de serie de 6 dígitos (dígitos 9–14), que permite hasta 1.000.000 de IMEI únicos por TAC. Para datasets superiores a 1 millón, necesitas distribuir la generación entre múltiples códigos TAC. Para la mayoría de los escenarios de testing — incluso grandes despliegues MDM empresariales — un único TAC es más que suficiente.
¿Cuál es la forma más rápida de generar 1 millón de IMEI de prueba?
El enfoque más eficiente es la generación secuencial de seriales en lugar de aleatoria: comienza en el serial 000001 e incrementa hasta 999999 para un TAC dado, aplicando el cálculo del dígito de verificación Luhn en cada paso. Esto evita completamente la comprobación de colisiones y puede generar 1 millón de IMEI válidos en segundos en cualquier hardware moderno.
¿Puedo usar IMEI generados masivamente en un pipeline CI/CD?
Sí. El patrón recomendado es generar un gran pool de IMEI (por ejemplo, 100.000) una vez y hacer commit en tu repositorio de datos de prueba. Cada ejecución de prueba extrae de este pool. Alternativamente, genera IMEI bajo demanda en un script de configuración pre-prueba usando una llamada a la API o una función de generación local. Ambos enfoques funcionan; el pool pre-generado es más simple y rápido en tiempo de ejecución.
¿Funcionan los IMEI generados masivamente con herramientas reales de comprobación IMEI?
Los IMEI generados superarán la validación de formato en cualquier comprobador IMEI (son números Luhn de 15 dígitos válidos con prefijos TAC reales). Mostrarán estado "limpio/no en lista negra" porque no están en ninguna base de datos de dispositivos real. No devolverán información del modelo del dispositivo, historial de compra o estado de garantía porque no están registrados. Este es el comportamiento esperado y correcto para los datos de prueba.
¿Cómo garantizo que no hay duplicados en un dataset generado masivamente?
Usa uno de dos métodos: (1) Deduplicación basada en conjuntos: rastrea los IMEI generados en un hash set durante la generación y rechaza las colisiones. (2) Números de serie secuenciales: incrementa el campo serial de forma determinista, lo que garantiza la unicidad por construcción. Para datasets de menos de 100.000, cualquiera de los dos métodos funciona bien. Para millones de registros, la generación secuencial es significativamente más eficiente.
¿Existe el riesgo de que un IMEI generado coincida con el IMEI de un dispositivo real?
Estadísticamente, sí — el espacio IMEI tiene aproximadamente 10^15 valores posibles, y hay aproximadamente 15.000 millones de dispositivos activos, por lo que la probabilidad de colisión para cualquier IMEI generado individualmente es aproximadamente 1,5 × 10^-5 (0,0015%). En la práctica, esto es insignificante para propósitos de testing. Los IMEI generados no se envían explícitamente a sistemas reales de operadores o GSMA, por lo que incluso una colisión teórica no tiene consecuencias en el mundo real.
Prueba nuestras herramientas
Genera números IMEI aleatorios válidos o valida los existentes al instante.
Artículos relacionados
Verificar IMEI en Lista Negra: Cómo Comprobar Si un Teléfono es Robado Antes de Comprarlo
Aprende a verificar si el IMEI de un teléfono está en lista negra antes de comprarlo usado. Entiende cómo funcionan las listas negras y cómo protegerte.
Generador IMEI iPhone: Códigos TAC de Apple, Testing iOS y Cómo Funciona
Genera números IMEI válidos para iPhone para testing de apps, desarrollo MDM y QA en iOS. Aprende sobre los TAC de Apple y por qué importan en pruebas.
Generador IMEI Samsung: Códigos TAC, Desarrollo Android y Testing Empresarial
Genera IMEI Samsung válidos para testing Android, MDM Knox y automatización QA. Aprende los TAC codes de Samsung y cómo usarlos correctamente en pruebas.