2009-10-15 67 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