how automate api requests using rest assured
En aquest tutorial aprendrem a automatitzar les sol·licituds d'API mitjançant REST assegurat mentre executem scripts de prova sobre Jenkins:
Al segon tutorial de la sèrie de tutorials API REST, vam aprendre diferents tipus de codis de resposta, sol·licituds REST, pràctiques recomanades REST i proves API mitjançant POSTMAN.
DESCANS els serveis web s’estan popularitzant dia a dia per la seva facilitat de desenvolupament, implementació, accés i posterior execució. A més, són lleugers i no tenen normes estrictes a seguir.
Tanmateix, quan hi ha un nombre més gran de serveis que cal executar en cada nova construcció, es converteix en un malson per al comprovador i per al cost del projecte. De nou, alguns serveis són interns relacionats amb el propi projecte i alguns estan construïts per ser consumits per tercers.
Així doncs, ha sorgit la idea de l’automatització. Hi ha diverses eines disponibles per automatitzar els serveis REST, com ara:
- vRest
- HttpMaster
- Parasoft
- RestAssured
RestAssured és una eina d'automatització popular entre els provadors. Vegem per què és una opció preferida.
Què aprendreu:
Per què és RESTAURAT?
- És de codi obert, de manera que qualsevol organització el pot utilitzar per a les seves necessitats de projecte.
- REST Assured és una biblioteca Java, de manera que no es presenta com a GUI com altres eines. És un marc per provar serveis REST a Java.
- Proporciona un llenguatge específic de domini (DSL) per crear un script d’automatització, utilitza qualsevol idioma nadiu com Java i prova l’API web RESTful.
- Admet format XML i JSON per a la sol·licitud, respostes.
- Actua com un client sense cap.
- Podem personalitzar la sol·licitud que enviarem al servidor mitjançant aquesta biblioteca.
- A més, pot provar una combinació variada de lògica empresarial complexa.
- És capaç d'obtenir codi d'estat, respostes, cos de resposta, capçaleres del servidor per a la sol·licitud enviada.
- Permet l'estil BDD d'escriptura de guions de prova, és a dir, en el format GIVEN-WHEN-THEN, de manera que qualsevol membre de l'equip de negocis, especialment amb antecedents no informàtics, també pugui veure-ho i comprendre la lògica i la cobertura de les proves.
En aquest tutorial, automatitzarem les sol·licituds que vam crear manualment anteriorment al primer tutorial de l'API REST mitjançant POSTMAN i també parlarem d'una eina comercial anomenada GITHUB.
Automatització de sol·licituds d'API web mitjançant REST assegurat
En aquest tutorial, farem automatismes de punta a punta, és a dir, crearem una classe Java i l'executarem des de Jenkins.
Requisits previs:
- Els destinataris previstos han de tenir coneixements pràctics sobre Eclipse IDE, Maven, TestNG, ReportNG.
- Els destinataris també haurien de ser conscients de Jenkins.
- La connexió a Internet és necessària si accedim a serveis desplegats a través del web. En cas que accedim a serveis desplegats localment, en aquest cas, assegureu-vos que el provador en tingui el dret.
- Si estem automatitzant llocs comercials i segurs, en aquest cas, assegureu-vos que el testimoni d’autorització, els testimonis API, les claus API, etc. funcionin correctament i es proporcionin al provador, que actualment automatitza l’escriptura.
URL de prova
- http://jsonplaceholder.typicode.com està en marxa
- L'usuari té una credencial vàlida GitHub
Configuració ambiental
# 1) Instal·leu Eclipse IDE
En primer lloc, hem de descarregar l'IDE Eclipse des del lloc web oficial de Eclipse.
A continuació, instal·leu l'IDE. Definiu el camí d'accés, la variable ambiental JAVA_HOME correctament. Mantingueu el camí JDK, JRE a mà per a un ús futur. Un cop instal·lat Eclipse, creeu / configureu un espai de treball i obriu-lo.
En el meu cas és:
# 2) Creeu un projecte Maven
Assegureu-vos que heu configurat la casa Maven sobre variables ambientals.
# 3) Afegiu tots els connectors rellevants i necessaris relacionats amb REST-ASSURED, TESTNG, REPORTNG a pom.xml.
Aquí teniu un exemple de pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Afegiu els pots necessaris al camí de construcció dels projectes Maven.
Normalment, es tracta d’un fitxer de biblioteca que s’inclou a un pot REST, TESTNG, REPORTNG. Tot i que hem afegit la dependència, el connector sobre el fitxer pom.xml, però de vegades prové error, per tant, hem d'afegir aquests pots / biblioteques per construir el camí del projecte maven per evitar errors (si n'hi ha).
No obstant això, quan estem creant projectes Java en lloc de projectes Maven, en aquest cas, hem de tenir a mà aquests pots, biblioteques i fer-los servir quan calgui.
# 5) Instal·leu JENKINS (al Windows)
Baixeu-vos Jenkins des de jenkins.io/download/.
A continuació, obriu la configuració, seguiu els passos fins que s’instal·li correctament.
Un cop instal·lat, hem d’iniciar JENKINS, podem fer el mateix des d’un símbol del sistema.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Quan es mostri el missatge anterior, hem d’esperar una estona més per veure el missatge següent.
com obrir el fitxer .apk
Com podem veure l'últim missatge a la pantalla anterior, on Jenkins està completament en funcionament, per tant, ara podem iniciar Jenkins mitjançant la següent URL.
http: // localhost: 9090 /
La primera vegada pot trigar, però després serà més ràpid. Després d'això, hem de crear un usuari.
Un cop creat l’usuari, hem de rellançar Jenkins i accedir a la interfície d’usuari amb la contrasenya.
Un cop instal·lat Jenkin, podem instal·lar els connectors a Gestiona Jenkins> Configuració d'eines globals (fins i tot durant la instal·lació de Jenkin).
Creació d'un script d'automatització
# 6) Podem crear una nova classe JAVA i convertir-la a TESNG o bé creeu directament una CLASSE TESTNG seguida de crear un fitxer XML nou (testng.xml).
Per simplicitat, hi ha dues classes Java creades
# 1) Tutorial1.java - Aquest fitxer conté l'ús de tots els mètodes com GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT mitjançant un URL de prova fictici https: jsonplaceholder.typicode.com.
Tot i que l'URL es comporta com un URL original en retornar aquestes respostes, però realment no es fa cap modificació al servidor. Només és per demostrar les propietats i la reacció dels serveis web quan reben qualsevol sol·licitud d'un client.
# 2) Tutorial2.java - Aquest fitxer conté l'exemple en temps real de GitHub on llegirem el comentari afegit a un resum.
Nota : GitHub requereix autenticació, per tant, hem de generar un testimoni API o autorització bàsica un cop hàgim iniciat la sessió a GitHub - configuració o bé podem generar un testimoni d'autorització des del propi POSTMAN
TESNG.XML
Aquí teniu el fitxer XML que executarà tots dos Tutorial1.java i Tutorial2.java
A efectes de demostració, he exclòs tots els mètodes per executar-los i he habilitat només un mètode GET de Tutorial1.java. Tanmateix, si volem veure tots els mètodes executats, hem de substituir-los per més del fitxer XML TestNG. En el nostre cas, el nom del fitxer TestNG és testng1.xml.
Ara si executem l'anterior fitxer testng1.xml sobre Eclipse llavors obtindrem el següent sortida de la consola.
(TestNGContentHandler) (ADVERTÈNCIA) Es recomana afegir '' a la part superior del fitxer; en cas contrari, TestNG pot fallar o no funcionar com s'esperava.
(TestNG) En execució:
D: RestAssured restapi testng1.xml
*** OBTÉ EL MÈTODE ***
Userid - (1) a - (3) Títol - (si és problemàtic que l'exercici sigui dolorós o) cos - (i bé, però la llei
I totes les eleccions o per plaer dels cecs ho són
o denunciant qualsevol pena i plaer resultants
i està disposat a i des del treball d'un odiós, o malestar; i el)
*** OBTÉ EL MÈTODE FINAL ***
-----------------
Tutorials API REST
Execució total de proves: 1, Fallades: 0, Saltades: 0
-----------------
ordre grep a Linux amb exemples
Aquí teniu el resultat de la prova de la suite.
Aquí teniu l'informe predeterminat generat per TestNG.
Aquí teniu l'informe generat per ReportNG.
Com que ja hem configurat ReportNG, per tant, podem esperar una visió clara del total aprovat, que ha fallat en el recompte anterior.
Execució de scripts de prova mitjançant l’indicador de comandes
- Hem d’iniciar l’indicatiu d’ordres
- Definiu el directori de treball com a ubicació de l’espai de treball
- Cerqueu la ubicació de la paperera / objectiu
- Cerqueu / creeu una ubicació de biblioteca
- Primer, necessitem un conjunt, el directori on existeix el projecte. En el meu cas, es tracta de D: RestAssured restapi
- Java: paraula clau
- cp - És la ruta de classe, significa el camí en què existeix la classe Java al projecte
- Objectiu - És el mateix que la carpeta bin quan estem treballant en un projecte Java. Com que estem treballant en el projecte Maven, per tant, tindrem aquesta carpeta. Sota aquesta carpeta, podem tenir dues carpetes més: classes, classes de prova. La classe Java actual existirà entre aquestes dues carpetes
- Lib - Aquesta carpeta contindrà tots els pots que hem utilitzat durant l'execució de l'script de prova des d'Eclipse. En alguns casos, és possible que la carpeta no estigui present. Per tant, és possible que hàgim de crear una carpeta i guardar-hi tots els pots, executables, etc.
- org.testng.TestNG testng1.xml - Això és com una sintaxi. L'última part és testng1.xml és el fitxer de recursos de TestNG, que es cridarà per executar els scripts de prova desitjats
L'ordre complet serà
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Després d'això, premeu Intro
Nota: Podem veure la carpeta bin mentre treballem en un projecte Java. Tanmateix, si treballem en un projecte de Maven, tindrem una carpeta de destinació i classes normals, la carpeta de classes de prova hi serà present.
Crear fitxers BAT i executar scripts de prova
En lloc d'obrir el símbol del sistema i executar l'ordre anterior per executar l'script de prova, podem conservar l'ordre en un fitxer de text i, mentre el desem, li dóna un nom com,
'Run.bat' (assegureu-vos de mantenir el '' al voltant de run.bat)
Així és com es veu un cop creat.
Ara feu doble clic a 'executar'
L'indicador d'ordres s'obrirà i executarà l'script de prova i, un cop finalitzada l'execució, es tancarà l'indicador d'ordres.
Integració de JENKINS amb Maven, Java
Hem de fer 4-5 configuracions a Jenkins per integrar-la amb Maven, Java i executar-la.
Un cop hàgim iniciat la sessió a Jenkins,
Goto Manager Jenkins >> Configuració d'eines globals
definiu el camí d’instal·lació de JDK
Nota : Assegureu-vos que la versió de Jenkin admeti la versió JDK / Java. La versió 2.73 de Jenkins requereix almenys la versió 1.8 de JDK / JAVA o, en cas contrari, crearà problemes en executar els scripts de prova.
Establiu el camí d'instal·lació de Maven
Després d'això, aneu al gestor Jenkins >> Configurar sistemes
com veure fitxers .eps
Estableix el camí variable ambiental
Pròxim, Creeu un element nou
Hem de fer clic a crear un enllaç nou, especificar el fitxer nom per al treball, seleccioneu el tipus de projecte com a Estil lliure . No cal preocupar-se per altres coses fins ara.
Un cop creada la feina, quedarà així.
Ara feu clic a la feina
Seguiu els passos següents:
- Feu clic a l'enllaç de configuració del tauler esquerre.
- Desplaceu-vos cap avall a la pestanya General i feu clic al botó Avançat.
- Seleccioneu la casella de selecció de l’espai de treball personalitzat i especifiqueu la ubicació de la carpeta del projecte.
Després d'això
- Desplaceu-vos més cap avall fins a Construir activadors
- Marqueu la casella de selecció Crea periòdicament
- Establiu una estona com s'esmenta a continuació
Desplaceu-vos cap avall i definiu el nom de Build. En el nostre cas, es tracta d’una ordre per lots executable de Windows.
Es troba a la mateixa ubicació on hem conservat el fitxer run.bat anteriorment, que és la carpeta D: RestAssured restapi
Deseu tots els canvis anteriors realitzats fins ara.
Ara, espereu que s’executi el treball cron. Podem veure que s’inicia la construcció.
Un cop executada la compilació amb èxit, a continuació hem de fer clic a la compilació # 20 tal com s’especifica a la imatge anterior.
Feu clic al botó Sortida de la consola enllaç al tauler esquerre.
Ara hauríem de poder veure la següent sortida.
Conclusió
REST ASSURED és una biblioteca JAVA molt útil per automatitzar l'API REST independentment de l'idioma. Té moltes opcions incorporades. A més, té moltes versions amb funcions interessants, opcions incloses. Admet molts formats com a sol·licituds com XML, JSON, etc.
En aquest tutorial, hem explicat com automatitzar les sol·licituds d'API mitjançant RESTAssured mentre s'executen scripts de prova amb Jenkins. També hem explicat per què Rest Assured és una millor opció per automatitzar les sol·licituds d'API.
Esperem que us hagi agradat llegir aquesta sèrie de tutorials de l’API Rest.
Lectura recomanada
- Proves de l'API REST amb cogombre mitjançant l'aproximació BDD
- 10 millors eines de proves d'API el 2021 (eines de proves d'API SOAP i REST)
- Proves d'API REST amb Spring RestTemplate i TestNG
- Treballar amb sol·licituds HTTP a JMeter
- Tutorial POSTMAN: proves d'API mitjançant POSTMAN
- Top 20 de les preguntes i respostes de les entrevistes de proves API més importants
- Top 10 de les millors eines de gestió d'API amb comparació de funcions
- Top 36 de les preguntes de l'entrevista de Jenkins (per al 2021)