无法通过 VS2015 网络性能测试登录 Azure 网络应用

Unable to log in to Azure web app via VS2015 web performance test

如何在我的 VS2015 网络性能测试中正确处理 Azure 网络应用程序的 login/authentication 场景?

我创建了一个 XML 文件作为 WAAD 用户名和密码的数据源。我将用户名和密码绑定到表单 Post 参数:login 和 passwd 分别应请求:https://login.microsoftonline.com/xxxx/login 但是当我 运行 测试时,Web 浏览器选项卡显示此错误:

We can't sign you in

Your browser is currently set to block JavaScript. You need to allow JavaScript to use this service.

To learn how to allow JavaScript or to find out whether your browser supports JavaScript, check the online help in your web browser.

我也遇到了很多这样的错误:

The value of the ExpectedResponseUrl property Validation xxxx.azurewebsites.net/xxxx/docs/xxxx.aspx does not equal the actual response URL login.microsoftonline.com/xxxx/wsfed. QueryString parameters were ignored.

知道如何通过 Web 性能测试成功登录到 Azure Web 应用程序吗?

可以使用多种登录和身份验证方法。仅绑定值以形成 post 参数可能不够或不正确。您会发现登录表单隐藏了必须传递的会话身份以及登录数据。我发现使用尽可能接近相同的输入并进行相同的活动来记录两次测试会有所帮助。然后可以比较这两个测试以找到需要处理的动态数据。

提问者在评论中添加了 "I noticed these parameters, n1-43 are different but I have no idea what they represent. How do I handle them?"。我不知道它们代表什么,因为我不知道您正在测试的网站。你可以问网站开发者。或者,更好的做法是将它们视为动态数据。查找值的来源,将它们保存到上下文变量中并根据需要使用它们。这是基本的网络测试开发。 Here and here 是关于该做什么的两篇好文章。

不支持JavaScript的消息可以忽略。 Visual Studio 网络测试不支持 JavaScript 或网页的任何其他 "active" 部分,它们仅支持 html 部分。作为测试人员,您的工作是模拟 JavaScript 对您正在测试的特定用户旅程的作用。该模拟通常只是在记录的请求中填写正确的值(通过上下文参数)。

意外的响应 url 可能是由于早期的失败,例如登录不工作。我建议在解决所有其他测试问题之前不要担心它们。然后,如果您需要帮助,请提出另一个新问题。