Implémentation POJO dans les tests API (Automation) en utilisant REST assuré

Introduction: –
Une classe Java simple appelée Pojo (Old Java Object) stocke les données de données et est indépendante des cadres. Pojos simplifie, rangez et réutilisez la gestion de la charge utile. Nous pouvons améliorer la lisibilité, la résilience et la maintenabilité de notre script en implémentant le POJO dans l’automatisation de l’API. Les objets Java sont automatiquement convertis en JSON / XML par sérialisation, et les réponses API sont automatiquement converties en objets Java par désérialisation, éliminant le besoin d’analyse manuelle.
Ce que vous apprendrez dans ce blog:
- Implémentation POJO dans l’automatisation des API.
- Sérialisation / désérialisation.
- Écriture du script de test pour automatiser l’appel API Post avec PoJo.
- Rédaction de l’affirmation dans la réponse API désérialisée.
Pile technologique utilisée dans ce blog:
1. Pour cette démo, nous utiliserons un point de terminaison de l’API ouvert «http://httpbin.org/post».
2. Java 21.0.4.
3. Rassemblez la bibliothèque assurée, version 4.5.1
4. Bibliothèque Jackson-Databind, version 2.15.0
5. Testng, version 7.7.1
Commençons par l’implémentation réelle dans le code:
Pour cette démo, nous utiliserons un point de terminaison API ouvert (http://httpbin.org/post), qui utilise les données suivantes comme charge utile.
{
«Firstname»: «Mark»,
«LastName»: «Flower»,
«Genre»: «Homme»,
«Âge»: 40 ans,
«Salaire»: 500000
}
Déplacer 1: –
Tout d’abord, nous créerons une classe avec le nom «Employé» et déclarerons tous les champs de la charge utile en tant que variables privées, et après cela, nous créerons le Getter et le secteur pour toutes les clés
employé de classe publique
{
String privé FirstName;
String privé LastName;
Gender de chaîne privée;
Âge privé;
Salaire double privé;
public String getFirstName () {
return FirstName;
}
public void setFirstName (String FirstName) {
this.firstName = FirstName;
}
public String getlastName () {
return lastName;
}
public void setLastName (String LastName) {
this.lastName = lastName;
}
public String getgender () {
retour de genre;
}
public void setgender (String Sexe) {
this.gender = genre;
}
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
public double getAlary () {
Salaire de retour;
}
SetSalary du public public (double salaire) {
this.salary = salaire;
}
}
Déplacement 2: – Création de la classe de test dans laquelle le script de test réel sera écrit.
classe publique Test
{
// importe des instructions pour cette classe de test
import org.testng.assert;
import org.testng.annotations.test;
import com.fasterxml.jackson.core.jsonProcessingException;
import com.fasterxml.jackson.databind.objectmapper;
import io.restassured.restassured;
import io.restassured.http.contentType;
import io.restassured.Response.Response;
import io.restassured.specification.requestSpecification;
// Étape 1: Créer l’objet de la classe des employés et définir les valeurs de la charge utile de l’API
Employé ObjEmployee1 = nouvel employé ();
ObjEmployee1.setFirstName («Mark»);
ObjEmployee1.setlastName («fleur»);
ObjEmployee1.setgender («mâle»);
ObjEmployee1.Setage (40);
ObjEmployee1.SetSalary (50000);
// Étape 2: Convertir des objets de classe d’employés en JSON comme une chaîne avec un mappeur d’objet
Objetmapper Obj_objectmapper = new ObjectMapper ();
Chaîne Employeedata = Obj_objectmapper.writerwithDefaultPrettyprinter (). WriteValueAsString (ObjEmployee1));
System.out.println (Employeedata);
// Étape 3: Écriture du script pour l’appel de publication et utilisant le JSON converti de l’étape 2 comme charge utile de l’API.
Spécification des demandes request = Resassured.given ();
request.basuri («http://httpbin.org/post»);
request.ContentType (contentType.json);
request.corps(Employeedata));
Réponse respect = requestSpec.post ();
respect.prettyprint ();
Assert. assertequals (respect.Staturcode (), 200, «Vérifier le code d’état»);
// Étape 4: Convertir JSON String (EmployeeJSON) en Class Object (Employee)
Employé ObjEmployee2 = Obj_objectmapper.readvalue (Employeedata, Employee.class);
Chaîne prénom = ObjEmployee2.GetFirst name ();
Chaîne nom de famille = ObjEmployee2.GetLastName ();
int empager = ObjEmployee2.getAge() ;
// Étape 5: Application des affirmations pour vérifier que l’API renvoie ou non les données attendues?
Assert. assertequals (prénom« Marque »);
Assert. assertequals (nom de famille« Fleur »);
Assert. assertequals (empager40);
}
Conclusion:-La complexité du développement du script et de l’exécution serait nettement plus élevée si le code exposé ci-dessus était implémenté sans le POJO, mais en utilisant le POJO, nous avons pu créer un script moins compliqué. De plus, nous avons simplifié la lisibilité et la maintenabilité du code.
Vous avez trouvé cela utile? PARTAGEZ-LE
Source link