之前我使用Jmeter来加载使用Forms身份验证测试我的ASP.NET 4网站,并且一切正常。
从那以后添加了几个HttpHandler,这就是我正在尝试加载测试。如果负载测试它与1个线程一切正常。如果我用2个线程加载测试,我会在调用Membership.GetUser()
时抛出一个空引用异常。我在本地调试了这个,并且可以看到HttpContext.Current.User
也是空的,但是调用Membership.GetUser("userName")
会返回用户。
我知道应用程序可以处理2个以上的用户,我刚刚使用了另一个负载测试应用程序(Web Performance Load Tester)并且没有错误。
有人能指出我正确的方向吗?
由于
修改
只是为了澄清,我在验证后对此进行了测试
答案 0 :(得分:0)
问题是,直到认证主体才会被设置 下一个请求到服务器。 如果您使用的是Login控件,则可以使用UserName属性 识别用户。问题背后的关键。
答案 1 :(得分:0)
我的问题是由于Jmeter中的“用户参数预处理器”元素未正确执行/很快。我已将其替换为“CSV数据集配置”元素,并将其直接添加到线程组下方,并且工作正常。
由于未使用用户参数,因此线程未登录到Web应用程序,因此GetUser()
返回null的原因为何!