{"id":1941,"date":"2024-01-20T12:00:00","date_gmt":"2024-01-20T11:00:00","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/rest-api-testing-jmeter\/"},"modified":"2024-06-25T16:00:09","modified_gmt":"2024-06-25T14:00:09","slug":"rest-api-testing-jmeter","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/pruebas-de-rendimiento\/tutorial-de-jmeter\/rest-api-testing-jmeter\/","title":{"rendered":"Pruebas de API Rest con JMeter"},"content":{"rendered":"\n<p>Actualmente, REST (Representational State Transfer) se ha convertido en el modelo m\u00e1s utilizado para implementar servicios web. Es ligero, no est\u00e1 fuertemente tipado y, a diferencia de SOAP, no est\u00e1 vinculado al formato XML. As\u00ed que tambi\u00e9n se convirti\u00f3 en una noticia candente para la GC. En nuestras entradas anteriores, hemos mencionado las pruebas manuales de la API REST y la automatizaci\u00f3n de la API REST mediante Java. En este post, demostraremos c\u00f3mo realizar pruebas funcionales o de carga de API REST utilizando JMeter.<\/p>\n\n<p>En este tutorial, estoy utilizando una API REST ficticia disponible en jsonplaceholder.typicode.com. Utilizar\u00e9 el m\u00e9todo HTTP Post de la API para solicitar la funci\u00f3n \u00abpublicar comentarios\u00bb de esta API ficticia.<\/p>\n\n<pre class=\"wp-block-code\"><code>ADRESA URL API - http:\/\/jsonplaceholder.typicode.com\/posts\n\nTelo po\u017eiadavky API\n\n{\n\n\u00a0\u00a0\u00a0\u00a0title: 'foo',\n\n\u00a0\u00a0\u00a0\u00a0body: 'bar',\n\n\u00a0\u00a0\u00a0\u00a0userId: 1\n\n}\n\nPri \u00faspe\u0161nej po\u017eiadavke API vr\u00e1ti nasleduj\u00facu odpove\u010f (ako je vidie\u0165 v \u010dasti View Result Tree).\n\n{\n\n\u00a0\u00a0title: 'foo',\n\n\u00a0\u00a0body: 'bar',\n\n\u00a0\u00a0userId: 1\n\n\u00a0\u00a0id: 101, \/\/or any random id\n\n}\n\n<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Pasos para programar la API Rest en JMeter<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Primero tenemos que a\u00f1adir el muestreador de peticiones HTTP al grupo de hilos (Plan de pruebas -&gt; Grupo de hilos -&gt; Muestreador-&gt;Petici\u00f3n HTTP)<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"560\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560.webp\" alt=\"\" class=\"wp-image-856\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560.webp 800w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560-300x210.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560-768x538.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>A continuaci\u00f3n, en la secci\u00f3n del servidor web, tenemos que especificar el nombre o la direcci\u00f3n IP del servidor API y su puerto (si es necesario).<\/li>\n<\/ul>\n\n<p>La secci\u00f3n Solicitud HTTP deber\u00e1 completarse como:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Nombre del <strong>servidor o IP<\/strong> &#8211; nombre del servidor (por ejemplo, jsonplaceholder.typicode.com)<\/li>\n\n\n\n<li><strong>Implementaci\u00f3n<\/strong> &#8211; selecciona HttpClient4 o Java<\/li>\n\n\n\n<li><strong>[http]Protocolo<\/strong> &#8211; Dependiendo del tipo de protocolo, selecciona HTTP o HTTPS (por ejemplo, la API ficticia est\u00e1 construida sobre http, as\u00ed que usaremos http aqu\u00ed)<strong> <\/strong><\/li>\n\n\n\n<li><strong>M\u00e9todo<\/strong> &#8211; Dependiendo del tipo de m\u00e9todo sobre el que se haya construido la API, selecciona Get, Put, Post, Delete, etc (en nuestro ejemplo trabajaremos con el m\u00e9todo Post).<\/li>\n\n\n\n<li><strong>Ruta<\/strong> &#8211; Ruta a la aplicaci\u00f3n despu\u00e9s de API_URL (por ejemplo. para API_URL http:\/\/jsonplaceholder.typicode.com\/posts&#8217; ser\u00e1 Ruta \u00abposts\u00bb.<\/li>\n\n\n\n<li><strong>Par\u00e1metros\/Cuerpo de la solicitud (Parameters\/Post<\/strong> Request Body) &#8211; a\u00f1ade aqu\u00ed el cuerpo de la solicitud de la API (cuerpo de la solicitud de la API en la secci\u00f3n \u00abPost Body\u00bb (ver captura de pantalla m\u00e1s abajo para m\u00e1s detalles, o tambi\u00e9n podemos introducir los par\u00e1metros de la solicitud de uno en uno en la secci\u00f3n Par\u00e1metros)<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"830\" height=\"530\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530.webp\" alt=\"\" class=\"wp-image-858\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530.webp 830w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530-300x192.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530-768x490.webp 768w\" sizes=\"auto, (max-width: 830px) 100vw, 830px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>El usuario tambi\u00e9n debe a\u00f1adir el <strong>Gestor de cabeceras HTTP<\/strong> como hijo al muestreador de peticiones HTTP (para el ejemplo actual no es necesario, ni siquiera funcionar\u00e1) con la cabecera content-type<\/li>\n\n\n\n<li>Haz clic en el bot\u00f3n A\u00f1adir del Gestor de Encabezados HTTP y a\u00f1ade \u00abContent-Type\u00bb en Nombre y \u00abapplication\/json\u00bb en Valor.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"170\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170.webp\" alt=\"\" class=\"wp-image-860\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170.webp 850w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170-300x60.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170-768x154.webp 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>[Volite\u013en\u00e9]Adem\u00e1s, podemos a\u00f1adir varias afirmaciones al plan de pruebas para marcar un caso de prueba como correcto o incorrecto en funci\u00f3n de la respuesta obtenida. Por ejemplo. La API ficticia anterior devuelve \u00abtitle:foo\u00bb en su respuesta. As\u00ed que para probar la API, podemos a\u00f1adir \u00abAserci\u00f3n de respuesta\u00bb a la \u00abSolicitud HTTP\u00bb (Solicitud HTTP-&gt;ADD-&gt;Aserci\u00f3n-&gt;Aserci\u00f3n de respuesta) y a\u00f1adir el patr\u00f3n \u00abtitle: &#8216;foo'\u00bb a la secci\u00f3n Patr\u00f3n a probar de la Aserci\u00f3n de respuesta. Mira la captura de pantalla como referencia.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"460\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460.webp\" alt=\"\" class=\"wp-image-862\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460.webp 770w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460-300x179.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460-768x459.webp 768w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Por \u00faltimo, podemos a\u00f1adir diferentes escuchas, por ejemplo \u00abMostrar \u00e1rbol de resultados\u00bb. Tras ejecutar el script JMeter (Ctrl+r), veremos la respuesta de la API en la secci\u00f3n \u00abVer \u00e1rbol de resultados\u00bb de los datos de respuesta.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"550\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550.webp\" alt=\"\" class=\"wp-image-864\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550.webp 950w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550-300x174.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550-768x445.webp 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n<\/div>\n<p>De este modo, podemos realizar pruebas funcionales de la API Rest y aumentar el \u00abn\u00famero de hilos\u00bb y el \u00abn\u00famero de ciclos\u00bb en el grupo de hilos para las pruebas de carga.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este post, demostraremos c\u00f3mo realizar pruebas funcionales o de carga de API REST utilizando JMeter.<\/p>\n","protected":false},"author":8,"featured_media":1947,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-1941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-de-jmeter"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/comments?post=1941"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1941\/revisions"}],"predecessor-version":[{"id":1949,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/1941\/revisions\/1949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/1947"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=1941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=1941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=1941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}