{"id":2527,"date":"2025-01-09T13:35:52","date_gmt":"2025-01-09T13:35:52","guid":{"rendered":"https:\/\/fintx.dev\/?p=2527"},"modified":"2025-01-09T13:38:06","modified_gmt":"2025-01-09T13:38:06","slug":"incremental-load-testing","status":"publish","type":"post","link":"https:\/\/fintx.dev\/?p=2527","title":{"rendered":"Incremental Load Testing"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">One of the best features of FintX is that it can run real-time load tests against your gRPC service!  This sets it apart from other testing tools that only supports calling the gRPC methods. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FintX supports 3 types of load tests<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Incremental Load Test<\/li>\n\n\n\n<li>Constant Load Test<\/li>\n\n\n\n<li>Burst Load Test<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">In this tutorial we will go through the steps to run an Incremental Load Test<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Before we start<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure you have already added a gRPC client.  If you haven&#8217;t done so yet, have a look at the Q<a href=\"https:\/\/fintx.dev\/?p=345\">uickstart Guide<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create a Load Test<\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a14e13a6cb6b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a14e13a6cb6b\" class=\"wp-block-image size-large wp-lightbox-container\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"546\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf-1024x546.png\" alt=\"\" class=\"wp-image-2528\" srcset=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf-1024x546.png 1024w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf-300x160.png 300w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf-768x410.png 768w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf.png 1400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the Perf test menu<\/li>\n\n\n\n<li>Click on the Add Perf Test button<\/li>\n\n\n\n<li>Enter the name of the test<\/li>\n\n\n\n<li>Describe the test<\/li>\n\n\n\n<li>Select the gRPC service that will be load tested<\/li>\n\n\n\n<li>Select the method that will be load tested<\/li>\n\n\n\n<li>Click Okay<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Run an Incremental Load Test<\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a14e13a6d0b1&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a14e13a6d0b1\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"549\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2-1024x549.png\" alt=\"\" class=\"wp-image-2529\" srcset=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2-1024x549.png 1024w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2-300x161.png 300w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2-768x411.png 768w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2-1536x823.png 1536w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_2.png 1917w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Double on the perf test or click on the &#8220;folder&#8221; icon to open it<\/li>\n\n\n\n<li>Select Incremental<\/li>\n\n\n\n<li>Enter the number of virtual users.  In this tutorial we enter 20<\/li>\n\n\n\n<li>Enter a ramp up of 1 sec\n<ul class=\"wp-block-list\">\n<li>This means that a thread (which simulates a virtual user) will be created every second until configured number of virtual users is reached<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Enter the Invoke interval (msec)\n<ul class=\"wp-block-list\">\n<li>The Invoke Interval is the time between each call to the gRPC method.  If you specify 0 (zero), this means that FintX will immediately call the method as soon as the previous call finishes<br><br>If the Invoke interval is X and is greater than zero, FintX will wait for X milliseconds before making the next call<br><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Enter the Test Duration. In this tutorial we enter 80 sec.\n<ul class=\"wp-block-list\">\n<li>This is the duration of the whole load test<\/li>\n\n\n\n<li>Since we are doing incremental load testing, this means that for the first 20 secs the number of virtual users will increment by 1 i.e. the load on the service will gradually increase.  And then for the remaining 60 sec, all 20 virtual users will be concurrently invoking the service.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Now that we&#8217;re all setup, hit the Run button!<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Wait for the test to finish<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As the test progresses, the charts will display in real-time the metrics that describes the performance of your service.  At the end of the test, you should see something similar to the below screenshot<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a14e13a6d78d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a14e13a6d78d\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"553\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3-1024x553.png\" alt=\"\" class=\"wp-image-2530\" srcset=\"https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3-1024x553.png 1024w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3-300x162.png 300w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3-768x414.png 768w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3-1536x829.png 1536w, https:\/\/fintx.dev\/wp-content\/uploads\/2025\/01\/Add_perf_3.png 1927w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the best features of FintX is that it can run real-time load tests against your gRPC service! This sets it apart from other testing tools that only supports calling the gRPC methods. FintX supports 3 types of load tests In this tutorial we will go through the steps to run an Incremental Load [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[44],"tags":[],"class_list":["post-2527","post","type-post","status-publish","format-standard","hentry","category-performance-testing"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/posts\/2527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fintx.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2527"}],"version-history":[{"count":1,"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/posts\/2527\/revisions"}],"predecessor-version":[{"id":2531,"href":"https:\/\/fintx.dev\/index.php?rest_route=\/wp\/v2\/posts\/2527\/revisions\/2531"}],"wp:attachment":[{"href":"https:\/\/fintx.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fintx.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fintx.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}