
Hablemos sobre c贸mo hacer pruebas de integraci贸n para el servidor Atlassian Jira. Para estos fines, utilizaremos las bibliotecas que Atlassian proporciona: jira-func-test-plugin y jira-testkit-plugin.
Las pruebas de integraci贸n le permiten probar el rendimiento de los complementos de Jira a trav茅s de los servicios exportados por el complemento y la interfaz de usuario de Jira. Por supuesto, puede simplemente tomar Selenium WebDriver y escribir c贸digo para probar la interfaz de usuario de Jira. Sin embargo, en este caso, debe prescribir toda la l贸gica usted mismo. Por ejemplo, inicio de sesi贸n de usuario, ingresar una consulta JQL, crear un proyecto, verificar elementos en forma de crear una tarea, administrar permisos de proyecto, etc. Y las bibliotecas de Atlassian proporcionan m茅todos que ya est谩n listos para esto. Adem谩s, su c贸digo no necesita ser cambiado al actualizar a una nueva versi贸n de Jira, solo tome las bibliotecas Atlassian adecuadas para esta versi贸n.
Hay tres formas de escribir pruebas de integraci贸n para Atlassian Jira que Atlassian proporciona:
- Las pruebas con cable le permiten probar los servicios que su complemento exporta externamente. Un ejemplo de tal prueba est谩 aqu铆 .
- Las pruebas de integraci贸n requieren los complementos jira-func-test-plugin y jira-testkit-plugin para ejecutarse. Estas pruebas verifican el funcionamiento correcto de la interfaz de usuario de Jira utilizando solicitudes y respuestas HTTP. Un ejemplo de tal prueba est谩 aqu铆 .
- Las pruebas de objetos de p谩gina tambi茅n prueban la interfaz de usuario de Jira, pero funcionan a trav茅s de Selenium WebDriver.
Atlassian escribe que probar la interfaz de usuario a trav茅s de pruebas de objetos de p谩gina es preferible a probar a trav茅s del jira-func-test-plugin. Pero en este art铆culo aprenderemos c贸mo escribir pruebas de integraci贸n usando este complemento.
El c贸digo fuente del complemento con las pruebas de integraci贸n desarrolladas en el art铆culo se puede encontrar
aqu铆 .
驴Qu茅 son las pruebas de integraci贸n?
La principal diferencia entre las pruebas de integraci贸n y las pruebas unitarias es que las pruebas unitarias no requieren una instancia de Jira que funcione, a diferencia de las pruebas de integraci贸n. Por lo tanto, es necesario que se genere una instancia de Jira durante las pruebas de integraci贸n. Las pruebas pueden llevarse a cabo tanto en la instancia local (Jira, eliminada de nuestro complemento con pruebas de integraci贸n) como en la remota.
Primero escribamos pruebas para una instancia local, y luego le dir茅 c贸mo ejecutar las mismas pruebas en una instancia remota.
Crear un complemento de Jira
El complemento se crea utilizando el
comando atlas-create-jira-plugin .
Agregar dependencias a nuestro complemento
Las siguientes dependencias deben agregarse al archivo pom.xml de nuestro complemento:
<dependency> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-client</artifactId> <version>${jira.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>com.atlassian.jira</groupId> <artifactId>jira-func-tests</artifactId> <version>${jira.version}</version> <scope>test</scope> </dependency>
Estas dependencias nos permitir谩n desarrollar pruebas de integraci贸n.
Instale los complementos necesarios en la instancia local de Jira
Para que las pruebas de integraci贸n funcionen, debemos asegurarnos de que cuando comencemos nuestra instancia local de Jira, se instalen los complementos jira-func-test-plugin y jira-testkit-plugin.
Para hacer esto, agregue las siguientes l铆neas a la configuraci贸n del complemento maven-jira-plugin en pom.xml:
<pluginArtifacts> <pluginArtifact> <groupId>com.atlassian.jira</groupId> <artifactId>jira-func-test-plugin</artifactId> <version>${jira.version}</version> </pluginArtifact> <pluginArtifact> <groupId>com.atlassian.jira.tests</groupId> <artifactId>jira-testkit-plugin</artifactId> <version>7.12.3</version> </pluginArtifact> </pluginArtifacts>
Escribir un examen
Cree el archivo src / test / java / it / ru / matveev / alexey / jira / Integrationtests / selenium / ExampleTest.java:
package it.ru.matveev.alexey.jira.integrationtests.selenium; import com.atlassian.jira.functest.framework.BaseJiraFuncTest; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ExampleTest extends BaseJiraFuncTest { @Before public void setup() { backdoor.project().addProject("testproject", "TP", "admin"); backdoor.issues().createIssue("TP", "test issue"); } @Test public void goToIssueNavigator() { navigation.login("admin"); navigation.issueNavigator().createSearch("project = TP"); tester.assertTextPresent("TP-1"); } @After public void cleanup() { backdoor.project().deleteProject("TP"); }
Por defecto, todas las pruebas deben tener el sufijo
Test
para que se ejecuten los archivos con pruebas de integraci贸n. Esto se puede anular con el par谩metro
functionalTestPattern
en la configuraci贸n del complemento maven-jira-plugin.
En la prueba anterior, probamos el funcionamiento de la b煤squeda bajo demanda en Issue Navigator. En el m茅todo de
setup
, cree un proyecto con una tarea, luego escriba una solicitud que reciba esta tarea y verifique que realmente pudimos seleccionarla. Luego, en el m茅todo de
cleanup
, eliminamos el proyecto creado.
Ejecute la prueba
La prueba se inicia utilizando el comando
atlas-integration-test
. En este comando, el Jira local se eleva y se realizan pruebas de integraci贸n en 茅l.
Estructura de prueba
Hay varias clases que puede heredar al escribir pruebas de integraci贸n:
BaseJiraEmailTest
,
BaseJiraFuncTest
,
BaseJiraRestTest
.
La clase m谩s utilizada es
BaseJiraFuncTest
. Le permite probar toda la funcionalidad necesaria.
En esta clase, existen tales variables de clase:
backdoor
: le permite realizar funciones administrativas, como gestionar proyectos, 铆ndices, esquemas de permisos de proyectos, usuarios, etc.navigation
: le permite navegar en la interfaz de usuario. Tambi茅n le permite ingresar y salir de Jira bajo el usuario deseado.tester
: le permite trabajar con p谩ginas: establecer valores de campo, hacer clic en botones, verificar si existe un campo en el formulario, etc.
Las pruebas de integraci贸n acceden a Jira como
admin
con la contrase帽a
admin
, por lo tanto, para las pruebas de integraci贸n en Jira, este usuario debe tener esta contrase帽a.
Al utilizar el comando
navigation.login("username")
, la contrase帽a del usuario con el que inicia sesi贸n en Jira debe coincidir con el nombre de usuario.
Ejecuci贸n de pruebas de integraci贸n en una instancia remota
Para que las pruebas de integraci贸n se ejecuten en una instancia remota, se deben instalar los complementos jira-func-test-plugin y jira-testkit-plugin.
Adem谩s, en el complemento con pruebas de integraci贸n, debe realizar cambios en el archivo src / test / resources / localtest.properties:
jira.protocol = http jira.host = remote-instance jira.port = 2991 jira.context = /jira jira.edition = all jira.xml.data.location = src/test/xml
Ahora, despu茅s de ejecutar el comando
atlas-integration-test
, las pruebas se ejecutar谩n en la instancia remota.
Ejemplos de prueba
La buena noticia es que los desarrolladores del paquete jira-func-tests han incluido en este paquete una gran cantidad de ejemplos con pruebas para todas las ocasiones. Est谩n en el paquete de pruebas web.
隆Buena suerte con las pruebas de Jira!