{"id":149,"date":"2022-11-23T19:03:45","date_gmt":"2022-11-23T19:03:45","guid":{"rendered":"https:\/\/lmponceb.com\/?p=149"},"modified":"2022-11-23T19:35:07","modified_gmt":"2022-11-23T19:35:07","slug":"envio-de-pruebas-masivas-usando-soap-ui","status":"publish","type":"post","link":"https:\/\/lmponceb.com\/index.php\/2022\/11\/23\/envio-de-pruebas-masivas-usando-soap-ui\/","title":{"rendered":"Env\u00edo de Pruebas Masivas usando SOAP UI"},"content":{"rendered":"\n<p>Me solicitan enviar 1000 peticiones de forma masiva a un servicio web de tipo SOAP, para lo cual puedo valerme de la funcionalidad de pruebas de SOAP UI.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"320\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image.png\" alt=\"\" class=\"wp-image-150\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image.png 484w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-300x198.png 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/figure>\n\n\n\n<p>Para esto vamos simular la llamada a un servicio que tiene la siguiente estructura:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"675\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-1-1024x675.png\" alt=\"\" class=\"wp-image-151\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-1-1024x675.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-1-300x198.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-1-768x506.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-1.png 1302w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Par lo cual vamos a crear un archivo XML por cada una de las peticiones que voy a realizar y almacenarlas en una carpeta, en este caso &#8220;requests&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-2-1024x525.png\" alt=\"\" class=\"wp-image-152\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-2-1024x525.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-2-300x154.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-2-768x394.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-2.png 1510w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p>Cada uno de los archivos tendr\u00e1 el fragmento de la petici\u00f3n que variar\u00e1 de llamada en llamada.<\/p>\n\n\n\n<p>Una vez que tengo armados los archivos, procedo a estructurar la prueba dentro de SOAP UI, para esto crearemos 3 pasos<\/p>\n\n\n\n<p><strong>Paso 1<\/strong><\/p>\n\n\n\n<p>Script lee los archivos en el directorio &#8220;request&#8221; y inicializa un arreglo con los mismos<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"820\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-6-1024x820.png\" alt=\"\" class=\"wp-image-156\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-6-1024x820.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-6-300x240.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-6-768x615.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-6.png 1286w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\"><span class=\"has-inline-color has-very-dark-gray-color\">def fileList = []\nnew File(\"\/path\/requests\/\").eachFile { f ->\nif (f.isFile() &amp;&amp; f.name.endsWith('.xml')) {\ndef filename = f.name[0..-1]\nfileList.add(filename)\nlog.info filename\n}\n}\nif (fileList.size() &lt; 1) {\ntestRunner.fail(\"No request files\")\n}\ncontext.put('fileList', fileList)<\/span><\/pre>\n\n\n\n<p><strong>Paso 2<\/strong><\/p>\n\n\n\n<p>El paso 2 es una llamada SOAP, con una modificaci\u00f3n para que tome el nombre del archivo del arreglo creado en el paso 1<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"748\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5-1024x748.png\" alt=\"\" class=\"wp-image-155\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5-1024x748.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5-300x219.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5-768x561.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5-1536x1122.png 1536w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-5.png 1870w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">${=new File(\"\/path\/requests\/\" + (context.get('fileList')).first()).text}<\/pre>\n\n\n\n<p><strong>Paso 3 <\/strong><\/p>\n\n\n\n<p>Aqu\u00ed iteramos sobre cada ejecuci\u00f3n y almacenamos tanto la llamada, como la respuesta en el directorio &#8220;responses&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"689\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-7-1024x689.png\" alt=\"\" class=\"wp-image-157\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-7-1024x689.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-7-300x202.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-7-768x517.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-7.png 1480w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-preformatted\">def fileList = context.get('fileList')\ndef fileName = fileList.first()\ndef newName = fileName[0..-5]\ndef response = context.expand( '${Step2#Response}' )\ndef f = new File(\"\/path\/responses\/${newName}_Response.xml\")\nf.write(response, \"UTF-8\")\ndef query = context.expand( '${Step2#Request}' )\ndef q = new File(\"\/path\/responses\/${newName}_Query.xml\")\nq.write(query, \"UTF-8\")\nfileList.pop()\nif(fileList.size() >0)\n{\ntestRunner.gotoStepByName(\"Step2\")\n}<\/pre>\n\n\n\n<p>Por ultimo ejecutamos el caso de prueba<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"807\" src=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8-1024x807.png\" alt=\"\" class=\"wp-image-158\" srcset=\"https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8-1024x807.png 1024w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8-300x236.png 300w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8-768x605.png 768w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8-1536x1210.png 1536w, https:\/\/lmponceb.com\/wp-content\/uploads\/2022\/11\/image-8.png 1906w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Me solicitan enviar 1000 peticiones de forma masiva a un servicio web de tipo SOAP, para lo cual puedo valerme de la funcionalidad de pruebas de SOAP UI. Para esto vamos simular la llamada a un servicio que tiene la siguiente estructura: Par lo cual vamos a crear un archivo XML por cada una de &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/lmponceb.com\/index.php\/2022\/11\/23\/envio-de-pruebas-masivas-usando-soap-ui\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Env\u00edo de Pruebas Masivas usando SOAP UI&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,9],"tags":[],"class_list":["post-149","post","type-post","status-publish","format-standard","hentry","category-productividad","category-utilidades"],"_links":{"self":[{"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/posts\/149","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/comments?post=149"}],"version-history":[{"count":2,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/posts\/149\/revisions"}],"predecessor-version":[{"id":160,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/posts\/149\/revisions\/160"}],"wp:attachment":[{"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/media?parent=149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/categories?post=149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lmponceb.com\/index.php\/wp-json\/wp\/v2\/tags?post=149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}