基于云的负载测试的常见问题解答

这些部分涵盖基于云的负载测试的常见问题解答,以帮助你对任何问题进行故障排除或回答你可能遇到的问题。

应用配置

答案:可以使用 Visual Studio Team Services 对Internet 上提供的任何应用进行负载测试。 从此处开始。

如果你的应用位于防火墙后面(因为它是内部应用或你的应用尚未发布),仍可使用基于云的负载测试。 有关详细信息,请参阅使用受信任的 IP 对位于防火墙后面的应用程序进行负载测试

常规

答案:在任何位置获取在云中运行负载测试的权限可能需要 5 秒到 3 小时。 如果你以前创建了 Visual Studio Team Services 帐户,则可能会立即运行负载测试。
答案:否。 目前尚不支持使用 mstest 运行负载测试。
答案:在默认状态下,它们被存储在本地 SQL Express 数据库中。 SQL Express 可用于存储来自试用版运行的测试结果。 随着下载负载测试结果的数量增多,请使用 SQL Server 予以替代以取得更好的性能。 若要使用 SQL Server,请遵循以下说明
答案:从 Visual Studio 2013 Update 5 和 Visual Studio 2015 开始,可以在配置你的负载测试运行时选择测试代理位置。 从全球任何受支持的 Azure 数据中心选择位置。 如果我正在使用 Visual Studio 的早期版本该怎么办?

After your run finishes, your results are stored in the same location as your Visual Studio Team Services account.

If you’re using an earlier version of Visual Studio, the agent location is based on the location that you chose when you created your Visual Studio Team Services account.

Visual Studio Team Services 帐户区域
美国中南部
西欧

测试代理 Azure 数据中心
美国东部 2
西欧

如果你的应用位于你的防火墙后面,你仍可以通过使用受信任的 IP 配置你的防火墙对你的应用进行负载测试。 若要请求受信任的 IP,并了解在对内部应用进行负载测试时如何使用它们,请参阅 使用受信任的 IP 对位于防火墙后面的应用程序进行负载测试.

答案:否。 只有一个负载测试运行托管在为该运行托管代理的虚拟机集上。
答案:每个运行的负载测试代理的最大内核数为 100 个。 如果你的测试运行需要更多内核,你可以在同一时间运行 10 个负载测试。

每个代理内核的最小虚拟用户数为 1。 如果你的负载测试需要更多的代理内核,或每个代理内核需要更少的虚拟用户,请与 vsoloadtest@microsoft.com 联系。

答案:如果你的测试运行的每个内核使用 25 个或更多个虚拟用户,则 VUM =(你的测试运行的最大用户负载数)*(测试运行的持续分钟数)。

如果你的测试运行的每个内核使用少于 25 个虚拟用户数,则 VUM =(内核数)*(每个内核的 25 个虚拟用户数)*(测试运行的持续分钟数)。

用于计算 VUM 的最小值为 25 个虚拟用户和 1 分钟。 如果你的测试运行值小于最小值,则这些值将调高到满足最小值。 例如,如果你的测试运行指定 30 秒 20 个虚拟用户,则你的测试实际上将按 1 分钟 = 25 VUM 而非 15 VUM 的 25 个虚拟用户运行。

同样,测试运行持续时间以分钟计算。 所以,如果你的测试运行持续时间为 5 分钟 15 秒,则该持续时间将调至 6 分钟。

最少 250 VUM(包括测试预热期)将从你的帐户扣除,用于:

  • 已完成的运行,基于运行的完整持续时间
  • 中止的运行,基于已用的运行持续时间

对于以错误状态终止的运行,VUM 不会从你的帐户扣除。

