{"id":10108,"date":"2022-10-12T02:12:29","date_gmt":"2022-10-12T06:12:29","guid":{"rendered":"https:\/\/www.redline13.com\/blog\/?p=10108"},"modified":"2023-06-22T14:20:35","modified_gmt":"2023-06-22T18:20:35","slug":"jmeter-custom-thread-groups","status":"publish","type":"post","link":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/","title":{"rendered":"JMeter Custom Thread Groups"},"content":{"rendered":"<p><a id=\"post-10108-_eb6fy0p7gwub\"><\/a> <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10118\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-1-1.png\" alt=\"JMeter Custom Thread Groups\" width=\"400\" height=\"300\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-1-1.png 400w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-1-1-300x225.png 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/p>\n<p>With any JMeter test, <a href=\"https:\/\/jmeter.apache.org\/usermanual\/test_plan.html#thread_group\">thread groups<\/a> constitute the basic container for test plan requests and other elements. The simplicity of the basic thread group is such that with enough ingenuity anything is possible. Through clever use of scripting, timing, and logic elements it is possible to simulate any user behavior. However, for simulating complex traffic patterns there is an easier way.<\/p>\n<p>One of the most useful plugins for <a href=\"https:\/\/jmeter.apache.org\/usermanual\/index.html\">JMeter<\/a> comes as the \u201c<em>Custom Thread Groups<\/em>\u201d collection. These are available for installation right inside JMeter through the \u201c<em>JMeter Plugin Manager<\/em>\u201d via <a href=\"https:\/\/jmeter-plugins.org\/\">JMeter-Plugins.org<\/a>.<\/p>\n<h3><a id=\"post-10108-_t437zevlzbmx\"><\/a>Setting up Custom Thread Groups in JMeter<\/h3>\n<p>The first step is to install the \u201c<em>Custom Thread Groups<\/em>\u201d collection within JMeter. This will make available the collection of plugins discussed in this post. To add these, select the \u201c<em>Plugins Manager<\/em>\u201d from the \u201c<em>Options<\/em>\u201d menu:<\/p>\n<figure id=\"attachment_10119\" class=\"wp-caption aligncenter\" style=\"max-width: 632px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10119\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-2-1.png\" alt=\"Accessing the Plugins Manager from the JMeter options menu\" width=\"632\" height=\"341\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-2-1.png 632w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-2-1-300x162.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-2-1-425x229.png 425w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><figcaption class=\"wp-caption-text\">Accessing the &#8220;Plugins Manager&#8221; from the JMeter &#8220;Options&#8221; menu.<\/figcaption><\/figure>\n<p>Inside the \u201c<em>Plugins Manager<\/em>\u201d, navigate to the \u201c<em>Available Plugins<\/em>\u201d tab and search for \u201ccustom\u201d. Select \u201c<em>Custom Thread Groups<\/em>\u201d from the list at the left, and then click \u201c<em>Apply Changes and Restart JMeter<\/em>\u201d.<\/p>\n<figure id=\"attachment_10120\" class=\"wp-caption aligncenter\" style=\"max-width: 1080px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10120\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1.png\" alt=\"Installing the Custom Thread Groups plugin from the JMeter Plugins Manager\" width=\"1080\" height=\"440\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1.png 1080w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1-300x122.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1-1024x417.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1-768x313.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1-425x173.png 425w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-3-1-945x385.png 945w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><figcaption class=\"wp-caption-text\">Installing the &#8220;Custom Thread Groups&#8221; plugin from the JMeter &#8220;Plugins Manager&#8221;.<\/figcaption><\/figure>\n<p>Once JMeter has restarted, these new thread groups will be available for use. We will detail below how to set up two popular thread groups from the \u201c<em>Custom Thread Groups<\/em>\u201d collection.<\/p>\n<h3><a id=\"post-10108-_p7bts764f4gs\"><\/a>Using the Stepping Thread Group<\/h3>\n<p>After installing the plugin group, you can add a \u201c<em>Stepping Thread Group<\/em>\u201d to your test plan similar to adding a normal thread group. Simply right click on the root test plan and follow the menus as shown below:<\/p>\n<figure id=\"attachment_10121\" class=\"wp-caption aligncenter\" style=\"max-width: 719px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10121\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-4-1.png\" alt=\"Adding a Stepping Thread Group to the JMeter test plan\" width=\"719\" height=\"434\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-4-1.png 719w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-4-1-300x181.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-4-1-425x257.png 425w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><figcaption class=\"wp-caption-text\">Adding a &#8220;Stepping Thread Group&#8221; to the JMeter test plan.<\/figcaption><\/figure>\n<p>The default options that are set up for a new \u201c<em>Stepping Thread Group<\/em>\u201d do a good job at explaining the capabilities of this thread controller. In the example below, there are 100 threads total configured to start in discrete increments (<em>i.e.<\/em>, steps) at regularly spaced intervals.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10122 aligncenter\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1.png\" alt=\"Stepping Thread Group request profile\" width=\"1150\" height=\"327\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1.png 1150w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1-300x85.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1-1024x291.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1-768x218.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-5-1-425x121.png 425w\" sizes=\"auto, (max-width: 1150px) 100vw, 1150px\" \/><\/p>\n<p>The graphical representation makes this easy to understand. Here ten threads are added every 30 seconds until the maximum number of threads is reached. This can be used to approximate a real-world scenario where there is a gradual ramp up of concurrent users over time. Of course we could also achieve this with timers and scripting, but the <em>Stepping Thread Group<\/em> makes configuring this simple. It is also very easy to change the configuration for more users and different stepping rates by changing a few parameters on the configuration page:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10123\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-6-1.png\" alt=\"Stepping Thread Group thread parameters configuration\" width=\"612\" height=\"246\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-6-1.png 612w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-6-1-300x121.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-6-1-425x171.png 425w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><\/p>\n<h3><a id=\"post-10108-_7zpts37ta3t0\"><\/a>Using the Ultimate Thread Group<\/h3>\n<figure id=\"attachment_10124\" class=\"wp-caption aligncenter\" style=\"max-width: 719px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10124\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-7-1.png\" alt=\"Adding an Ultimate Thread Group to the JMeter test plan\" width=\"719\" height=\"434\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-7-1.png 719w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-7-1-300x181.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-7-1-425x257.png 425w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><figcaption class=\"wp-caption-text\">Adding an &#8220;Ultimate Thread Group&#8221; to the JMeter test plan.<\/figcaption><\/figure>\n<p>True to its name, the \u201c<em>Ultimate Thread Group<\/em>\u201d gives ultimate flexibility and control when designing a load test that follows a predetermined load profile. In the example below, you can see a steady-state with a gradual ramp up and ramp down. Additionally we have configured two \u201cspikes\u201d in the middle of the test. This is to simulate momentary increases in users to a site on top of steady baseline traffic. Looking at the graph it is easy to understand what our test is doing at any given point:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-10125\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1.png\" alt=\"Ultimate Thread Group request profile\" width=\"1148\" height=\"322\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1.png 1148w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1-300x84.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1-1024x287.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1-768x215.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-8-1-425x119.png 425w\" sizes=\"auto, (max-width: 1148px) 100vw, 1148px\" \/><\/p>\n<p>It would be difficult to achieve this or potentially more complex load profiles with ordinary thread groups. With the <em>Ultimate Thread Group<\/em> it is simply a matter of specifying a few metrics. Here is the configuration for the above load profile:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10132\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-A.png\" alt=\"Ultimate Thread Group parameters table\" width=\"625\" height=\"133\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-A.png 625w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-A-300x64.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-A-425x90.png 425w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/p>\n<p>With some simple variation of the thread schedule parameters, we can easily describe another scenario. Suppose we wanted to simulate a large 800 concurrent user surge, followed by intermittent high-load spikes on top of a 300 concurrent user baseline. The graph would look something like this:<\/p>\n<figure id=\"attachment_10126\" class=\"wp-caption aligncenter\" style=\"max-width: 1176px\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10126\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1.png\" alt=\"Example of a complex request profile using the Ultimate Thread Group plugin for JMeter\" width=\"1176\" height=\"320\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1.png 1176w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1-300x82.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1-1024x279.png 1024w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1-768x209.png 768w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-9-1-425x116.png 425w\" sizes=\"auto, (max-width: 1176px) 100vw, 1176px\" \/><figcaption class=\"wp-caption-text\">Example of a complex request profile using the &#8220;Ultimate Thread Group&#8221; plugin for JMeter.<\/figcaption><\/figure>\n<p>Surprisingly our thread schedule configuration is not significantly more complicated than our previous example. Even though the request profile appears radically different, it is easily described with the following numbers:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-10133\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-B.png\" alt=\"Ultimate Thread Group parameters table\" width=\"628\" height=\"230\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-B.png 628w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-B-300x110.png 300w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/Ultimate-Thread-Group-Parameters-Table-B-425x156.png 425w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/p>\n<h3><a id=\"post-10108-_2rgxnnx0fprl\"><\/a>Simulating Complex User Behavior<\/h3>\n<p>Each custom thread group we have described can be used to emulate a specific user request profile within your load test. Building upon this, we can mix and match different thread groups to simulate even the most complex traffic patterns with ease. Furthermore, instead of dedicating test logic to profiling requests, we can use scripting to vary between active thread groups within our test. We can also incorporate other test elements into a custom thread group such as <a href=\"https:\/\/www.redline13.com\/blog\/2021\/12\/parameterizing-jmeter-tests-from-csv\/\">CSV Data Set Config<\/a> elements to simulate real-world data-driven scenarios.<\/p>\n<p>Be sure to check out our <a href=\"https:\/\/www.youtube.com\/channel\/UC90RT5qrAuByXRMYi86-XxA\">YouTube Channel<\/a> for our video guides on <a href=\"https:\/\/www.youtube.com\/watch?v=ZdYa7B9HljA&amp;list=PLZjMZDPGumAJ8L3VqyYe_YiYkh-_7LKto\">JMeter topics<\/a>. In particular, we review how to set up and run a <a href=\"https:\/\/www.youtube.com\/watch?v=ZdYa7B9HljA&amp;list=PLZjMZDPGumAJ8L3VqyYe_YiYkh-_7LKto\">JMeter test with shaped request profiling<\/a>, both locally and on RedLine13.<\/p>\n<hr \/>\n<p>Did you know that RedLine13 offers a full-featured free trial? <a href=\"https:\/\/www.redline13.com\/Service\">Sign up now<\/a> and start testing today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With any JMeter test, thread groups constitute the basic container for test plan requests and other elements. The simplicity of the basic thread group is such that with enough ingenuity anything is possible. Through clever use of scripting, timing, and logic elements it is possible to simulate any user behavior. However, for simulating complex traffic patterns there is an easier way. One of the most useful plugins for JMeter comes as the \u201cCustom Thread Groups\u201d collection.<a class=\"more-link\" href=\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":11,"featured_media":10118,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,7],"tags":[601,283,318,402,424,602,603],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-dkoziel","4":"post-10108","6":"format-standard","7":"has-post-thumbnail","8":"category-blog","9":"category-jmeter","10":"post_tag-custom-thread-groups","11":"post_tag-jmeter","12":"post_tag-load-testing","13":"post_tag-plugins","14":"post_tag-redline13","15":"post_tag-stepping-thread-group","16":"post_tag-ultimate-thread-group"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JMeter Custom Thread Groups - RedLine13<\/title>\n<meta name=\"description\" content=\"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.\" \/>\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.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JMeter Custom Thread Groups - RedLine13\" \/>\n<meta property=\"og:description\" content=\"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\" \/>\n<meta property=\"og:site_name\" content=\"RedLine13\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-12T06:12:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-22T18:20:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-1-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Koziel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Koziel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\"},\"author\":{\"name\":\"David Koziel\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20\"},\"headline\":\"JMeter Custom Thread Groups\",\"datePublished\":\"2022-10-12T06:12:29+00:00\",\"dateModified\":\"2023-06-22T18:20:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\"},\"wordCount\":823,\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"keywords\":[\"Custom Thread Groups\",\"JMeter\",\"Load Testing\",\"plugins\",\"RedLine13\",\"Stepping Thread Group\",\"Ultimate Thread Group\"],\"articleSection\":[\"Blog\",\"JMeter\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\",\"name\":\"JMeter Custom Thread Groups - RedLine13\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\"},\"datePublished\":\"2022-10-12T06:12:29+00:00\",\"dateModified\":\"2023-06-22T18:20:35+00:00\",\"description\":\"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.redline13.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JMeter Custom Thread Groups\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"name\":\"RedLine13\",\"description\":\"(Almost) Free Load Testing in the Cloud\",\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.redline13.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\",\"name\":\"RedLine13\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"contentUrl\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"width\":300,\"height\":68,\"caption\":\"RedLine13\"},\"image\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20\",\"name\":\"David Koziel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g\",\"caption\":\"David Koziel\"},\"url\":\"https:\/\/www.redline13.com\/blog\/author\/dkoziel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JMeter Custom Thread Groups - RedLine13","description":"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.","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.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/","og_locale":"en_US","og_type":"article","og_title":"JMeter Custom Thread Groups - RedLine13","og_description":"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.","og_url":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/","og_site_name":"RedLine13","article_published_time":"2022-10-12T06:12:29+00:00","article_modified_time":"2023-06-22T18:20:35+00:00","og_image":[{"width":400,"height":300,"url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2022\/10\/word-image-10108-1-1.png","type":"image\/png"}],"author":"David Koziel","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Koziel","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#article","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/"},"author":{"name":"David Koziel","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20"},"headline":"JMeter Custom Thread Groups","datePublished":"2022-10-12T06:12:29+00:00","dateModified":"2023-06-22T18:20:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/"},"wordCount":823,"publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"keywords":["Custom Thread Groups","JMeter","Load Testing","plugins","RedLine13","Stepping Thread Group","Ultimate Thread Group"],"articleSection":["Blog","JMeter"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/","url":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/","name":"JMeter Custom Thread Groups - RedLine13","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/#website"},"datePublished":"2022-10-12T06:12:29+00:00","dateModified":"2023-06-22T18:20:35+00:00","description":"In this post, we will describe how to use the JMeter Custom Thread Groups plugin to simulate real-world traffic patterns.","breadcrumb":{"@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.redline13.com\/blog\/2022\/10\/jmeter-custom-thread-groups\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redline13.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JMeter Custom Thread Groups"}]},{"@type":"WebSite","@id":"https:\/\/www.redline13.com\/blog\/#website","url":"https:\/\/www.redline13.com\/blog\/","name":"RedLine13","description":"(Almost) Free Load Testing in the Cloud","publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redline13.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redline13.com\/blog\/#organization","name":"RedLine13","url":"https:\/\/www.redline13.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","contentUrl":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","width":300,"height":68,"caption":"RedLine13"},"image":{"@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/51d282221e3230ab35f964f98ada9b20","name":"David Koziel","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2babf644e0993fc86893c24d7525f1e3be114a8746c01249797f25587ae1697a?s=96&d=mm&r=g","caption":"David Koziel"},"url":"https:\/\/www.redline13.com\/blog\/author\/dkoziel\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/comments?post=10108"}],"version-history":[{"count":6,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10108\/revisions"}],"predecessor-version":[{"id":10134,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/10108\/revisions\/10134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media\/10118"}],"wp:attachment":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media?parent=10108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/categories?post=10108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/tags?post=10108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}