{"id":22710,"date":"2023-02-17T15:55:42","date_gmt":"2023-02-17T14:55:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=22710"},"modified":"2024-09-11T10:25:44","modified_gmt":"2024-09-11T08:25:44","slug":"apache-jmeter-playground","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/","title":{"rendered":"Apache JMeter Playground"},"content":{"rendered":"\n<p>As I am training myself to <a href=\"https:\/\/jmeter.apache.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Apache JMeter<\/a>, beside testing on my Oracle environment (which include Oracle Internet Directory, Oracle Directory Service Manager, Oracle Identity and Access Management, a Database and a web application protected by SAML), I was looking for a tool to test more feature of it.<\/p>\n\n\n\n<p>I found a website called <a href=\"https:\/\/httpbin.org\" target=\"_blank\" rel=\"noreferrer noopener\">httpbin<\/a>. You can find plenty of tools to do online testing, but this one can even be self-hosted within a docker image.<\/p>\n\n\n\n<p>In this blog, I will explain how to setup httpbin and then use one of this many features to crawl a website to, for example, looking for dead links.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">httpbin<\/h2>\n\n\n\n<p>Starting httpbin is easy as running this command (and it is not the only advantage of it):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ndocker run -p 80:80 kennethreitz\/httpbin\n<\/pre><\/div>\n\n\n<p>After pulling the image, the server runs and makes the main web page available:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1138\" height=\"969\" class=\"wp-image-22716\" style=\"width: 500px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png 1138w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-300x255.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-1024x872.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-768x654.png 768w\" sizes=\"auto, (max-width: 1138px) 100vw, 1138px\" \/><\/p>\n\n\n\n<p>It has following features:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HTTP Methods: Testing different HTTP verbs<\/li>\n\n\n\n<li>Auth: Auth methods<\/li>\n\n\n\n<li>Status codes: Generates responses with given status code<\/li>\n\n\n\n<li>Request inspection: Inspect the request data<\/li>\n\n\n\n<li>Response inspection: Inspect the response data like caching and headers<\/li>\n\n\n\n<li>Response formats: Returns responses in different data formats<\/li>\n\n\n\n<li>Dynamic data: Generates random and dynamic data<\/li>\n\n\n\n<li>Cookies: Creates, reads and deletes Cookies<\/li>\n\n\n\n<li>Images: Returns different image formats<\/li>\n\n\n\n<li>Redirects: Returns different redirect responses<\/li>\n\n\n\n<li>Anything: Returns anything that is passed to request<\/li>\n<\/ul>\n\n\n\n<p>When you click on a feature, it will display a list of accessible URLs. You can even try it out directly from within the browser.<\/p>\n\n\n\n<p>For example, the most basic one (GET):<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1283\" height=\"798\" class=\"wp-image-22717\" style=\"width: 500px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get.png 1283w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-300x187.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-1024x637.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-768x478.png 768w\" sizes=\"auto, (max-width: 1283px) 100vw, 1283px\" \/><\/p>\n\n\n\n<p>It as no parameter and it will return headers sent by the browser or curl command.<\/p>\n\n\n\n<p>This is a bit simple to use JMeter for, so let&#8217;s try another feature.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">GET Links<\/h2>\n\n\n\n<p>The other feature from httpbin I wanted to try is <em>links<\/em>:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1370\" height=\"1196\" class=\"wp-image-22718\" style=\"width: 500px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links.png 1370w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-300x262.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-1024x894.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-768x670.png 768w\" sizes=\"auto, (max-width: 1370px) 100vw, 1370px\" \/><\/p>\n\n\n\n<p>It will return is a page full of links from 0 to n-1. For example with n equal 20:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"175\" class=\"wp-image-22719\" style=\"width: 350px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-example.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-example.png 697w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin-get-links-example-300x75.png 300w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JMeter<\/h2>\n\n\n\n<p>Let&#8217;s create a new JMeter Test Plan with the items required to have something to start with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A thread group<\/li>\n\n\n\n<li>HTTP Request<\/li>\n\n\n\n<li>Recording Controller<\/li>\n\n\n\n<li>Results Tree<\/li>\n<\/ul>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2128\" height=\"720\" class=\"wp-image-22722\" style=\"width: 650px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest.png 2128w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest-300x102.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest-1024x346.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest-768x260.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest-1536x520.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-httprequest-2048x693.png 2048w\" sizes=\"auto, (max-width: 2128px) 100vw, 2128px\" \/><\/p>\n\n\n\n<p>You can see that the path is hard coded, which means that you will need to change it if you want to test with additional links. I can add a <em>User Parameters<\/em> preprocessor and declare a variable named <code>number_of_links<\/code>. Path will then be changed to <code>links\/${number_of_links}\/${number_of_links}<\/code>.<\/p>\n\n\n\n<p>Under this initial HTTP request, I will add <em>Regular Expression Extractor<\/em> to find all links from the resulting page. It will be set like this:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1304\" height=\"623\" class=\"wp-image-22724\" style=\"width: 600px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-regexp.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-regexp.png 1304w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-regexp-300x143.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-regexp-1024x489.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-regexp-768x367.png 768w\" sizes=\"auto, (max-width: 1304px) 100vw, 1304px\" \/><\/p>\n\n\n\n<p>All matches (match No. = -1) will be stored in <code>links<\/code> variable. It will match what is between <code>href='<\/code> and <code>'&gt;<\/code>.<\/p>\n\n\n\n<p>Next step is too loop on the list of links that were found, so let&#8217;s add a <em>ForEach <\/em>controller:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"427\" height=\"431\" class=\"wp-image-22725\" style=\"width: 200px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-ForEach.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-ForEach.png 427w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-ForEach-297x300.png 297w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-ForEach-150x150.png 150w\" sizes=\"auto, (max-width: 427px) 100vw, 427px\" \/><\/p>\n\n\n\n<p>Input variable will be the one generated by <em>Regular Expression Extractor<\/em> and output will be used in further HTTP requests within the loop.<\/p>\n\n\n\n<p>Talking about HTTP request, here is how it will look like:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1298\" height=\"559\" class=\"wp-image-22726\" style=\"width: 500px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-http-link.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-http-link.png 1298w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-http-link-300x129.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-http-link-1024x441.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-http-link-768x331.png 768w\" sizes=\"auto, (max-width: 1298px) 100vw, 1298px\" \/><\/p>\n\n\n\n<p>In this one, I am using <code>link<\/code> variable in Path parameter as well as the name. This will help to recognize request more easily in the <em>Results Tree<\/em>.<\/p>\n\n\n\n<p>Before running the test plan, here is the tree view of the full plan:<\/p>\n\n\n\n<p>l<img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"405\" class=\"wp-image-22729\" style=\"width: 340px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-full-TP.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-full-TP.png 574w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMeter-full-TP-300x212.png 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/p>\n\n\n\n<p>Once I start the test plan, <em>Results tree<\/em> will be populated:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1550\" height=\"842\" class=\"wp-image-22727\" style=\"width: 500px\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree.png\" alt=\"\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree.png 1550w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree-300x163.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree-1024x556.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree-768x417.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/JMetter-result-tree-1536x834.png 1536w\" sizes=\"auto, (max-width: 1550px) 100vw, 1550px\" \/><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>JMeter is not only a load test tool. With its programming capabilities (ie. logic controller), it can do much more.<\/p>\n\n\n\n<p>And you, what are you doing with JMeter?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I am training myself to Apache JMeter, beside testing on my Oracle environment (which include Oracle Internet Directory, Oracle Directory Service Manager, Oracle Identity and Access Management, a Database and a web application protected by SAML), I was looking for a tool to test more feature of it. I found a website called httpbin. [&hellip;]<\/p>\n","protected":false},"author":40,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,1504],"tags":[950,67,157],"type_dbi":[],"class_list":["post-22710","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","category-docker","tag-jmeter","tag-performance","tag-test"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Apache JMeter Playground - dbi Blog<\/title>\n<meta name=\"description\" content=\"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin\" \/>\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.dbi-services.com\/blog\/apache-jmeter-playground\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache JMeter Playground\" \/>\n<meta property=\"og:description\" content=\"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-17T14:55:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-11T08:25:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\" \/>\n<meta name=\"author\" content=\"Middleware Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Middleware Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\"},\"author\":{\"name\":\"Middleware Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"headline\":\"Apache JMeter Playground\",\"datePublished\":\"2023-02-17T14:55:42+00:00\",\"dateModified\":\"2024-09-11T08:25:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\"},\"wordCount\":559,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\",\"keywords\":[\"JMeter\",\"Performance\",\"test\"],\"articleSection\":[\"Application integration &amp; Middleware\",\"Docker\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\",\"name\":\"Apache JMeter Playground - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\",\"datePublished\":\"2023-02-17T14:55:42+00:00\",\"dateModified\":\"2024-09-11T08:25:44+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"description\":\"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png\",\"width\":1138,\"height\":969},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache JMeter Playground\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\",\"name\":\"Middleware Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"caption\":\"Middleware Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache JMeter Playground - dbi Blog","description":"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin","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.dbi-services.com\/blog\/apache-jmeter-playground\/","og_locale":"en_US","og_type":"article","og_title":"Apache JMeter Playground","og_description":"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin","og_url":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/","og_site_name":"dbi Blog","article_published_time":"2023-02-17T14:55:42+00:00","article_modified_time":"2024-09-11T08:25:44+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png","type":"","width":"","height":""}],"author":"Middleware Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Middleware Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/"},"author":{"name":"Middleware Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"headline":"Apache JMeter Playground","datePublished":"2023-02-17T14:55:42+00:00","dateModified":"2024-09-11T08:25:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/"},"wordCount":559,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png","keywords":["JMeter","Performance","test"],"articleSection":["Application integration &amp; Middleware","Docker"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/","url":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/","name":"Apache JMeter Playground - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png","datePublished":"2023-02-17T14:55:42+00:00","dateModified":"2024-09-11T08:25:44+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"description":"Use of Apache JMeter for crawling a website and looking for dead links with help of httpbin","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/02\/httpbin.png","width":1138,"height":969},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/apache-jmeter-playground\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache JMeter Playground"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1","name":"Middleware Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","caption":"Middleware Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/22710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=22710"}],"version-history":[{"count":15,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/22710\/revisions"}],"predecessor-version":[{"id":24007,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/22710\/revisions\/24007"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=22710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=22710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=22710"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=22710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}