El servicio de prueba en la nube del mini programa proporciona una gran cantidad de capacidades de prueba automatizadas y capacidades de prueba de rendimiento, como:
- Pruebas automatizadas del programa WeChat Mini - Mono inteligente
- Prueba de automatización del programa WeChat Mini - Grabación y reproducción
- Pruebas automatizadas del subprograma WeChat: pruebas personalizadas (Minium)
- …
Para obtener más detalles, consulte la columna Prueba en la nube del programa Mini
Al enviar una prueba, el usuario generalmente debe enviar la tarea manualmente después de abrir el complemento de prueba en la nube en la herramienta para desarrolladores. Algunos usuarios aquí esperan poder enviar pruebas automáticamente, integrar las capacidades de prueba en el proceso de desarrollo dentro del equipo y lograr el tiempo o la activación automática después del envío del código.
Ahora, el complemento de prueba en la nube tiene una nueva capacidad de interfaz de terceros, que admite el método de llamar directamente a la interfaz https para probar, lo que es conveniente para que los usuarios integren las capacidades de prueba en la nube en el proceso de desarrollo. Para obtener documentación detallada, consulte la introducción de la interfaz de terceros . Específicamente:
- La interfaz se puede utilizar de nuevo
提交测试任务
para enviar tareas automáticamente cuando sea necesario enviarlas. Por ejemplo, combine Crontab o Jenkins para implementar el envío regular de tareas de prueba y hacer compilaciones diarias. - Use
查询任务状态
la interfaz para sondear periódicamente si la tarea ha terminado - Una vez finalizada la tarea, puede usar
获取报告分享链接
la interfaz para compartir el informe con el grupo interno o el correo electrónico del equipo, y otros estudiantes pueden abrir el enlace para ver el informe directamente.
Tenga en cuenta que los enlaces compartidos por los informes son válidos durante 30 días. Además, tenga en cuenta que cualquier estudiante que obtenga el enlace puede abrir el informe; no comparta el informe en lugares públicos para evitar la filtración de información del proyecto.
Aquí tomamos a Jenkins como ejemplo para presentar en detalle cómo el servicio de medición en la nube puede comunicarse con Jenkins.
Preparación ambiental
Nota: La preparación del entorno se presenta con Window10+Python project+Git code version management+Jenkins como ejemplo. Puede preparar el entorno según sus necesidades, como el sistema operativo Linux, la gestión de versiones de código SVN, el proyecto Java, etc.
Los siguientes pasos no son necesarios, puede omitirlos si ya ha instalado
-
Instalar JDK8
-
Instalar Python 38
-
Instalar Git
-
Descarga Jenkins (https://www.jenkins.io/download/)
-
Instale Jenkins (consulte el manual del usuario https://www.jenkins.io/doc/book/getting-started/)
-
Crear un usuario administrador
-
Configure Git (aquí usamos Git para almacenar scripts de prueba como ejemplo, los usuarios también pueden usar otras herramientas como SVN para almacenar)
- Instale el complemento de git
Administrar Jenkins> Administrar complementos
para instalar los complementos de git - Configurar la herramienta git
Administrar Jenkins > Configuración de herramienta global
- Agregar credenciales
Administrar Jenkins > Administrar credenciales > Agregar credenciales
- Instale el complemento de git
Jenkins implementa pruebas automáticas de pruebas en la nube de programas pequeños
-
Cree un nuevo elemento,
por ejemplo, seleccione un proyecto de estilo libre
-
configuración
1. Seleccione el proyecto GitHub
2. Seleccione Git y agregue credenciales, seleccione Desproteger a un subdirectorio en Comportamientos adicionales
3. Cree el disparador, seleccione Generar periódicamente
4. Cree, seleccione Ejecutar comando por lotes de Windows e ingrese el comando que se ejecutará
Entre ellos, el script test.py es el código de interfaz para solicitar servicios de terceros de pruebas en la nube.
class MiniTestApi:
def __init__(self, user_token, group_en_id):
self.token = user_token # 需要填写自己的token
self.group_en_id = group_en_id # 项目的英文ID
self.minitest_api = 'https://minitest.weixin.qq.com/thirdapi/plan'
self.share_api = 'https://minitest.weixin.qq.com/thirdapi/share_url'
def third_auto_task(self):
"""
提交测试任务
:return:
"""
config = {
"assert_capture": True,
"auto_relaunch": True,
"auto_authorize": False,
"audits": True,
"compile_mode": "pages/getOpenId/index?p=1&m=2"
}
data = {
'token': self.token,
'group_en_id': self.group_en_id,
'test_type': 2,
'platforms': 'android,ios',
'wx_id': '',
'wx_version': 3,
'desc': 'Minium测试',
'test_plan_id': 6,
'dev_account_no': 1,
'minium_config': config,
}
resp = requests.post(
self.minitest_api,
json=data
)
resp = resp.json()
print(resp)
return resp
def query_auto_task(self, plan_id):
"""
查询测试任务
:param plan_id:
:return:
"""
data = {
'token': self.token,
'group_en_id': self.group_en_id,
'plan_id': plan_id,
}
resp = requests.get(
self.minitest_api,
params=data
)
resp = resp.json()
print(resp)
def share_url(self, plan_id):
"""
获取报告分享链接
:param plan_id:
:return:
"""
data = {
'token': self.token,
'group_en_id': self.group_en_id,
'plan_id': plan_id,
}
resp = requests.get(
self.share_api,
params=data
)
resp = resp.json()
print(resp)
if __name__ == '__main__':
minitest_client = MiniTestApi('xxx', 'xxx')
# 提交测试任务
result = minitest_client.third_auto_task()
if "plan_id" not in result["data"].keys():
exit(1)
plan_id = result["data"]["plan_id"]
time.sleep(10)
# 查询任务状态
# status 1: 排队中 2: 测试中 11: 未发现Case 12: 测试结束 15: 任务超时
minitest_client.query_auto_task(plan_id)
# 获取任务报告分享链接
# minitest_client.share_url(plan_id)