0
votes

Comment partager des variables entre les tests en test?

J'ai une classe de connexion de test, qui a des tests positifs et négatifs pour la connexion. Résultat pour cas positif - Recevez le jeton dans la réponse.

En outre, j'ai une autre classe de fonctionnalités, qui a des tests pour certaines fonctionnalités, disponibles pour les utilisateurs de connexion.

Comment obtenir le jeton du test de connexion positif aux tests de fonctionnalité?

J'ai trouvé une seule solution:

  • Faites un jeton de variable statique dans la classe de connexion
  • Après le test de connexion positive, la variable de jeton doit être introduite à partir de la réponse
  • Dans toutes les fonctionnalités teste la dépendance à la connexion au test positif doit être ajoutée

    Mais il semble que l'ajout de dépendance à tous les tests de fonctionnalité n'est pas une bonne idée. Y a-t-il d'autres options?


0 commentaires

3 Réponses :


2
votes

La solution possible pourrait bouger la fonctionnalité de connexion à un endroit séparé et la réutiliser dans login em> strong> et tests fonctionnels em> strong> strong> . Par exemple, vous pouvez extraire un jeton avant tests fonctionnels em> strong> à l'aide de Testng avant les annotations.

class RequestHelper {

  public static io.restassured.Response login(String username, String password) {
    Response response;
    //some code to get login response
    return response;
  }
}

class LoginTest {

 @Test
 public void shouldLogin() {
   Response loginResponse = RequestHelper.login("username", "password");
   //assertions that response is valid
 }
}

class FunctionalTest {

  private String token;

  @BeforeClass
  public void getToken(){
     Response response = RequestHelper.login("username", "password");
     //Extracting token from response here (depends on how token is returned)
     token = response.then().extract().jsonPath().getString("token");
  }

  @Test
  public void functionalTest(){
    //Use token here
  }
}


0 commentaires

1
votes

Nous pouvons utiliser iTestContext CODE>.

pour ex: p>

dans la classe de test, p> xxx pré>

dans un autre Classe pour le même test, P>

    String token = ctx.getAttribute("TOKEN");


0 commentaires

0
votes

Vous pouvez passer des paramètres dans votre fichier XML de course. Et Vous pouvez utiliser Propriétés Fichiers externes pour enregistrer des valeurs.


0 commentaires