{"id":15563,"date":"2023-01-10T14:32:35","date_gmt":"2023-01-10T14:32:35","guid":{"rendered":"http:\/\/abstracta.us\/blog\/?p=15563"},"modified":"2025-05-05T21:19:35","modified_gmt":"2025-05-05T21:19:35","slug":"an-introductory-guide-to-web-performance-testing","status":"publish","type":"post","link":"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/","title":{"rendered":"An Introductory Guide to Web Performance Testing"},"content":{"rendered":"\n<p>From a very young age, we have all been exposed to a lot of waiting times. As kids, we must wait our turn to hit the pi\u00f1ata during birthday parties. As adults, we face queues everywhere, from paying for groceries to buying the latest phone models. Waiting is not an enjoyable activity for most people, especially if they are used to the instant gratification that most technologies nowadays provide. It\u2019s known that people\u2019s patience goes thinner as technology moves faster.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/wuSasFS_n0tLUFrNQNRcOGtu-WhH32UT0TG4ll_BfYEL-ML9W0YAyXbYub1a_-Bo52eZkAAxfHMsADJfkLHDGoI9NSKHswA76zK3C_vGD-5j2fwy04TZHW22Tm7boHJpCz9gXn3zo3q8-R5UKrDTK-U_DODj7K3tsrxCvwEEVYqvxGJfTbWL5V8U0mWS1g\" alt=\"\"\/><\/figure>\n\n\n\n<p><strong><em>By Marie Cruz from K6<\/em><\/strong><\/p>\n\n\n\n<p>Usability studies dating back to the 90s, as mentioned in this article, <a href=\"https:\/\/www.nngroup.com\/articles\/the-need-for-speed-1997\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">The Need for Speed by Jakob Nielsen<\/a>, show that fast response times are essential for web usability. Websites should be created with speed in mind for users to have a great user experience. Nowadays, users are swift to close a tab or a window if the website they use has a \u201csluggish\u201d feel. Slow performance can also negatively impact the business because users will go to their competitors if their website isn\u2019t up to the speed users are used to.<\/p>\n\n\n\n<p>This guide will give an overview of the following:<\/p>\n\n\n\n<ul><li>What is web performance?<\/li><li>Impacts of a slow website<\/li><li>How fast should websites be?&nbsp;<\/li><li>Web performance metrics&nbsp;<\/li><li>Tools for testing web performance<\/li><li>A hybrid approach to performance testing.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_web_performance\"><\/span>What is web performance?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Some of us think about server or backend performance when we talk about performance in general, so we make optimizations within that. However, performance improvements don\u2019t stop here. Just because our servers have responded with the request that the user has requested doesn\u2019t mean that it\u2019s displayed to them instantly.\u00a0<\/p>\n\n\n\n<p>Simply put, <strong>web performance is about how performant or fast your website is when your users load it.<\/strong><\/p>\n\n\n\n<p>Multiple factors, such as the amount of CSS or Javascript files being downloaded, the browser your users are using, device capabilities, and network connectivity, can impact the loading time of your website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Impacts_of_a_slow_website\"><\/span>Impacts of a slow website<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>People have been complaining about slow websites since the dial-up days. However, even in today\u2019s age, where we have faster internet connections, we still complain about slow websites! Social media has made it more accessible as well to share our frustrations.<\/p>\n\n\n\n<p>This <a href=\"https:\/\/www.nngroup.com\/articles\/the-need-for-speed\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">up-to-date study of web responsiveness<\/a> shows that the median page download times are 6 seconds on desktop and, worse, 20 seconds on mobile. We have faster connections, but websites aren\u2019t that much quicker than they were ten years ago. No wonder people are still complaining!<\/p>\n\n\n\n<p>A slow website doesn\u2019t just impact your user\u2019s experience. The speed of your website can also hugely impact your business reputation, revenue, and even your search engine ranking. Google announced that <a href=\"https:\/\/developer.chrome.com\/blog\/search-ads-speed\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">page speed is now a factor<\/a> for their search algorithm and ranking.<br><\/p>\n\n\n\n<p>Here are some examples of how slow websites have impacted\/could impact a business:<\/p>\n\n\n\n<ul><li><a href=\"http:\/\/glinden.blogspot.com\/2006\/11\/marissa-mayer-at-web-20.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Amazon<\/a> found that for every 100ms delay in page load, they encounter a 1% loss of sales revenue.<\/li><li><a href=\"https:\/\/pressreleases.responsesource.com\/news\/50342\/akamai-reveals-seconds-as-the-new-threshold-of-acceptability-for\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Akamai<\/a> has conducted a study showing that consumers become impatient when a page takes longer than two seconds to load, resulting in a higher bounce rate.<\/li><\/ul>\n\n\n\n<p>These examples demonstrate that web performance is crucial to providing the best user experience, and improving critical metrics related to performance positively impacts a business\u2019 revenue and search ranking. If you\u2019re not convinced, check <a href=\"https:\/\/wpostats.com\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">WPO stats<\/a> for a collection of case studies demonstrating how different companies saw improvements when they made some performance optimization.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_fast_should_websites_be\"><\/span>How fast should websites be?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Page speed is the key indicator you need to look out for regarding web performance. But how fast should the page response times be? Is there a magic number that you need to know?<\/p>\n\n\n\n<p>Jakob Nielsen summarised this well in his article, <a href=\"https:\/\/www.nngroup.com\/articles\/response-times-3-important-limits\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Response Time: The 3 Important Limits<\/a>, where he stated that:<\/p>\n\n\n\n<ul><li><strong>0.1 second<\/strong> is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.<\/li><li><strong>1.0 seconds<\/strong> is the limit for the user&#8217;s flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 seconds, but the user does lose the feeling of operating directly on the data.<\/li><li><strong>10 seconds<\/strong> is the limit for keeping the user&#8217;s attention, focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely highly variable since users will then not know what to expect.<\/li><\/ul>\n\n\n\n<p>As a general rule of thumb, your website should load as fast as possible but not too fast so your users cannot keep up with what they are doing.\u00a0<\/p>\n\n\n\n<p>The perceived performance of your website also matters a lot. Perceived performance is how fast the website feels to a user subjectively rather than the actual measure itself. For example, it\u2019s better to show your users a visual indicator, in the form of progress bars or loading animations, that something is happening rather than not show any progress at all. This way, your users feel engaged and time flies faster when you are doing an engaging activity.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Web_performance_metrics\"><\/span>Web performance metrics<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In order to know how fast your website is, there are a few metrics specific to web performance that you need to know. These metrics are not set in stone but are helpful indicators to understand how your website performs.<\/p>\n\n\n\n<p><a href=\"https:\/\/web.dev\/vitals\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Web vitals<\/a> are metrics that Google considers essential regarding browser performance and user experience. To simplify the metrics that matter the most, I will summarize the core web vitals you need to know. These vitals are what Google considers to be the most important and should be applied to all websites.<\/p>\n\n\n\n<ol><li><a href=\"https:\/\/web.dev\/lcp\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Largest Contentful Paint (LCP)<\/a> &#8211; measures the amount of time it takes a browser to render the page\u2019s largest content, such as images or videos within the visible viewport.<\/li><li><a href=\"https:\/\/web.dev\/fid\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">First Input Delay (FID)<\/a> &#8211; measures your user\u2019s first impression of your website\u2019s responsiveness. FID tells us how long your users must wait for a response after interacting with a page.<\/li><li><a href=\"https:\/\/web.dev\/cls\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Cumulative Layout Shift (CLS)<\/a> &#8211; measures the largest burst of unexpected layout shift in your website. Elements that shift unexpectedly may cause real damage to your user\u2019s experience.<\/li><\/ol>\n\n\n\n<p>Note that the core web vitals will evolve to reflect any new technological changes.<\/p>\n\n\n\n<p>Apart from the core web vitals, it\u2019s also good to know <a href=\"https:\/\/web.dev\/vitals\/#other-web-vitals\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">other web vitals<\/a> to understand your user\u2019s experience better.<\/p>\n\n\n\n<ol><li><a href=\"https:\/\/web.dev\/ttfb\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Time to First Byte (TTFB)<\/a> &#8211; measures the time between the request for a resource and when the first byte of response begins to arrive.<\/li><li><a href=\"https:\/\/web.dev\/fcp\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">First Contentful Paint (FCP)<\/a> &#8211; measures the amount of time it takes a browser to render any piece of content from the page.<\/li><li><a href=\"https:\/\/web.dev\/tbt\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Total Blocking Time (TBT)<\/a> &#8211; the time the browser\u2019s main thread is blocked due to long tasks, preventing input responsiveness.<\/li><li><a href=\"https:\/\/web.dev\/tti\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Time to Interactive (TTI)<\/a> &#8211; measures the time it takes for a page to be fully interactive.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tools_for_testing_web_performance\"><\/span>Tools for testing web performance<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>To ensure that your users have the most optimal experience, you need tools and libraries to help you with web performance testing. The list below is not comprehensive but should help you get started.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Google_Lighthouse\"><\/span><a href=\"https:\/\/github.com\/GoogleChrome\/lighthouse\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Google Lighthouse<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Google Lighthouse is an open-source tool for auditing and improving the quality and performance of your website. Apart from measuring performance, it also measures other aspects, such as accessibility or SEO. Lighthouse can be run as part of Chrome DevTools, from the command line, or as a Node module. Lighthouse provides an audit score and a clear breakdown of issues that slow down your website.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/-UXP68piyFyaIa20iFCbel8FeATp3KZ4l3_-LALZ0il7sOEwEqZOmp4VRK5RCv3ch9ZlbIUIYxduGG3dyKachTHCerM2iQPDXtGUlEl8JO-L8oCjof7lJKxrRMeCNbiMgL17dl5LVAwiTspigDYDLsenqXBLCTowJ4KGvWmO7MXA6WYoNZiM1cz5_f_2IQ\" alt=\"\"\/><\/figure>\n\n\n\n<p>Google Lighthouse uses lab data which is data that\u2019s collected from a controlled environment using predefined devices and network settings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PageSpeed_Insights\"><\/span><a href=\"https:\/\/pagespeed.web.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">PageSpeed Insights<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Like Google Lighthouse, PageSpeed Insights also allows you to audit the performance of your website and provides an assessment of the core web vitals. It\u2019s also using Google Lighthouse under the hood, but unlike Google Lighthouse, PageSpeed Insights also uses field data collected from real users.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/c5MCKoSH6brwFFirwhXDU6LCEyRztu5rw2yZQHDfnXq41lR94HNgZZW5ZgPXwCvcBmpZ1FffhkzBwEeXdtfww-XDfACn4EGoBVxGtXckNFD9d50P2TKtU2R2VXzLXXSJk6b6oxdUx0p6G3B5f4P_AoNtSIcQGJidSjaPa_1L4AdqCPRc8j2ULQOFXWsGuA\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"WebPageTest\"><\/span><a href=\"https:\/\/www.webpagetest.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">WebPageTest<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>WebPageTest provides comprehensive and deep diagnostic information about a page&#8217;s performance. Like Google Lighthouse, it uses lab data, but it allows you to simulate your test to run under various network conditions, browsers, and locations worldwide.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/NCsXLeCl8LvFPlp0S3z9aotF16eHpgzPImUwFo5Bi-Eh79Jz7b2OVKEz_RPm3lenM-HOBRhpldLZb5YB-QyvqSs6zBl0bxmrDqhIXwjQx82DxeHkZY7OaQqnd-WVVHVeGTx5qKgW_VM5lXe0vhY9K7COJxTvppbAwu9O227F74_pqwBmaQESzvkh5owWjQ\" alt=\"\"\/><\/figure>\n\n\n\n<p>You can add the following tools to your continuous integration pipelines to enable continuous performance testing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"xk6-browser\"><\/span><a href=\"https:\/\/github.com\/grafana\/xk6-browser\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">xk6-browser<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>xk6-browser enables you to get insights from your front-end application during performance testing while supporting all of the core features of <a href=\"https:\/\/k6.io\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">k6<\/a>.<\/p>\n\n\n\n<p>With xk6-browser, you can simulate the bulk of your traffic from your protocol-level tests and run one or two virtual users on a browser level to mimic how a user interacts with your website, thus leveraging a hybrid approach to performance testing, which I will talk a bit more later. To find out more about xk6-browser, check out <a href=\"https:\/\/k6.io\/docs\/javascript-api\/xk6-browser\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">xk6-browser documentation<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"cypress-audit\"><\/span><a href=\"https:\/\/github.com\/mfrachet\/cypress-audit\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">cypress-audit<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>cypress-audit is a <a href=\"https:\/\/cypress.io\/\">Cypress<\/a> plugin that lets you integrate Google Lighthouse scores straight from your Cypress tests. To get an overview of how it works, check out <a href=\"https:\/\/mfrachet.github.io\/cypress-audit\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">cypress-audit documentation<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Playwright\"><\/span><a href=\"https:\/\/playwright.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Playwright<\/a><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Playwright also allows you to access various web performance APIs to measure your website&#8217;s performance inside your code. Here\u2019s an excellent meetup talk by John Hill where he talked about <a href=\"https:\/\/youtu.be\/IrK-XDH72bw\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Performance Testing using Playwright<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"A_hybrid_approach_to_performance_testing\"><\/span>A hybrid approach to performance testing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>So far, I have only been talking about web performance. Web performance is just one side of the coin. If you only consider web performance, this can lead to false confidence in overall application performance when the amount of traffic against an application increases.\u00a0<\/p>\n\n\n\n<p>You must also test your backend systems to have a complete picture of your application\u2019s performance. A common way to test for backend performance is to do load testing via the protocol level since you can easily simulate thousands of requests concurrently.\u00a0<\/p>\n\n\n\n<p>However, there are problems associated with testing via the protocol level, such as:<\/p>\n\n\n\n<ul><li>Not being closer to the user experience since it\u2019s skipping the browser,<\/li><li>Scripts can be lengthy to create and difficult to maintain as the application grows,<\/li><li>Browser performance metrics are ignored.<\/li><\/ul>\n\n\n\n<p>On the other hand, if you perform load testing by spinning up a lot of browsers, this requires significantly more load-generation resources, which can end up quite costly.<\/p>\n\n\n\n<p>To address the shortcomings of each approach, a recommended practice is to adopt a hybrid approach to performance testing, which is a combination of testing both the backend and frontend systems via protocol and browser level. With a hybrid approach, you spin up the majority of your load via the protocol level, then simultaneously have one or two browser-level virtual users, so you can also have a view of what\u2019s happening on the front end.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/hP3CdxYuorfhuObSTnRpROZyix8jEIqHjap-o0aJgzypllSOiGq3-VEO9LkaQbMezyrlQTet7iISd6UwQXriUD4N_31FlwQCt5NmbatzPZFJ2ZoGKSLGqU_7QFps01RZy25fHEbt-uot1vXEbez0zF69Z9b0EKY_wQUh8yYtshivPoh0gZrGEm7GEv1NJw\" alt=\"A user visiting the front-end while a bunch of concurrent requests to the backend are sent by virtual users simultaneously, giving a hybrid approach to performance testing.\"\/><figcaption> A Hybrid Approach to Performance Testing <\/figcaption><\/figure>\n\n\n\n<p>There are several ways to perform this approach:<\/p>\n\n\n\n<ul><li>Use a single tool for both, such as xk6-browser, which can offer a simplified experience and aggregated view of performance metrics.<\/li><li>Use a combination of different tools simultaneously. For example, you can use any of the tools mentioned above, such as Google Lighthouse or WebPageTest, in conjunction with protocol-level tools such as JMeter, k6, or Gatling.<\/li><\/ul>\n\n\n\n<p>Whichever approach or tool you choose, the important thing is to consider your requirements carefully. For example, you can start by prioritizing frontend performance with the overall goal of having a test that also covers the performance of your backend application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Wrapping_up\"><\/span>Wrapping up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Companies spend time trying to make their websites beautiful. However, studies show that more than functionality is needed. Speed and performance are equally important, so performance testing is crucial nowadays. While load testing remains an excellent approach for testing the scalability and reliability of your applications, testing for web performance is needed to test the overall user experience.<\/p>\n\n\n\n<p>For additional resources, check out:<\/p>\n\n\n\n<ul><li><a href=\"https:\/\/youtu.be\/nZlleGaf5Ro\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Hybrid performance testing with k6<\/a><\/li><li><a href=\"https:\/\/abstracta.us\/blog\/performance-testing\/load-testing-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">An End-to-End Guide of Load Testing<\/a><\/li><li><a href=\"https:\/\/abstracta.us\/blog\/performance-testing\/why-performance-testing-is-necessary\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Why Performance Testing is Necessary<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>From a very young age, we have all been exposed to a lot of waiting times. As kids, we must wait our turn to hit the pi\u00f1ata during birthday parties. As adults, we face queues everywhere, from paying for groceries to buying the latest phone&#8230;<\/p>\n","protected":false},"author":74,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[423,589],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>An Introductory Guide to Web Performance Testing | Abstracta<\/title>\n<meta name=\"description\" content=\"At a very young age, we have all been exposed to a lot of waiting times. Waiting is not an enjoyable activity for most people, when we are used to the instant gratification that most technologies provide.\" \/>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"An Introductory Guide to Web Performance Testing | Abstracta\" \/>\n<meta property=\"og:description\" content=\"At a very young age, we have all been exposed to a lot of waiting times. Waiting is not an enjoyable activity for most people, when we are used to the instant gratification that most technologies provide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AbstractaQA\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-10T14:32:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T21:19:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/abstracta.us\/wp-content\/uploads\/2023\/01\/An-Introductory-Guide-to-Web-Performance-Testing-by-k6.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"338\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AbstractaUS\" \/>\n<meta name=\"twitter:site\" content=\"@AbstractaUS\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/abstracta.us\/blog\/#website\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\",\"description\":\"AI-powered quality engineering\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/abstracta.us\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/lh3.googleusercontent.com\/wuSasFS_n0tLUFrNQNRcOGtu-WhH32UT0TG4ll_BfYEL-ML9W0YAyXbYub1a_-Bo52eZkAAxfHMsADJfkLHDGoI9NSKHswA76zK3C_vGD-5j2fwy04TZHW22Tm7boHJpCz9gXn3zo3q8-R5UKrDTK-U_DODj7K3tsrxCvwEEVYqvxGJfTbWL5V8U0mWS1g\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/#webpage\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\",\"name\":\"An Introductory Guide to Web Performance Testing | Abstracta\",\"isPartOf\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/#primaryimage\"},\"datePublished\":\"2023-01-10T14:32:35+00:00\",\"dateModified\":\"2025-05-05T21:19:35+00:00\",\"author\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/09a7d37c9151de2e0d80f53a5d9c47ba\"},\"description\":\"At a very young age, we have all been exposed to a lot of waiting times. Waiting is not an enjoyable activity for most people, when we are used to the instant gratification that most technologies provide.\",\"breadcrumb\":{\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/\",\"name\":\"Performance Testing\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\",\"url\":\"https:\/\/abstracta.us\/blog\/performance-testing\/an-introductory-guide-to-web-performance-testing\/\",\"name\":\"An Introductory Guide to Web Performance Testing\"}}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/09a7d37c9151de2e0d80f53a5d9c47ba\",\"name\":\"Guest Post\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5cb43edbd01d3b81171199839fd668da?s=96&d=blank&r=g\",\"caption\":\"Guest Post\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/15563"}],"collection":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/users\/74"}],"replies":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/comments?post=15563"}],"version-history":[{"count":3,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/15563\/revisions"}],"predecessor-version":[{"id":15567,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/15563\/revisions\/15567"}],"wp:attachment":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/media?parent=15563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/categories?post=15563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/tags?post=15563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}