La herramienta de pruebas de producción QuecPython (en adelante, herramienta de pruebas) está diseñada para realizar pruebas de fabricación en productos basados en QuecPython. Es compatible con sistemas operativos Windows 7 y versiones posteriores.
Funcionalidades básicas de la herramienta:
- Carga de scripts de prueba y archivos de configuración: se requiere que el usuario escriba scripts de prueba ejecutables en el producto, organizados como funciones unitarias. En el archivo de configuración se vincula la información de cada ítem de prueba (nombre, función asociada, método de prueba, etc.).
- Soporte de pruebas automáticas y manuales: las pruebas automáticas se ejecutan secuencialmente según la configuración, sin intervención humana, y los resultados se guardan automáticamente, deteniéndose solo cuando se encuentra una prueba manual. Las pruebas manuales muestran una ventana emergente al finalizar el ítem para que el operador confirme manualmente el resultado, que también se almacena.
- Visualización detallada e informe de resultados: la interfaz principal muestra los resultados de cada ítem con colores diferenciados. El informe completo se guarda en el directorio raíz de la herramienta para su revisión general.
- Soporte para pruebas simultáneas de hasta 4 dispositivos (1 a 4).
Obtención de la herramienta
Descargue el archivo FactoryTool.zip desde la página de descargas.
Descripción de la interfaz
- Barra de menús: incluye los menúes Editar (para modificar scripts y archivos Excel de log) y Registro (para visualizar logs de pruebas y de ejecución de la herramienta).
- Área de carga: permite cargar el script de prueba y el archivo de configuración.
- Script de prueba: conjunto de funciones de prueba.
- Archivo de configuración: vincula cada ítem de prueba con su nombre, función y modo (automático o manual).
- Área de pruebas: contiene cuatro zonas, cada una asociada a un puerto de conexión, nombre de ítem, método y resultado. Permite probar hasta cuatro dispositivos simultáneamente o individualmente.
Importante: El módulo bajo prueba debe tener su interfaz de comunicación (REPL) desbloqueada; de lo contrario, la prueba fallará.
Script de prueba
Al escribir el script de prueba, no debe modificar la estructura de la plantilla original. Se recomienda ejecutarlo primero manualmente en el módulo para verificar que los resultados sean los esperados. Solo deben modificarse dos secciones:
- Importación de módulos: agregue las bibliotecas Python necesarias.
- Funciones de prueba: defina funciones estáticas sin parámetros. El cuerpo depende de la necesidad de prueba, y el valor de retorno debe ser un booleano (
True/False).
Ejemplo de script de prueba (adaptado):
# Importar módulos necesarios
import sim
import net
import uos
import utime
class PruebaBase(object):
# ------Zona de código de prueba------
@staticmethod
def verificar_senal():
utime.sleep(2)
if sim.getStatus() == 1:
if net.getConfig()[0] == 5:
return True
else:
return False
else:
return False
@staticmethod
def verificar_espacio_archivo():
utime.sleep(2)
if uos.statvfs('usr')[3] > 5:
return True
else:
return False
# ------Fin zona de prueba------
Archivo de configuración
El archivo de configuración es un JSON que contiene una lista de ítems, cada uno con tres campos: nombre del ítem, nombre de la función de prueba y modo de prueba (1 = manual, 0 = automático).
Ejemplo de configuración:
{
"items": [
["Prueba de memoria", "verificar_espacio_archivo", 1],
["Prueba de señal", "verificar_senal", 0]
]
}
Principio de funcionamiento
La herramienta ejecuta scripts Python a través de la interfaz REPL del módulo QuecPython para probar funcionalidades del producto. El script puede adaptarse a diferentes necesidades de producción.
- Obtener parámetros y estado del módulo mediante APIs de QuecPython.
- Acceder a objetos del código de negocio en ejecución para conocer su estado.
- Llamar a interfaces proporcionadas por el código de negocio para probar funciones de hardware o software.
- Transmitir archivos de configuración o escribir parámetros del producto mediante APIs de QuecPython.
Pasos de uso
Paso 1: Editar el script de prueba (module_test.py) y el archivo de configuración (sort_setting.json). Ejemplos mostrados anteriormente.
Paso 2: Abrir la herramienta, cargar el script y la configuración usando los botones Seleccionar. Si se detectan puertos serie, se mostrarán los nombres de los ítems y su modo.
Paso 3: Iniciar pruebas.
- Botón Iniciar todo: ejecuta las pruebas en todos los módulos conectados.
- Botón Iniciar individual: prueba solo el módulo correspondiente.
En las pruebas manuales, un cuadro de diálogo preguntará si el resultado es exitoso (Sí/No).
Paso 4: Visualizar resultados en la columna correspondiente.
- Éxito: fondo verde, marcado como Aprobado.
- Fallo: fondo rojo, marcado como No aprobado.
- En ejecución: fondo amarillo.
Paso 5: Revisar el registro de pruebas. Se genera un archivo Test-Result.xlsx en el directorio de la herramienta, que contiene los detalles y resultados de cada ítem.
Resultados de prueba
Los resultados de cada módulo se exportan al archivo Excel. Se puede abrir desde el menú Editar → Editar archivo Excel. Cada ejecución de prueba (exitosa o fallida) agrega una fila, identificada por el puerto COM del dispositivo. El archivo se guarda en el mismo directorio que la herramienta y se actualiza automáticamente.
Desarrollo secundario de la herramienta
Clonación del repositorio
Si necesita personalizar la herramienta, clone el repositorio:
git clone --recurse-submodules https://github.com/QuecPython/FactoryTool.git -b interventionable
Configuración del entorno
Instale las dependencias:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# Si falla, instale individualmente:
pip install wxpython -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pypubsub -i https://pypi.tuna.tsinghua.edu.cn/simple
Ejecute la herramienta:
python main.py
Compilación del proyecto
Para generar un ejecutable independiente desde el código Python:
# Si usó instalación individual, instale pyinstaller
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
# Compilar a EXE (salida en ./dist/)
pyinstaller -F -w --win-private-assemblies --icon images/quectel.ico main.py