2009-10-15 121 views

回答

5

由於身份驗證問題,限制您的測試工具將是一件恥辱。在壓力測試期間關閉NTLM/Windows Auth更加實用。我們通過添加配置參數來完成此操作,只有在壓力/負載測試環境中配置時,才允許通過URL傳遞用戶名。這會導致在我們加載和緩存當前用戶的某個地方發生行爲更改。它幾乎適用於任何測試工具。

如果您正在測試ASP.NET應用程序,則需要創建您自己的用戶主體並將其分配給HttpContext.Current.User。一個很好的做法是在僅在壓力測試環境中配置的HttpModule或Membership Provider的AuthenticateRequest事件中。

這種技術沒有太多缺點。假設Windows身份驗證相對於整體應用程序的性能而言相對便宜並且相對較小,這將運行。沒有它,我們對壓力測試結果非常有信心。這裏需要注意的一點是IE會對NTLM做出挑戰/迴應,所以雖然這不是一個完美的測試,但它是一個非常好的測試。而完美是善的敵人。

+2

仍然不完全滿意,沒有一種簡單的方法來做NTLM身份驗證,但會接受,因爲它似乎是免費完成此任務的最實用方法。 – Sam 2009-11-02 22:15:14

2

也許我錯過了Windows認證的一些東西,但我認爲Selenium應該能夠做到這一點。你有沒有嘗試過?

+0

謝謝!現在正在調查這個... – Sam 2009-10-15 15:51:01

+0

看起來它確實監視,但不是壓力測試,因爲它必須啓動實際的瀏覽器。 – Sam 2009-10-15 16:10:37

+0

由於HtmlUnit http://code.google.com/p/webdriver/wiki/HtmlUnit,webdriver能夠在沒有實際瀏覽器的情況下運行。不確定它可以完成Windows身份驗證的工作。 – luc 2009-10-15 19:28:38

1

你可以嘗試一下磨牀項目:NTLM支持是有點棘手,但這裏還有一些細節:

http://grinder.sourceforge.net/faq.html#spnego(使嵌入鏈接已經死了 - 看到CruiZen評論)

http://bb10.com/java-grinder-user/2007-08/

+0

以上磨牀常見問題頁上的鏈接指向不再存在的Windows空間博客。 – CruiZen 2013-04-19 08:33:04

+0

請參閱The Grinder用戶論壇中的[此鏈接](http://bb10.com/java-grinder-user/2007-08),該論壇描述瞭如何使用The Grinder中的NTLM。它使用JCIFS Java庫(由於它使用Jython/Clojure腳本並可以訪問Java庫,因此可以在The Grinder中獲得)/msg00023.html – CruiZen 2013-04-19 08:34:23

+1

@CruiZen - 感謝您的信息 - 相應地更新了答案。 – davek 2013-04-19 20:19:35