{"id":22231,"date":"2020-04-03T01:16:53","date_gmt":"2020-04-02T23:16:53","guid":{"rendered":"https:\/\/savinol.sg-host.com\/webdesign\/load-testing-di-web-api-con-loader-io\/"},"modified":"2020-04-03T01:16:53","modified_gmt":"2020-04-02T23:16:53","slug":"load-testing-di-web-api-con-loader-io","status":"publish","type":"post","link":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/","title":{"rendered":"Load Testing di Web API con Loader.io"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Quando si implementa un servizio di <strong>web API<\/strong>, siano esse <a href=\"https:\/\/www.html.it\/articoli\/cos-e-rest-caratteristiche\/\">RESTful o RESTless<\/a>, in progetti piuttosto piccoli si pu\u00f2 pensare di accontentarsi di qualche semplice test \u201cmanuale\u201d. In seconda battuta, si possono sfruttare <a href=\"https:\/\/www.html.it\/script\/tool-di-test-via-web-tramite-curl\/\">curl<\/a> ed un po\u2019 di <a href=\"https:\/\/www.html.it\/guide\/shell-scripting-la-guida\/\">shell scripting<\/a> per implementare alcuni test pi\u00f9 specifici e completi.<\/p>\n<p>Tuttavia, \u00e8 facile convincersi che anche quest\u2019ultima soluzione pecca in termini di <strong>manutenibilit\u00e0<\/strong>. Aumentando la complessit\u00e0 delle nostre API, \u00e8 infatti facile arrivare a dover scrivere script sempre pi\u00f9 complicati. \u00c8 quindi decisamente preferibile utilizzare <strong>strumenti che automatizzino il testing<\/strong>, magari scrivendoli durante lo sviluppo dell\u2019applicazione.<\/p>\n<p>Il problema irrisolto ha per\u00f2 a che fare con il <strong>load testing<\/strong>, ovvero il processo che ci permette di verificare la capacit\u00e0 di carico delle nostre API (e quindi, come diretta conseguenza, della nostra infrastruttura, web server compreso). Per questa necessit\u00e0, esiste un servizio particolarmente utile e facilmente accessibile online: <strong>Loader.io<\/strong>.<\/p>\n<p>Loader.io ci permette di effettuare test di carico direttamente sfruttando una interfaccia web. Accedendo al <a href=\"https:\/\/loader.io\/\" target=\"_blank\" rel=\"noopener nofollow noreferrer\">sito di Loader.io<\/a> ed iscrivendosi, \u00e8 possibile scegliere tra due piani: uno <strong>gratuito<\/strong> e limitato (\u00e8 possibile testare un solo host, per non pi\u00f9 di un minuto, e con non pi\u00f9 di 2 URL per volta), ed uno a pagamento, senza grosse limitazioni.<\/p>\n<div class=\"boximg\"><span>Figura 1. Costi di Loader.io (click per ingrandire)<\/span><a href=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/1-1.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/1-1.png\" alt=\"Costi di Loader.io\"\/><\/a><\/div>\n<p>Una volta ottenute le credenziali e verificato l\u2019account, \u00e8 possibile <strong>aggiungere un nuovo host<\/strong> su cui effettueremo i test di carico veri e propri.<\/p>\n<div class=\"boximg\"><span>Figura 2. Aggiunta di un nuovo host su Loader.io (click per ingrandire)<\/span><a href=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/2-1.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/2-1.png\" alt=\"Aggiunta di un nuovo host su Loader.io\"\/><\/a><\/div>\n<p>Ci verr\u00e0 quindi chiesto di aggiungere alcuni file nella directory principale dell\u2019host, in modo da verificare la nostra paternit\u00e0 dell\u2019host ed effettuare i test evitando di saturare la banda di qualche altro malcapitato server.<\/p>\n<div class=\"boximg\"><span>Figura 3. Verifica dell\u2019host su Loader.io (click per ingrandire)<\/span><a href=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/3.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/3.png\" alt=\"Verifica dell'host su Loader.io\"\/><\/a><\/div>\n<p>Fatto ci\u00f2, non resta che sfruttare l\u2019interfaccia intuitiva di Loader.io per <strong>creare un nuovo test<\/strong>. Sar\u00e0 possibile specificare parametri come il numero di client da utilizzare, la durata del test, e tutti ci\u00f2 che riguarda le richieste HTTP da effettuare (oltre ad URL e metodo, si possono specificare anche alcuni header della richiesta ed aggiungere parametri al body). \u00c8 anche possibile sfruttare il contenuto della risposta di una richiesta, memorizzandolo in una variabile da utilizzare nella richiesta successiva.<\/p>\n<div class=\"boximg\"><span>Figura 4. Creazione del test su Loader.io (click per ingrandire)<\/span><a href=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/4.png\" class=\"fan_img\" rel=\"fan_group\"><img src=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/4.png\" alt=\"Creazione del test su Loader.io\"\/><\/a><\/div>\n<p>Una volta creato il test, \u00e8 possibile lanciarlo. Al termine, <strong>verr\u00e0 generato un report interattivo<\/strong> con i risultati del test, che include (tra le altre cose) anche i tempi di risposta del server e gli eventuali errori HTTP generati.<\/p>\n<p>Non resta che provare questo tool e sfruttarlo al meglio per i nostri progetti (presenti e futuri).<\/p>\n<p><em>Fonte<\/em>: <a href=\"https:\/\/loader.io\/\" class=\"text-link text-link--special\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><span class=\"underline\">Loader.io<\/span><i class=\"ico-external\"\/><\/a><\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"http:\/\/feedproxy.google.com\/~r\/htmlitedit\/~3\/u-4I5c6gy18\/\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si implementa un servizio di web API, siano esse RESTful o RESTless, in progetti piuttosto piccoli si pu\u00f2 pensare di accontentarsi di qualche semplice test \u201cmanuale\u201d. In seconda battuta, si possono sfruttare curl ed un po\u2019 di shell scripting per implementare alcuni test pi\u00f9 specifici e completi. Tuttavia, \u00e8 facile convincersi che anche quest\u2019ultima&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_s2mail":""},"categories":[37],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Load Testing di Web API con Loader.io - AGENZIA WEB Italia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Load Testing di Web API con Loader.io - AGENZIA WEB Italia\" \/>\n<meta property=\"og:description\" content=\"Quando si implementa un servizio di web API, siano esse RESTful o RESTless, in progetti piuttosto piccoli si pu\u00f2 pensare di accontentarsi di qualche semplice test \u201cmanuale\u201d. In seconda battuta, si possono sfruttare curl ed un po\u2019 di shell scripting per implementare alcuni test pi\u00f9 specifici e completi. Tuttavia, \u00e8 facile convincersi che anche quest\u2019ultima...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\" \/>\n<meta property=\"og:site_name\" content=\"AGENZIA WEB Italia\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-02T23:16:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/1-1.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\"},\"headline\":\"Load Testing di Web API con Loader.io\",\"datePublished\":\"2020-04-02T23:16:53+00:00\",\"dateModified\":\"2020-04-02T23:16:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\"},\"wordCount\":451,\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\",\"name\":\"Load Testing di Web API con Loader.io - AGENZIA WEB Italia\",\"isPartOf\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\"},\"datePublished\":\"2020-04-02T23:16:53+00:00\",\"dateModified\":\"2020-04-02T23:16:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Load Testing di Web API con Loader.io\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#website\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"name\":\"AGENZIA WEB Italia\",\"description\":\"Web design Web agency Italia\",\"publisher\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization\",\"name\":\"Multimedia Web\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"contentUrl\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png\",\"width\":200,\"height\":57,\"caption\":\"Multimedia Web\"},\"image\":{\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g\",\"caption\":\"admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Load Testing di Web API con Loader.io - AGENZIA WEB Italia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/","og_locale":"it_IT","og_type":"article","og_title":"Load Testing di Web API con Loader.io - AGENZIA WEB Italia","og_description":"Quando si implementa un servizio di web API, siano esse RESTful o RESTless, in progetti piuttosto piccoli si pu\u00f2 pensare di accontentarsi di qualche semplice test \u201cmanuale\u201d. In seconda battuta, si possono sfruttare curl ed un po\u2019 di shell scripting per implementare alcuni test pi\u00f9 specifici e completi. Tuttavia, \u00e8 facile convincersi che anche quest\u2019ultima...","og_url":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/","og_site_name":"AGENZIA WEB Italia","article_published_time":"2020-04-02T23:16:53+00:00","og_image":[{"url":"https:\/\/tbm-html.s3.amazonaws.com\/app\/uploads\/2020\/03\/1-1.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"admin","Tempo di lettura stimato":"2 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#article","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/"},"author":{"name":"admin","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42"},"headline":"Load Testing di Web API con Loader.io","datePublished":"2020-04-02T23:16:53+00:00","dateModified":"2020-04-02T23:16:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/"},"wordCount":451,"publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"articleSection":["News"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/","name":"Load Testing di Web API con Loader.io - AGENZIA WEB Italia","isPartOf":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website"},"datePublished":"2020-04-02T23:16:53+00:00","dateModified":"2020-04-02T23:16:53+00:00","breadcrumb":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/load-testing-di-web-api-con-loader-io\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nycwebdesign.eu\/webdesign\/"},{"@type":"ListItem","position":2,"name":"Load Testing di Web API con Loader.io"}]},{"@type":"WebSite","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#website","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","name":"AGENZIA WEB Italia","description":"Web design Web agency Italia","publisher":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nycwebdesign.eu\/webdesign\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#organization","name":"Multimedia Web","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/","url":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","contentUrl":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-content\/uploads\/2016\/05\/multimediaweb1.png","width":200,"height":57,"caption":"Multimedia Web"},"image":{"@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/c0748e23499fac2fd73b79d1379fdf42","name":"admin","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.nycwebdesign.eu\/webdesign\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/991cd68bbfd6f946517378a63fc3a1f7?s=96&d=mm&r=g","caption":"admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/22231"}],"collection":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/comments?post=22231"}],"version-history":[{"count":0,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/posts\/22231\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/media?parent=22231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/categories?post=22231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nycwebdesign.eu\/webdesign\/wp-json\/wp\/v2\/tags?post=22231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}