对于开发人员来说,性能是构建Web应用程序时的主要关注点。测试应用程序在最大用户负载下的表现一直是开发人员面临的挑战。开发服务器可能没有生产服务器的容量。随着云环境中负载测试的引入,应用程序负载测试变得非常容易。
可以使用Visual Studio Online或Team Foundation Server的帮助来配置负载测试。这里将使用Visual Studio Online账户来配置基于云的负载测试。
首先,需要创建一个Visual Studio Online账户。
使用Microsoft账户登录到。
下一步是创建一个账户。
成功创建新账户后,只需浏览该账户(例如:),将看到以下页面。
点击“新建”以创建一个新的团队项目,将向其中添加负载测试项目。
这样就完成了创建/设置Visual Studio在线账户,这是执行第一个负载测试所需的。
在创建任何负载测试项目之前,首先需要创建一个Web性能项目,将在其中记录/配置测试步骤。
在负载测试中,向Web测试施加负载。
创建Web性能和负载测试项目。默认情况下,它会创建一个文件‘WebTest1.webtest’,将在其中记录负载测试步骤。
点击“添加记录”以记录Web测试。Web浏览器将被打开。
确保浏览器中的测试记录器插件已启用,并记录网站上的操作。不会深入测试记录的细节。
记录完想要测试的必要步骤后,只需在浏览器中停止记录,步骤将被添加到性能测试文件(WebTest1.webtest)中,如下所示。
现在只需运行测试,将获得Web性能测试的结果。
在这里,可以配置许多东西,如数据源、上下文参数、动态参数等。只解释了最基本的Web测试步骤。
因此,成功创建了需要测试负载的Web测试。
将负载测试文件添加到添加了webtest1.webtest的现有解决方案中。
现在点击创建新项目并选择“负载测试”。可以配置测试设置。
负载模式:在这里可以配置“逐步负载”。设置初始用户数为10,最大用户数为200。每10秒,将有10个更多的用户访问系统。可以根据需要配置逐步负载。
测试混合模型:它将帮助配置不同的工作流程进行测试。保留默认设置。要获取有关测试混合模型的更多详细信息,请参阅以下URL:
测试混合:可以将负载分配给不同的Web性能测试。在这个演示测试中,选择了‘WebTest1.webtest’,这是之前创建的Web性能测试。
要获取更多详细信息,请查看URL:
网络混合:可以为负载测试混合不同的网络类型。
有关更多详细信息,请参阅URL:
浏览器混合:这是用于配置不同类型的浏览器。有关更多详细信息,请查看以下URL:
运行设置:对于这个演示测试,将负载测试持续时间设置为5分钟。可以根据需要定义持续时间。
点击完成后,负载测试文件(LoadTest1.loadtest)将被添加到项目中,如下所示。
接下来,需要配置将要运行测试的位置。可以在解决方案资源管理器中的解决方案项下找到一个名为‘Local.testsettings’的文件。
选择“使用Visual Studio Online运行测试”的复选框。在这里,定义了测试将在云环境中执行。
接下来是将Visual Studio在线账户URL配置到项目中(最初创建的URL:)。
为此,请选择团队资源管理器->选择团队项目,如下所示。
点击团队资源管理器中的“选择团队项目”(如下所示)。
点击“连接到Team Foundation Server”弹出窗口中的“服务器”。然后点击“添加/删除Team Foundation Server”弹出窗口中的“添加”。
在“添加Team Foundation Server”弹出窗口中输入Visual Studio账户URL或TFS账户(如果有的话),然后点击确定。
点击“确定”后,可能会要求Microsoft账户,提供凭据。
添加Visual Studio在线URL后,可以看到最初在Visual Studio在线门户中创建的团队项目(LoadTestInCloud)。所以选择那个团队项目,如下所示,然后点击连接。
现在准备好运行第一个负载测试了。点击LoadTest1.loadtest文件中的“运行负载测试”。
负载测试开始了……………………………..
但是创建的第一个负载测试失败了…………………………..无论如何,让看看出了什么问题。
与请求‘https://login.live.com/login.srf...’相关的一些异常。要分析异常,应该下载报告。所以点击“下载报告”。但是再次出现错误……..但是不用担心;错误总是提供一些新信息。
所以首先,应该看看在下载错误报告时出了什么问题,以了解导致负载测试失败的实际问题。
从上面的错误消息中,很明显与连接到SQL服务器有关的问题。默认情况下,错误会导入到数据库中。所以应该最初配置数据库。要创建数据库,需要执行一个SQL(loadtestresultsrepository.sql),它位于MicrosoftVisual Studio文件夹内。
在例子中,它位于D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE。(使用的是Visual Studio 2013 Ultimate)。
执行以下命令以创建数据库:D:\Program Files (x86)\MicrosoftVisual Studio12.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’这行,因为它对于继续演示负载测试不是必需的。
接下来可以再次运行负载测试。在初始配置之后,如果需要更改用户负载、步骤持续时间等,可以通过右键点击“逐步负载模式”(这可能根据初始设置而有所不同)并点击属性来完成,如下所示。在这里将最大用户数更改为40。最初配置为200。
再次运行LoadTest1,让看看结果。这个测试将消耗250虚拟用户分钟。
测试成功完成,没有任何错误,可以开始分析应用程序性能。