Red de conocimiento informático - Material del sitio web - Cómo mejorar la capacidad de prueba de proyectos de programación Java

Cómo mejorar la capacidad de prueba de proyectos de programación Java

Con el desarrollo de proyectos de desarrollo de programación de software, las pruebas de software se han ido incorporando gradualmente a la agenda. Hoy, Qianzheng Computer Training hablará sobre cómo mejorar la capacidad de prueba de la programación Java desde los siguientes aspectos.

En las pruebas empresariales, el software debe probarse tal como se ejecutaría en un entorno de producción para garantizar que funciona como se espera. Un desafío común es que las aplicaciones de microservicios dependen directa o indirectamente de otros servicios, y estos servicios deben coordinarse en el escenario de prueba.

Escenario de prueba

Supongamos que queremos probar el comportamiento de la aplicación sin considerar otros servicios externos. La aplicación debe ejecutarse y configurarse de la misma manera que el entorno de producción para garantizar que se comporte de manera consistente en el entorno de producción en el futuro. En la prueba, nos conectaremos a la aplicación utilizando la interfaz de comunicación definida.

Sin embargo, los servicios externos no deben ser parte del escenario de prueba. Por lo general, durante las pruebas, debemos centrarnos en el objeto que se está probando e ignorar otros objetos. Por lo tanto, utilizamos un servidor simulado en lugar de un servicio externo.

Orquestación de contenedores

Usar servidores simulados en lugar de instancias reales contradice la idea de ejecutar microservicios de la misma manera que en producción, porque en producción, cuando entramos en producción, la configuración cambiará. Sin embargo, si nuestra aplicación se implementa en un clúster de orquestación de contenedores (como Kubernetes), podemos usar nombres de servicios abstractos como configuración y dejar que el clúster resuelva las instancias del servicio backend por sí solo.

En el escenario de prueba, la aplicación no solo se conectará para llamar a la lógica empresarial, sino que también se comunicará con el servidor simulado, controlará el comportamiento de respuesta en una interfaz de administración separada y verificará que la aplicación sea llamada en el forma correcta Un servidor simulado. Esto es similar a las pruebas unitarias a nivel de clase que normalmente se implementan con JUnit y Mockito.

Servicios externos

La configuración anterior nos permite simular y controlar los servicios que se ejecutan dentro de un clúster de orquestación de contenedores. ¿Qué pasa con esos servicios externos fuera del clúster?

En general, podemos crear un servicio de Kubernetes sin un selector, hacer que apunte a una IP externa y luego reescribir nuestra aplicación para que siempre use el nombre del servicio resuelto por el clúster. De esta forma definimos un único punto al que se encaminará el servicio.

Service Grid

Service Grid nos ayuda a manejar la comunicación entre microservicios. Actualmente, Istio es una de las tecnologías de malla de servicios más utilizadas. Agrega un contenedor proxy complementario que trabaja en estrecha colaboración con el contenedor de la aplicación, puede resolver problemas de comunicación entre microservicios y también puede usarse para manipular o ralentizar la conexión para pruebas de resiliencia.