{"id":2009,"date":"2024-01-05T09:54:18","date_gmt":"2024-01-05T08:54:18","guid":{"rendered":"https:\/\/ittester.sk\/sin-categorizar\/controladores-logicos-jmeter\/"},"modified":"2024-06-25T16:01:52","modified_gmt":"2024-06-25T14:01:52","slug":"controladores-logicos-jmeter","status":"publish","type":"post","link":"https:\/\/ittester.sk\/es\/pruebas-de-rendimiento\/tutorial-de-jmeter\/controladores-logicos-jmeter\/","title":{"rendered":"Controladores l\u00f3gicos en Jmeter"},"content":{"rendered":"\n<p>En el tutorial anterior, tratamos los muestreadores y los distintos tipos de consultas de muestreo disponibles en JMeter. En este tutorial, veremos los controladores l\u00f3gicos que personalizan la forma en que se env\u00edan las distintas peticiones al servidor.<\/p>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-logic-controllers\">Logic Controllers<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-preco-potrebujeme-logic-controllers\">Pre\u010do potrebujeme Logic Controllers?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-critical-section-controller-kontroler-kritickej-sekcie\">Critical Section Controller (Kontrol\u00e9r kritickej sekcie)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-foreach-controller\">ForEach Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-if-controller\">If Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-include-controller\">Include Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-interleave-controller\">Interleave Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-loop-controller\">Loop Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-module-controller\">Module Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-once-only-controller\">Once Only Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-random-controller-nahodny-kontroler\">Random Controller (N\u00e1hodn\u00fd kontrol\u00e9r)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-random-order-controller\">Random Order Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-recording-controller\">Recording Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-runtime-controller\">Runtime Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-simple-controller-jednoduchy-kontroler\">Simple Controller (Jednoduch\u00fd kontrol\u00e9r)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-switch-controller\">Switch Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-throughput-controller\">Throughput Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-transaction-controller\">Transaction Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-while-controller\">While Controller<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-logic-controllers\">Controladores l\u00f3gicos  <\/h2>\n\n<p>Los controladores l\u00f3gicos son elementos del plan de pruebas que se utilizan para ajustar el orden de procesamiento de los muestreadores y otros elementos a\u00f1adidos como hijos. Los Controladores L\u00f3gicos se utilizan principalmente en las peticiones del Muestreador para realizar diversas personalizaciones, como cambiar el orden de su procesamiento, agruparlas como una \u00fanica transacci\u00f3n o ejecutar las peticiones en un bucle, etc.<\/p>\n\n<p> <strong>&gt;&gt;&gt; Pasos para iniciar un controlador l\u00f3gico &#8211;<\/strong> <strong>haz clic con el bot\u00f3n derecho en Grupo de hilos &#8211; ve a A\u00f1adir &#8211; ve a Controladores l\u00f3gicos &#8211; haz clic en los controladores l\u00f3gicos deseados <\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"560\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560.webp\" alt=\"Captura de pantalla de las instrucciones de inicio del controlador l&#xF3;gico\" class=\"wp-image-754\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560.webp 710w, https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560-300x237.webp 300w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-preco-potrebujeme-logic-controllers\">\u00bfPor qu\u00e9 necesitamos Controladores L\u00f3gicos?<\/h2>\n\n<p>Los scripts de pruebas de rendimiento se utilizan para simular las acciones de usuarios reales. Al igual que un usuario real, realizar\u00e1 m\u00faltiples acciones de distintas formas, por ejemplo, realizar un conjunto de operaciones de forma secuencial (p. ej., navegar desde la p\u00e1gina de inicio de sesi\u00f3n a la p\u00e1gina de inicio), realizar tipos similares de operaciones en bucle (p. ej., leer varios correos electr\u00f3nicos no le\u00eddos), realizar algunas operaciones aleatorias, etc. Para simular estos distintos tipos de acciones, JMeter nos proporciona distintos tipos de controladores l\u00f3gicos que personalizan el procesamiento de los elementos que contienen.<\/p>\n\n<p>Veamos ahora los distintos controladores l\u00f3gicos que proporciona JMeter:<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-critical-section-controller-kontroler-kritickej-sekcie\">Controlador de la Secci\u00f3n Cr\u00edtica<\/h2>\n\n<p>Se trata de un controlador reci\u00e9n a\u00f1adido al sistema JMeter. Garantiza que s\u00f3lo un hilo a la vez acceda a los elementos esclavos de este controlador.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-foreach-controller\">Controlador ForEach<\/h2>\n\n<p>Este controlador se utiliza para ejecutar peticiones en un bucle en funci\u00f3n de los valores de un conjunto de variables relacionadas.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-if-controller\">Si el controlador<\/h2>\n\n<p>Utilizando el Controlador If, podemos especificar una condici\u00f3n para que se active o no el elemento hijo que contiene, en funci\u00f3n de la condici\u00f3n que debe evaluarse como verdadera o falsa.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-include-controller\">Incluir controlador<\/h2>\n\n<p>Include Controller puede utilizarse para proporcionar modularidad en JMeter. Utilizando este controlador podemos a\u00f1adir un archivo .jmx(fragmento de prueba) externo a nuestro script existente cargando el archivo jmx en el Controlador Incluir.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-interleave-controller\">Controlador de intercalaci\u00f3n<\/h2>\n\n<p>El Controlador Intercalar nos permite seleccionar y ejecutar un elemento hijo de entre varios hijos en cada iteraci\u00f3n del bucle. Por ejemplo: si tenemos tres muestreadores a\u00f1adidos como esclavos al Controlador de Intercalaci\u00f3n, en la primera iteraci\u00f3n se seleccionar\u00e1 la solicitud del primer muestreador, en la siguiente iteraci\u00f3n se seleccionar\u00e1 la del siguiente, y as\u00ed sucesivamente. Cuando se terminan los elementos hijos, la iteraci\u00f3n vuelve a empezar desde el primer elemento.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-loop-controller\">Controlador de bucle<\/h2>\n\n<p>Te permite realizar operaciones especificadas como elementos hijos en un bucle con el valor de iteraci\u00f3n especificado en su panel de control.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-module-controller\">M\u00f3dulo Controlador<\/h2>\n\n<p>Utilizando el Controlador de M\u00f3dulos, podemos volver a aplicar un fragmento de prueba (por ejemplo, un muestreador) a nuestro script seleccionando el m\u00f3dulo en el panel de control del Controlador de M\u00f3dulos.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-once-only-controller\">Controlador \u00fanico<\/h2>\n\n<p>El controlador S\u00f3lo una vez se utiliza en una situaci\u00f3n en la que queremos ejecutar una operaci\u00f3n s\u00f3lo una vez, aunque la operaci\u00f3n se ejecute en un bucle.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-random-controller-nahodny-kontroler\">Controlador aleatorio<\/h2>\n\n<p>Es similar a un controlador aleatorio y selecciona un elemento hijo en cada iteraci\u00f3n, pero a diferencia del controlador Intercalar, selecciona el elemento hijo aleatoriamente.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-random-order-controller\">Controlador de Orden Aleatorio<\/h2>\n\n<p>El Controlador de Orden Aleatorio se utiliza para ejecutar cada uno de sus elementos hijos como m\u00e1ximo una vez en orden aleatorio.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-recording-controller\">Controlador de grabaci\u00f3n<\/h2>\n\n<p>Este controlador sirve como lugar donde se graban por defecto los scripts grabados utilizando el Proxy HTTP (consulta nuestro <a href=\"https:\/\/artoftesting.com\/record-scripts-in-jmeter\">tutorial<\/a> para obtener m\u00e1s detalles sobre la grabaci\u00f3n y reproducci\u00f3n en JMeter).<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-runtime-controller\">Controlador de tiempo de ejecuci\u00f3n<\/h2>\n\n<p>El controlador de tiempo de ejecuci\u00f3n se utiliza para limitar el tiempo de ejecuci\u00f3n de sus elementos hijos. Por ejemplo, si especificamos un valor de \u00abTiempo de ejecuci\u00f3n\u00bb de 100 segundos, los elementos del controlador de Tiempo de ejecuci\u00f3n se ejecutar\u00e1n durante 100 segundos con tantas iteraciones como sea posible.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-simple-controller-jednoduchy-kontroler\">Controlador simple<\/h2>\n\n<p>Este controlador es s\u00f3lo un lugar para agrupar y organizar los distintos elementos del plan de pruebas.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-switch-controller\">Interruptor Controlador<\/h2>\n\n<p>Este controlador se utiliza para seleccionar un elemento para procesarlo de entre sus m\u00faltiples elementos hijos. El elemento no se selecciona en orden secuencial o aleatorio, sino en funci\u00f3n del valor del interruptor definido en su panel de control. El valor del interruptor puede ser una variable con un valor evaluado en su elemento \u00edndice(posici\u00f3n) o nombre de elemento. Por ejemplo, si en la primera iteraci\u00f3n el valor del interruptor se eval\u00faa como \u00ab3\u00bb, entonces se selecciona el cuarto elemento para procesarlo (el valor del \u00edndice empieza en 0). Del mismo modo, si el valor de un conmutador se eval\u00faa como un nombre de elemento, se selecciona ese elemento para procesarlo.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-throughput-controller\">Controlador de caudal<\/h2>\n\n<p>El Controlador de Rendimiento se utiliza para controlar el procesamiento de sus elementos hijos en funci\u00f3n del n\u00famero total de ejecuciones o del porcentaje de ejecuciones especificado en su panel de control.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-transaction-controller\">Controlador de transacciones  <\/h2>\n\n<p>El controlador de transacciones es uno de los controladores utilizados con m\u00e1s frecuencia en los scripts de JMeter. Sirve para agrupar varias peticiones de muestreador en una sola. El tiempo de respuesta y otras m\u00e9tricas de rendimiento del resultado de la prueba se eval\u00faan para toda la transacci\u00f3n. Por ejemplo, al comprobar el rendimiento de la p\u00e1gina de inicio de una aplicaci\u00f3n, podemos darnos cuenta de que el lanzamiento de la p\u00e1gina de inicio genera muchas peticiones en el backend. Por lo tanto, necesitamos agrupar todas estas peticiones en una \u00fanica transacci\u00f3n, que es para lo que tenemos el JMeter Transaction Controller. Tras ejecutar el script, podemos ver el tiempo de respuesta total de toda la transacci\u00f3n.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-while-controller\">Mientras el controlador<\/h2>\n\n<p>El controlador Mientras se utiliza para activar los elementos hijos que contiene hasta que el valor especificado en su panel de control se eval\u00fae como falso.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los controladores l\u00f3gicos son elementos del plan de pruebas que se utilizan para ajustar el orden de procesamiento de los muestreadores y otros elementos \u00abhijos\u00bb.  <\/p>\n","protected":false},"author":8,"featured_media":2011,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-2009","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\/2009","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=2009"}],"version-history":[{"count":1,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/2009\/revisions"}],"predecessor-version":[{"id":2013,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/posts\/2009\/revisions\/2013"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media\/2011"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/media?parent=2009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/categories?post=2009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/es\/wp-json\/wp\/v2\/tags?post=2009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}