若要查看你的 Visual Studio Team Services 帐户已使用的虚拟用户分钟数或剩余数,请转到你的 Visual Studio Team Services 帐户主页 (https://{youraccount}.visualstudio.com)。

答案:资源限额适用于每个 Visual Studio Team Services 帐户。 对于每个帐户,你在每月会收到 20000 个免费的虚拟用户分钟数。 如果你的负载测试需要更多虚拟用户分钟数,请让你的帐户所有者为 Visual Studio Team Services 帐户获取额外资源

If your free resource limits run out and you have not purchased additional resources, you will get a status message like this:

This run exceeds the maximum allowed usage for this month.

本月你的帐户的当前使用数(包括正在进行的运行)为 8000,而允许使用的最大值为 20000。 了解有关使用限额以及如何对其修改的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=303976

配置测试

答案:使用 .csv 文件或 Excel 电子表格为基于云的负载测试提供不同值。 目前尚不支持使用 SQL Server。 若要了解如何为你的测试提供这些值,请转至此处
答案:运行所使用的代理数基于你的测试。 如果在运行测试时遇到错误,则可能需要增加代理内核数。 使用 Visual Studio IDE 在 Visual Studio Team Services 中进行负载测试时可以更改代理内核数。

IC666801

Agent Count (Total Cores)

值指的是什么?

  • 0:(默认)内核数基于你为你的测试指定的虚拟用户数。
  • 1:你的测试运行将使用具有 1 个内核的 1 个代理。
  • 2 个或更多:每个代理将始终使用 2 个内核。 例如,如果值为 4,则获得 2 个代理,每个代理均有 2 个内核。 如果值为 3,则仍获得 2 个代理,每个代理均有 2 个内核。 你不会获得具有 2 个内核的 1 个代理和仅有 1 个内核的 1 个代理。

代理数也取决于你的测试组合(Web 性能测试或单元测试)。 如果你仅有 Web 性能测试,那么我们建议你为每 2 个内核使用 250 到 1000 个虚拟用户。 如果你有单元测试,则代理计数取决于你的单元测试执行的内容。 这意味着你需要通过运行持续时间更短的负载测试运行或使用基于目标的负载测试来测试你是否拥有足够的代理。

答案:你可以使用部署选项和测试设置中的“安装脚本”。

You can add the .exe or other files to the Deployment window which you want to deploy on the Agent and using the Setup script you can install them on agents.

部署在代理上的所有项将被复制到代理上的目录。 可使用安装中的 %DeploymentDirectory% 和清理脚本来访问目录的位置。 例如,如果我想要在代理计算机上安装 WebDeploy,那么我需要将 WebDeploy_x64_en-US.msi 添加到“部署”窗口。 Setup.cmd 看起来像 %DeploymentDirectory%WebDeploy_x64_en-US.msi /passive

运行并监视负载测试

答案:你可以在 Visual Studio Team Services 支持门户(页面顶部)和我们的服务博客上查看服务状态。 你也可以按照我们支持论坛中的该文章来订阅服务状态的警报。
答案:使用 Visual Studio Team Services 运行时,你的负载测试运行的状态为:

  • 正在进行:测试运行目前正在云中运行。
  • 已完成:成功完成测试运行。
  • 已中止:测试运行已被单击停止按钮的用户停止。 如果存在与你的负载测试相关的问题,此状态也会出现。 例如,如果你的测试脚本存在问题,则出现中止。
  • 错误:测试运行由于服务本身的错误已停止。 例如,服务中可能存在基础结构问题,因此无法继续运行你的测试。 这不是由你的负载测试或测试脚本导致的问题。
A:由于已知问题,你当前必须使用此解决方法:

  1. 使用管理员权限启动记事本
  2. 打开 devenv.exe.config 文件(该文件通常位于:“C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDE”)
  3. 将 bindingRedirect 的值更改为“8.0.0.0-14.0.0.0”
    <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.LoadTest" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="8.0.0.0-14.0.0.0" newVersion="12.0.0.0"/>
    </dependentAssembly>

故障排除

答案:使用 Internet Explorer 11 尝试并记录你的 Web 测试时,如果 Web 测试记录器未启用,则转到此处以解决问题。
答案:在你的负载测试运行时报告状态消息和测试错误。 状态消息为你提供有关负载测试运行本身的详细信息(例如连接到结果数据库丢失的时间)。 测试错误与测试相关。 从进度关系图的“详细信息”选项卡查看这两种信息。

IC696061

答案:如果该错误声明连接的当前状态已关闭,则可以在超时前设置连接的时间数。 在连接字符串中设置 ConnectTimeout 或连接超时关键字。 不要在 ConnectionString 中将超时的值设置为 0,因为连接会无限制地持续尝试连接。
答案:如果发生此情况,你需要从你的 MSDN 订阅提取 Visual Studio Ultimate 产品密钥并使用“产品信息”页上的“更改我的产品许可证”选项。 你需要在你想要使用 Visual Studio Team Services 运行负载测试的每个计算机上执行此操作。 访问此网站以获取产品密钥。
答案:从 2014 年 11 月 26 日开始,你必须向你的 REST API 调用添加版本信息。 如果你的调用失败,出现 VssVersionNotSpecifiedException 异常,则必须将 ?api-version=1.0-preview.1 包括在你的 REST API 调用中。 按照此处的说明执行该操作。
答案:当使用 Visual Studio Team Services 运行测试时,负载测试中的测试名称被转换为小写。 用户代码对测试名称进行的任何字符串匹配应忽略大小写或将测试名称转换为小写。
A:使用文本编辑器来编辑 devenv.exe.config。 该文件通常位于“C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDE”。

    1. 在 部分内添加以下行:
      <add key="ElsClientLogLevel" value="XXX"/>

      XXX 可以是以下任意一种:

      • 全部 – 记录全部消息
      • 关闭 – 停止记录任何消息
      • 严重 – 仅记录严重消息
      • 错误 – 仅记录错误和严重消息
      • 警告 – 记录错误、严重和警告消息(默认)
      • 信息 – 记录错误、严重、警告和信息消息
      • 详细 – 记录错误、严重、警告、信息和详细消息

 

  1. 将以下部分添加到 devenv.exe.config 文件的底部(在关闭标记正上方)。 你可以通过更改 initializeData 值来指定日志文件的路径。
        <code class="csharp"><system.diagnostics>
     <trace autoflush="true" indentsize="4">
     <listeners>
     <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="d:VSTestHost.log"/>
     </listeners>
     </trace>
    
     <switches>
     <!-- You must use integral values for "value": 0 = off, 1 = error, 2 = warn, 3 = info, 4 = verbose.-->
     <add name="EqtTraceLevel" value="4" />
     </switches>
     </system.diagnostics></code>
    

  2. 重新启动 Visual Studio 2013 和重现问题。 然后,你可以审查日志文件或将其与支持人员共享。 日志文件位于此处:%Temp%ELSClient。
答案:对于 Visual Studio 2013 Update 4 及更高版本,TimingDetailsStorage 属性的默认值已从 AllIndividualDetails 更改到 None。 如果你想要收集单个计时,则必须将 TimingDetailsStorage 属性特别设置为 AllIndividualDetails。 有关详细信息,请转到此处

错误

答案:如果你收到以下这些错误之一:

  • VS1550064
  • VS1550072
  • VS1550078
  • VS1550081
  • VS1550082
  • VS1550083

请于 Visual Studio Team Services 支持人员联系。 你需要向他们提供你的测试运行 ID。

答案:如果你手动编辑 .loadtest xml 文件,则会导致此错误:

  • VS1550084

打开文件并对你所添加的任何更改进行还原。 重新运行负载测试,应会成功完成运行。

答案:如果你手动编辑 .loadtest xml 文件,则会导致以下这些错误:

  • VS1550026
  • VS1550027

打开文件并对你所添加的任何更改进行还原。 重新运行负载测试,应会成功完成运行。

答案:如果你在未完成负载测试向导的情况下将其关闭,则会引发此错误:

  • VS1550030

若要修复该问题,请创建另一个负载测试并删除运行失败的负载测试。

答案:这些错误通常是由基于云的负载测试服务的问题导致的。 只需再次尝试运行你的负载测试即可。 如果问题仍然存在,请与 Visual Studio Team Services 支持人员联系。 你需要向他们提供你的测试运行 ID。
答案:转到此处查找有关其他错误的信息及其解决方案(如果适用)。

使用云服务

免费试用

自己托管它

下载试用版