Generador IMEI Masivo: Genera Miles de IMEIs para QA y Automatización

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.

Random IMEI Team · Mar 18, 2026
#bulk IMEI generator #IMEI batch generation #QA automation #testing database #IMEI testing #mobile device testing

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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:

  1. 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.
  2. 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.