65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Visual Studio 2013 Ultimate 在云中进行负载测试

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.66/5 (12投票s)

2015年4月30日

CPOL

7分钟阅读

viewsIcon

37879

downloadIcon

4

使用 Visual Studio 2013 Ultimate 在云中进行负载测试

用最大负载测试您的应用程序,以避免任何意外行为。

引言

在本文中,我将向您介绍使用 Visual Studio 2013 Ultimate 在云端进行负载测试所需的基本配置步骤。

背景

性能是开发 Web 应用程序的首要关注点。用最大用户负载测试应用程序一直是开发人员的挑战。开发服务器可能没有生产服务器的容量。随着云环境中负载测试的引入,应用程序负载测试变得非常容易。

配置云端负载测试

设置 Visual Studio Online 账户

我们可以借助 Visual Studio Online 或 Team Foundation Server 来配置负载测试。在这里,我们将使用 Visual Studio Online 账户配置基于云的负载测试。

首先,我们需要创建一个 Visual Studio Online 账户。

  • 使用您的 Microsoft 账户登录 www.visualstudio.com。

  • 下一步是创建一个账户。

  • 成功创建新账户后,只需浏览该账户(例如:https://yourapp.visualstudio.com),您将看到下面的页面。

  • 点击下图所示的“最近项目和团队”中的“新建”以创建一个新的团队项目,我们将把负载测试项目添加到其中。

这样,我们就完成了为执行首次负载测试所需的 Visual Studio Online 账户的创建/设置。

创建 Web 性能测试项目

在创建任何负载测试项目之前,我们首先需要创建一个 Web 性能项目,用于记录/配置我们的测试步骤。

在负载测试中,我们对 Web 测试施加负载。

  • 创建 Web 性能和负载测试项目。默认情况下,它会创建一个名为“WebTest1.webtest”的文件,我们在其中记录负载测试步骤。

  • 点击“添加录制”来录制 Web 测试。Web 浏览器将被打开。

  • 确保测试录制插件在浏览器中已启用,并录制网站上的操作。我不会深入介绍测试录制的细节。

  • 录制完您想要测试的必要步骤后,只需在浏览器中停止录制,步骤就会添加到性能测试文件(WebTest1.webtest)中,如下所示。

  • 现在运行测试,我们将获得 Web 性能测试的结果。
    • 在这里,我们可以配置许多内容,如数据源、上下文参数、动态参数等。我只解释了最基本的 Web 测试的步骤。

因此,我们成功创建了需要进行负载测试的 Web 测试。

将负载测试添加到 Web 性能项目

  • 将负载测试文件添加到我们添加了 webtest1.webtest 的现有解决方案中。

  • 现在点击创建新项目并选择“负载测试”。然后我们可以配置测试设置。

    负载模式:在这里我们可以配置“阶梯负载”。我们将初始用户数设置为 10,最大用户数设置为 200。每隔 10 秒,将有 10 个用户访问系统。我们可以根据需要配置阶梯负载。

    测试混合模型:它将帮助我们为测试配置不同的工作流程。我保留默认设置。有关测试混合模型的更多详细信息,您可以参考以下 URL。

    https://msdn.microsoft.com/en-us/library/dd997826.aspx

    测试混合:我们可以使用不同的 Web 性能测试来分配负载。在此演示测试中,我选择“WebTest1.webtest”,即我们之前创建的 Web 性能测试。

    有关更多详细信息,请查看 URL

    https://msdn.microsoft.com/en-us/library/ms243157(v=vs.100).aspx

    网络混合:我们可以混合使用不同的网络类型进行负载测试。

    有关更多详细信息,请参阅 URL

    https://msdn.microsoft.com/en-us/library/dd997557(v=vs.100).aspx

    浏览器混合:这是用于配置不同浏览器类型的。有关更多详细信息,请查看以下 URL

    https://msdn.microsoft.com/en-us/library/dd997561(v=vs.100).aspx

    运行设置:对于此演示测试,我将负载测试持续时间设置为 5 分钟。您可以根据需要定义持续时间。

  • 点击完成,负载测试文件(LoadTest1.loadtest)将添加到我们的项目中,如下所示。

  • 接下来,我们需要配置运行测试的位置。您可以在解决方案资源管理器中的“解决方案项”下找到一个名为“Local.testsettings”的文件。

    选择“使用 Visual Studio Online 运行测试”复选框。因此,我们在这里定义我们的测试将在云环境中执行。

  • 接下来是将 Visual Studio Online 账户 URL 配置到项目中(我们最初创建的 URL,https://yourapp.visualstudio.com)。

    为此,请选择“团队资源管理器”->“选择团队项目”,如下图所示。

    • 点击“连接到 Team Foundation Server”弹出窗口中的“选择团队项目”(如下图所示)。

  • 在“添加/删除 Team Foundation Server”弹出窗口中,点击“服务器”。然后点击“添加”。

  • 在“添加 Team Foundation Server”弹出窗口中输入 Visual Studio 账户 URL 或 TFS 账户(如果您有),然后点击“确定”。

  • 点击“确定”后,可能会要求输入您的 Microsoft 账户凭据。

  • 添加 Visual Studio Online URL 后,我们就可以在 Visual Studio Online 门户(LoadTestInCloud)中看到我们最初创建的团队项目。因此,选择该团队项目,如下图所示,然后点击连接。

  • 现在我们准备运行第一次负载测试了。在 LoadTest1.loadtest 文件中点击“运行负载测试”。

  • 负载测试已启动…………………………….. 

  • 但是我们创建的第一次负载测试失败了……………………….. 无论如何,让我们看看出了什么问题。

有一个与请求“https://login.live.com/login.srf...”相关的异常。要分析此异常,我们需要下载报告。因此,点击“下载报告”。但是又出现了一个错误…… 但别担心;错误总是提供一些新信息。

所以,我们首先应该看看下载错误报告时出了什么问题,以了解导致负载测试失败的实际问题。

从上面的错误消息中,可以清楚地看出 SQL 服务器连接存在一些问题。默认情况下,错误会导入到数据库中。因此,我们应该先配置数据库。要创建数据库,我们需要执行一个 SQL 脚本(loadtestresultsrepository.sql),它位于 Microsoft Visual Studio 文件夹内。

在我的情况下,它位于 D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 目录中。(我使用的是 Visual Studio 2013 Ultimate)。

执行以下命令创建数据库

D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE>SQLCMD /S SQLInstance /i loadtestresultsrepository.sql

您可能需要在此命令中包含您的数据库凭据。因此,数据库已成功创建。如果您检查您的 SQL Server,您会看到一个名为“LoadTest2010”的数据库。

我们还应该将数据库配置到我们创建的负载测试中。右键单击 LoadTest1(如下图所示)并点击“管理测试控制器”。您将看到配置数据库的提示。

因此,数据库配置部分已成功完成。接下来,点击测试结果页面上的“下载报告”。它将被导入到我们创建的数据库中。然后点击“查看报告”以查看错误详细信息。

因此,我们清楚地了解到原始抛出的错误是上下文参数“QueryStringParam49.ct”在测试上下文中未找到。要进行更深入的分析,我们应该检查我们创建的原始 Web 测试(webtest1.webtest)。

在 Web 测试中,我们可以看到“QueryStringParam49.ct”位于 https://login.live.com/login.srf 下。负载测试正在等待一个我们未提供的参数。在我们的实际应用程序中,我们应该处理动态参数。动态参数可以从数据库、csv 文件等加载。在我们的例子中,我们可以删除此行以继续前进。因此,删除了“https: //login.live.com/login.srf”这一行,因为它对于演示负载测试来说不是必需的。

接下来,我们可以再次运行负载测试。在初始配置后,如果您需要更改用户负载、阶梯持续时间等,可以通过右键单击“阶梯负载模式”(这可能因您的初始设置而异)并点击“属性”来完成,如下所示。在这里,我将最大用户数从最初配置的 200 更改为 40。

再次运行 LoadTest1,让我们看看结果。此测试将消耗 250 个虚拟用户分钟。

测试成功完成,没有任何错误,我们可以开始分析应用程序性能。

我们可以看到负载测试结果的图形表示。从下面的图表中,应用程序的性能和吞吐量非常清晰。

摘要

我试图解释使用 Visual Studio 2013 Ultimate 在云端配置负载测试所需的非常基本的配置步骤。我们可以使用 Visual Studio Online 或 Team Foundation Server 来配置负载测试。

历史

  • 2015 年 4 月 30 日:初始发布
© . All rights reserved.