Está en la página 1de 23

API Testing

API Owner

Escuela de APIs
Todos los derechos reservados.
Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
API Testing
➔ CTO en una Fintech

➔ Developer
◆ Con más de 10+N años de experiencia

➔ API Management “expert”


◆ Arquitectura, definiciones, implementación y testing

➔ ApiAddicts
Twitter: @Omarvr72 ◆ Colaborador adicto.
LinkedIn: https://www.linkedin.com/in/omardelvalle/

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
¿API Testing…? ?

The IT Crowd - ¿Has probado a


apagarlo y volverlo a encender?

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Producers
vs
Consumers

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
API testing step by step.
Source: Capital Terefe

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
API Specification review
✓ Definition testing

● Methods
● Parameters
● Responses
● Etc.

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: Content type & Accept

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: GET
➢ GET
✓ Response 200, 202, 206:
✓ 200 vs 206

➢ URL Parameters?
✓ Response 400 / 404
➢ Accept
✓ produces / content
➢ Security
✓ Response 401
➢ Scopes
✓ Response 403

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: POST
➢ POST
✓ Response 201, 202, 204, 206
✓ 200 vs 201 vs 204 vs 206 vs location

➢ Content type / Accept


✓ produces-consumes / content
✓ Response 400
➢ URL Parameters?
✓ Response 404
➢ Security
✓ Response 401
➢ Scopes
✓ Response 403

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: PUT/PATCH
➢ PUT/PATCH
✓ Response 200, 202, 204, 206

➢ Content type / Accept


✓ produces-consumes / content
✓ Response 400
➢ URL Parameters?
✓ Response 404
➢ Security
✓ Response 401
➢ Scopes
✓ Response 403

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: DELETE
➢ DELETE
✓ Response 202, 204

➢ Parameters?
✓ Response 404
➢ Security
✓ Response 401
➢ Scopes
✓ Response 403

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Pruebas de definición: Parameters
✓ Parameters in PATH or QUERY should be contain Bad Request (400) response

✓ Parameters of type string should be contain minLength and maxLength and/or regexp

✓ Parameters of type number/integer should be contain minimum and maximum or format

✓ Parameters in PATH should be contain Not found (400) response

✓ (Warning) Parameters required in QUERY maybe should be change to PATH

✓ Parameters in QUERY should be in lower case

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Estándar de respuestas (RFC 7807)
3.1. Members of a Problem Details Object

A problem details object can have the following members:

"type" (string) - A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide
human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is
assumed to be "about:blank".

"title" (string) - A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for
purposes of localization (e.g., using proactive content negotiation; see [RFC7231], Section 3.4).

"status" (number) - The HTTP status code ([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.

"detail" (string) - A human-readable explanation specific to this occurrence of the problem.

"instance" (string) - A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test specification development

✓ Unit testing

● TDD
● BDD
● Mocks

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Todos los derechos reservados.
Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test framework development

✓ API Functional & Security Testing (integration testing)

● API testing using Postman


● newman (Postman-cli)
● Behavior-driven development (BDD)

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test framework development

Source: Top 10 API testing tools

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test case development

✓ Test End-to-End (flow testing)

● API Testing flow using Postman


● newman (Postman-cli)

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test case development

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Performance testing or Perf testing

● Speed – Determines whether the application responds quickly


● Scalability – Determines the maximum user load the software application can handle.
● Stability – Determines if the application is stable under varying loads

The goal of Performance Testing is not to find bugs but to eliminate performance bottlenecks.

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
● Speed – Determines whether the
application responds quickly
● Scalability – Determines the maximum
user load the software application can
handle.
● Stability – Determines if the application
is stable under varying loads

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Test execution and reporting
✓ Performance testing or Perf testing
● Load testing: checks the application’s ability to perform under anticipated user loads. The objective is to
identify performance bottlenecks before the software application goes live
● Stress testing: involves testing an application under extreme workloads to see how it handles high traffic
or data processing. The objective is to identify the breaking point of an application.
● Volume testing: Under Volume Testing large no. of. Data is populated in a database, and the overall
software system’s behavior is monitored. The objective is to check software application’s performance
under varying database volumes.
● Soak testing: is done to make sure the software can handle the expected load over a long period of time.
● Scalability testing: The objective of scalability testing is to determine the software application’s
effectiveness in “scaling up” to support an increase in user load. It helps plan capacity addition to your
software system.

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.
Facebook
ApiAddicts

DATOS DE in
Linkedin
API Addicts

CONTACTO Twitter
@APIAddicts

Meet Up
+34 91 764 79 82 API Addicts

contacta@apiaddicts.org
Youtube
www.apiaddicts.org API Addicts

Todos los derechos reservados.


Se encuentra prohibida la reproducción total o parcial de este documento, salvo autorización expresa del autor.

También podría gustarte