VSTS 负载测试 - 如何动态读取当前运行的负载测试文件的运行设置

Posted

技术标签:

【中文标题】VSTS 负载测试 - 如何动态读取当前运行的负载测试文件的运行设置【英文标题】:VSTS Load Testing - How to read runsettings dynamically of currently running load test file 【发布时间】:2019-01-24 22:30:53 【问题描述】:

我正在从某个 xxx.loadtest 文件运行负载测试,并希望动态读取此 xxx.loadtest 负载测试文件的活动运行设置部分以获取各种属性,例如描述、测试迭代、运行持续时间等。请注意当我运行不同的负载测试集时,文件名 xxx.loadtest 会不断变化。所以我不能在我的代码中硬编码。有没有一种简单的方法来获取此负载测试文件的完整文件路径,而无需对文件名进行硬编码?

【问题讨论】:

您的问题得到解答了吗?如果没有,请edit 让它更清楚。如果已经回答,请阅读accepting answers。 【参考方案1】:

运行设置中的许多值都可以通过负载测试插件获得,有关创建它们的更多信息,请参阅here。下面的代码是我写的一个插件的摘录,它展示了如何访问运行设置中的两个值。

public class LoadTestPluginExample : ILoadTestPlugin

    private LoadTest m_loadTest;

    private int warmUpPlusRunDuration;

    public void Initialize(LoadTest loadTest)
    
        m_loadTest = loadTest;

        warmUpPlusRunDuration = m_loadTest.RunSettings.WarmupTime + m_loadTest.RunSettings.RunDuration;
    

    ... other plugin methods that use warmUpPlusRunDuration

我经常使用 Visual Studio 的 intelisense 来探索 Web 测试和负载测试中可用的值等。

如果您真的想读取.loadtest 文件本身,那么原始完整文件名和文件路径可能在运行时不可用,因为负载测试已部署到​​执行计算机。由于原始计算机和执行计算机可能不同,因此原始路径在执行期间可能无效。但是,我相信(但我目前无法检查).loadtest 文件与其他用于测试的文件一起部署到(默认情况下)...\TestResults\name+date+time\... 文件夹中。其中一个文件夹是测试运行时的当前目录,因此在相关目录中搜索.loadtest 文件应该很简单。

number of agents 在LoadTestContextAgentCount 属性中可用,它是作为负载测试的一部分执行的Web 测试上下文的命名条目之一。这意味着它只能通过插件(或类似代码)的代码来访问,并且由于 LoadTestContext 仅在负载测试中可用,因此调试和测试插件变得更加困难。

【讨论】:

感谢@AdrianHHH 的建议。我已经在使用负载测试插件。除了提到的参数,我主要需要 Agent Count (Total Cores) 参数。我将使用下面的代码 sn-p 读取自动部署在 .\Out 文件夹 string[] totalLoadTestFiles = Directory.GetFiles(Environment.CurrentDirectory, ".loadtest", SearchOption.TopDirectoryOnly); 中的 loadtest 文件

以上是关于VSTS 负载测试 - 如何动态读取当前运行的负载测试文件的运行设置的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio Team Services (VSTS) 运行带有 SSL 错误的 Web/负载测试

VSTS 2008 负载测试中的虚拟用户并发

使用VS Enterprise在防火墙后面的站点上运行负载测试

使用 VSTS 进行负载测试。从 CSV 文件中搜索,然后单击第一个元素

TFS 本地负载测试管道

如何通过 VSTS 发布定义使用 haproxy 负载均衡器来上/下维护页面?