{"id":493,"date":"2010-01-20T11:48:52","date_gmt":"2010-01-20T15:48:52","guid":{"rendered":"http:\/\/www.webperformanceinc.com\/load_testing\/blog\/?p=493"},"modified":"2014-07-17T13:44:19","modified_gmt":"2014-07-17T17:44:19","slug":"user-level-analysis-of-performance-results","status":"publish","type":"post","link":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2010\/01\/user-level-analysis-of-performance-results\/","title":{"rendered":"User-Level Analysis of Performance Results"},"content":{"rendered":"<p>The User-Level Analysis offers an alternate presentation of data in the Load Test report: it summarizes the data relative to the amount of load being applied to the servers. This is in contrast to the usual approach of plotting metrics against time. Load Tester can automatically plot charts of test results against the applied user level, saving you effort and helping you gain a better understanding of the results. Let&#8217;s see how this is done.<\/p>\n<p>This tutorial assumes that you have some knowledge of Load Tester, including navigating through the user interface and running load tests. See <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/demo\/Tutorial.html\">this video<\/a> for a good introduction to Load Tester.<\/p>\n<h2>Setting Up User-Level Analysis<\/h2>\n<p>Before we begin, let&#8217;s just mention that to set up user-level analysis you use the Settings dialog as shown below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-494 size-large\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SettingUserBasedAnalysis.png\" alt=\"Picture of Dialog for Setting User-Based Analysis\" width=\"500\" height=\"366\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SettingUserBasedAnalysis.png 1171w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SettingUserBasedAnalysis-299x219.png 299w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SettingUserBasedAnalysis-1024x750.png 1024w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>You have a choice of two major sections, the time-based analysis, showing all the charts with time on the X axis, and the user-level section, where the user level is on the X axis. The check boxes let you turn user-based or time-based analysis on or off, giving you whichever method you prefer. Because we are comparing user-based analysis to time-based analysis, we&#8217;ll leave both boxes checked for this demonstration.<\/p>\n<h2>Comparing Time-Based and User-Level Analysis<\/h2>\n<p>In the load test report shown here we see the number of users plotted in blue on the chart. The load starts at 50 users, and ramps up, 50 users at a time, to 300 users. If, for example, our target user level was 250 users, we would be particularly interested in the data in the range between 200 and 300 users, as shown in the highlighted area.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-496\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/TimeBasedPageDuration.png\" alt=\"Picture of Time-Based Page Duration\" width=\"590\" height=\"445\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/TimeBasedPageDuration.png 795w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/TimeBasedPageDuration-300x226.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>The chart gives us a feeling for what the overall average page duration was when 250 users were running, but for an exact number you would expect to do some mathematics, based on the detailed statistics that Load Tester presents. Indeed, early versions of Load Tester, as well as most other load-testing tools, require that you make some calculations to get that data.<\/p>\n<p>In Load Tester&#8217;s current releases, many sections of the report perform these summaries automatically. The page-duration chart below shows user level on the X axis, rather than time as on the previous chart. There are only six data points here, rather than the great number of them in the previous chart. The data points are at 50, 100, 150, 200, 250 and 300 users. The data point for average page duration for 250 users, shown in the highlighted area, is around two-thirds of a second.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-497\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedPageDuration.png\" alt=\"Picture of User-Based Page Duration\" width=\"590\" height=\"445\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedPageDuration.png 805w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedPageDuration-300x226.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>In a table at the bottom of the user-level analysis we can see all the metrics summarized for us at each of the relevant user levels:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-498\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedDurationTable.png\" alt=\"Picture of User-Based Duration Table\" width=\"590\" height=\"243\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedDurationTable.png 797w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserBasedDurationTable-300x123.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Here we can very easily see that our average page duration at 250 users is about six tenths of a second.<\/p>\n<h2>User-Level Analysis for Individual Web Pages<\/h2>\n<p>Up to now we have been looking at the <strong>Test Summary<\/strong> section of the report, which has the highest-level metrics.<\/p>\n<p>We can also drill down to the individual web page and transaction levels. We find them by looking in the <strong>Web Pages<\/strong> section of the report. Here we&#8217;re finding a page named <em>Issue Tracker &#8211; Issues [2]<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-500\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageAnalysisIssues2.png\" alt=\"Picture of Page Analysis for Issue Tracker - Issues [2]\" width=\"413\" height=\"461\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageAnalysisIssues2.png 693w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageAnalysisIssues2-268x300.png 268w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/p>\n<p>Let&#8217;s look at user-level analysis. This is the same chart that we just looked at, but it&#8217;s for one specific page:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-501\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserLevelSpecificPage.png\" alt=\"Picture of User-Level Analysis for a Specific Page\" width=\"590\" height=\"384\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserLevelSpecificPage.png 801w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/UserLevelSpecificPage-300x195.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>We can see that our average page duration at 250 users looks like it&#8217;s just shy of two seconds, and again we can scroll down to get the exact numbers off the table. We can see that 1.8 second, roughly, is our average for this particular page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-502\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SpecificPageTable.png\" alt=\"Picture of Specific Page Table\" width=\"590\" height=\"193\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SpecificPageTable.png 795w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SpecificPageTable-300x98.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Let&#8217;s look at the top of the page-analysis section. This is the performance goal analysis area, and Load Tester has analyzed the performance goals for this page against its performance. It&#8217;s done this for each of the user levels that we&#8217;re analyzed elsewhere.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-530\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalAnalysisSinglePage.png\" alt=\"PerfGoalAnalysisSinglePage\" width=\"590\" height=\"590\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalAnalysisSinglePage.png 799w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalAnalysisSinglePage-150x150.png 150w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalAnalysisSinglePage-299x300.png 299w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>The <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/demo\/PerformanceGoals.html\">Performance Goals Analysis video<\/a> explains performance goals and the analysis that goes with them in much greater detail than we have seen here. It&#8217;s worth noting, however, that the user levels for performance-goal analysis are the same as those for the user-level analysis section that we have just examined.<\/p>\n<h2>Automatic Selection of User Levels<\/h2>\n<p>When we first open a load test report, Load Tester automatically select the user level to analyze, based on the test configuration. In many cases that&#8217;s going to be correct, but occasionally it won&#8217;t be. So we have the ability to customize those settings. So again we return to our report settings dialog, go to the user-level tab, you can see here that we have several options for choosing the user level.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-506\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsAutomatic.png\" alt=\"Picture of User Levels Set Automatically\" width=\"590\" height=\"389\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsAutomatic.png 1127w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsAutomatic-300x197.png 300w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsAutomatic-1024x675.png 1024w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<h2>Manual Selection of User Levels<\/h2>\n<p>Under automatic, you can see that it&#8217;s chosen 50, 100, 150, etc. You can also choose a manual method, and that allows you to add and remove any user level that you want, and if that user level was encountered during the test it will be analyzed. There is also an option for intervals. For example, we could say that we want to start at 50 users, and then every 50 users plus or minus 10.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-507\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsIntervals.png\" alt=\"Picture of Setting User Levels at Intervals\" width=\"590\" height=\"379\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsIntervals.png 1134w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsIntervals-300x192.png 300w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SetLevelsIntervals-1024x657.png 1024w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Using the intervals gives us a slightly larger range of user levels. If we then accept these settings and return to our report, still viewing the results for only the <em>Issue Tracker &#8211; Issues [2] <\/em>page, we can see that our data has varied slightly because we are including a little bit more data in the analysis.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-523\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationChartForIssues2WithWideRanges.png\" alt=\"Picture of Page Duration Chart For Issues2 With Wide Ranges\" width=\"590\" height=\"489\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationChartForIssues2WithWideRanges.png 798w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationChartForIssues2WithWideRanges-300x248.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>If we move down to the table, we again get the exact numbers, and can see the average of roughly 1.7 (rather than 1.8 as before) for this particular page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-524\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationTableForIssues2WithWideRanges.png\" alt=\"Picture of Page Duration Table For Issues2 With Wide Ranges\" width=\"590\" height=\"248\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationTableForIssues2WithWideRanges.png 798w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PageDurationTableForIssues2WithWideRanges-300x125.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Note that these user level settings apply to the entire test report, so if we return to the summary section we&#8217;ll see those user levels that we just selected applied there as well.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-508\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SummaryChangedUserLevels.png\" alt=\"Picture of Summary with Changed User Levels\" width=\"590\" height=\"563\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SummaryChangedUserLevels.png 797w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/SummaryChangedUserLevels-300x286.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<h2>Summarizing Performance Goals<\/h2>\n<p>User levels, besides being used in the sections that we have just examined, are also used for summarizing all the performance goals for the test. Here is a summary of all the goals we analyzed in the performance-goals section at each of the user levels.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-509\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalsLevels.png\" alt=\"Picture of Performance Goals Levels\" width=\"590\" height=\"550\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalsLevels.png 948w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/PerfGoalsLevels-300x279.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Again, for more about performance goals, see the <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/demo\/PerformanceGoals.html\">Performance Goals Analysis video<\/a>.<\/p>\n<h2>Estimating Capacity<\/h2>\n<p>Load Tester also applies user levels in the user capacity section, where it analyzes the data and estimates the user capacity of your site.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-510\" src=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/CapacityAtLevels.png\" alt=\"Picture of Analysis of Capacity At User Levels\" width=\"590\" height=\"545\" srcset=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/CapacityAtLevels.png 949w, https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-content\/uploads\/2009\/12\/CapacityAtLevels-300x276.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>For a more complete explanation of user-capacity analysis, how it works and how to estimate your site&#8217;s capacity, see the <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/demo\/UserCapacityAnalysis.html\">User Capacity video<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By analyzing data against applied user levels, rather than only against elapsed time, Load Tester permits better understanding of performance and of capacity.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,41],"tags":[30],"class_list":["post-493","post","type-post","status-publish","format-standard","hentry","category-load-testing","category-performance-reports","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/comments?post=493"}],"version-history":[{"count":33,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/493\/revisions"}],"predecessor-version":[{"id":4943,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/493\/revisions\/4943"}],"wp:attachment":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/media?parent=493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/categories?post=493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/tags?post=493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}