{"id":2270,"date":"2011-06-10T15:04:00","date_gmt":"2011-06-10T19:04:00","guid":{"rendered":"http:\/\/www.webperformance.com\/load_testing\/blog\/?p=2270"},"modified":"2012-02-01T14:38:54","modified_gmt":"2012-02-01T18:38:54","slug":"enhanced-integrated-windows-authentication-support-in-load-tester-4-2","status":"publish","type":"post","link":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2011\/06\/enhanced-integrated-windows-authentication-support-in-load-tester-4-2\/","title":{"rendered":"Enhanced Integrated Windows Authentication Support in Load Tester 4.2"},"content":{"rendered":"<p>Load Tester 4.2 offers a substantial number of enhancements over the 4.1 release. One of the last features, which was not available in the 4.2 beta cycle, is completely redesigned support for Connection Authentication Negotiation. For IIS users, just think of \u201cConnection Authentication Negotiation\u201d as support for IIS&#8217; \u201c<a href=\"http:\/\/en.wikipedia.org\/wiki\/Integrated_Windows_Authentication\">Integrated Windows Authentication<\/a>\u201d. Load Tester&#8217;s CAN support is a bit more abstract to encompass other servers as well. In fact, the term \u201cConnection Authentication Negotiation\u201d is used to provide support for negotiation of an authentication scheme at the HTTP layer, which may be used to authenticate the browser&#8217;s connection to the server. For Load Tester 4.2, CAN supports NTLM and Negotiate using NTLM.<\/p>\n<p>Let&#8217;s start by looking at a recording which uses NTLM. When we go to our server, we get a prompt for credentials from the browser instead of a web page, since the authentication is being performed at the HTTP layer.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2272\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/ntlm-record.png', '_blank', 'toolbar=no,width=883,height=781');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/ntlm-record.png\" alt=\"Recording NTLM\" width=\"572\" height=\"506\" \/><\/p>\n<p>Note that for some sites, this prompt may not even appear at all (the browser may use your local account credentials or other cached credentials).<\/p>\n<p>Once you enter your credentials and finish your recording, you will wind up with a testcase in Load Tester which looks something like this:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2273\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/raw-ntlm-testcase.png', '_blank', 'toolbar=no,width=918,height=726');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/raw-ntlm-testcase.png\" alt=\"testcase displaying recorded NTLM transactions\" width=\"572\" height=\"452\" \/><\/p>\n<p>The \u201c401 \u2013 Unauthorized\u201d may look strange here, but it&#8217;s actually normal. This is how robots (such as Google) will see your page. When the server sends this page, the browser recognizes the HTTP headers as a request for credentials and displays the Username &amp; Password pop-up instead.<\/p>\n<p>For more information on what to expect when looking at a &#8220;raw&#8221; authenticated recording, see &#8220;<a title=\"How HTTP Authentication works and why load testers should care\" href=\"\/load-testing\/blog\/2011\/06\/how-http-authentication-works-and-why-load-testers-should-care\/\">How HTTP Authentication works and why load testers should care<\/a>&#8220;.<\/p>\n<p>Now that the recorder has recorded what actually happened, we want to configure the testcase to represent what we intend to happen: we request the home page, and authenticate if &amp; when required. To get started, start the Testcase Configuration Wizard from the Wizard launch button.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2274\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/configure-menu.png', '_blank', 'toolbar=no,width=722,height=155');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/configure-menu.png\" alt=\"Testcase Configuration Wizard menu item\" width=\"572\" height=\"123\" \/><br \/>\nPressing one of the green play buttons to run a replay will cause the same wizard to be launched, since this testcase has not yet been configured for replay.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2275\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-configuration-wizard.png', '_blank', 'toolbar=no,width=700,height=618');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-configuration-wizard.png\" alt=\"Testcase Configuration Wizard\" width=\"572\" height=\"505\" \/><\/p>\n<p>On this wizard, the \u201cConfigure user identity for connection authentication\u201d is selected so we can enter user identities for virtual users to use when the server requires them to authenticate.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2276\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/can-select-users.png', '_blank', 'toolbar=no,width=700,height=618');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/can-select-users.png\" alt=\"CAN Wizard - Configure Identities\" width=\"572\" height=\"505\" \/><\/p>\n<p>The next step allows us to define if the same credentials can be used for simultaneous sessions. There are a couple options:<\/p>\n<ul>\n<li>Use a dataset: For the purposes of this wizard, this can be thought of as a spreadsheet of usernames and passwords. This is recommended for most users, since many servers do not behave predictably with concurrent sessions using the same credentials.<\/li>\n<li>Share a username. This option may work for environments where access to the server hosting the application is restricted to some personnel, and the application is not aware of the environmental authentication. This option can also be used to configure the testcase for single-user replays with the intent of revisiting the wizard later before running load test.<\/li>\n<\/ul>\n<p>Next, we just need to enter some user names, and press Finish.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2277\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/can-create-dataset.png', '_blank', 'toolbar=no,width=700,height=618');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/can-create-dataset.png\" alt=\"CAN Wizard - Creating a Dataset\" width=\"572\" height=\"505\" \/><\/p>\n<p>Now, the testcase editor shows just the pages that the browser showed during the recording, with the hidden pages returned by the server tucked away.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2278\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-tidy.png', '_blank', 'toolbar=no,width=1014,height=731');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-tidy.png\" alt=\"Testcase with NTLM transactions tucked away\" width=\"572\" height=\"412\" \/><\/p>\n<p>Of course, users who still want to see or diagnose authentication can still look up the same information in a couple of ways:<\/p>\n<ol>\n<li>From the Headers View<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2281\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/headersview-can.png', '_blank', 'toolbar=no,width=1010,height=361');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/headersview-can.png\" alt=\"Headers View selecting CAN transactions\" width=\"520\" height=\"186\" \/><\/li>\n<li>Inside the testcase editor: enable the option to \u201cshow connection negotiation transactions\u201d by opening the editor properties: <img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2282\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-properties-menu.png', '_blank', 'toolbar=no,width=983,height=234');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-properties-menu.png\" alt=\"Opening the testcase editor properties\" width=\"520\" height=\"124\" \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2283\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-properties-dialog.png', '_blank', 'toolbar=no,width=700,height=465');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-properties-dialog.png\" alt=\"Enabling display of connection negotiation transactions in the testcase editor properties dialog\" width=\"520\" height=\"345\" \/><br \/>\nWith this option enabled, the testcase editor will show the transactions that the browser either performs automatically or otherwise would hide as separate pieces necessary to complete a URL.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2284\" style=\"cursor: pointer;\" onclick=\"window.open('\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-editor-can.png', '_blank', 'toolbar=no,width=816,height=259');\" src=\"\/load-testing\/blog\/wp-content\/uploads\/2011\/06\/testcase-editor-can.png\" alt=\"Testcase Editor expanding CAN Summarized Transaction\" width=\"520\" height=\"165\" \/><\/li>\n<\/ol>\n<p>We hope that you will find that using connection authentication is much easier in Load Tester 4.2. Of course, if you have any questions, our friendly support staff will be more than happy to answer.<\/p>\n<p>Happy Testing!<\/p>\n<p>-Frank<br \/>\nEngineer at Web Performance<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Load Tester 4.2 offers a substantial number of enhancements over the 4.1 release. One of the last features, which was not available in the 4.2 beta cycle, is completely redesigned support for Connection Authentication Negotiation. For IIS users, just think of \u201cConnection Authentication Negotiation\u201d as support for IIS&#8217; \u201c<a href=\"http:\/\/en.wikipedia.org\/wiki\/Integrated_Windows_Authentication\">Integrated Windows Authentication<\/a>\u201d. Load Tester&#8217;s CAN support is a bit more abstract to encompass other servers as well. In fact, the term \u201cConnection Authentication Negotiation\u201d is used to provide support for negotiation of an authentication scheme at the HTTP layer, which may be used to authenticate the browser&#8217;s connection to the &hellip; <a href=\"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/2011\/06\/enhanced-integrated-windows-authentication-support-in-load-tester-4-2\/\">Continue reading &raquo;<\/a><\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[129,26,49],"class_list":["post-2270","post","type-post","status-publish","format-standard","hentry","category-load-tester-software","tag-authentication","tag-iis7","tag-load-tester"],"_links":{"self":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/2270","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\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/comments?post=2270"}],"version-history":[{"count":37,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/2270\/revisions"}],"predecessor-version":[{"id":3126,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/posts\/2270\/revisions\/3126"}],"wp:attachment":[{"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/media?parent=2270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/categories?post=2270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webperformance.com\/load-testing-tools\/blog\/wp-json\/wp\/v2\/tags?post=2270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}