如何为 Visual Studio 云测试的每个核心代理使用不同的 .csv?

2023-11-30

我正在尝试使用 Visual Studio Cloud Test 执行简单的 REST API 负载测试:https://www.visualstudio.com/en-us/docs/test/performance-testing/getting-started/getting-started-with-performance-testing

该请求包含授权令牌,我使用预先生成的 .csv 数据源来提供它们。这是描述:https://msdn.microsoft.com/library/ms243142.aspx

当从本地计算机运行测试时,一切工作正常,但当我从云开始测试时,97% 的测试都失败了。

因为我的服务有并发检查 - 一个令牌只能用于发出一个请求。看起来测试是在云中的 20 台代理计算机上运行的,并且所有这些计算机都使用相同的 .csv 数据源。

我想知道是否有一种方法可以让每个云代理分散不同的数据源?


根据您的评论,数据源访问方法unique不能与 VSTS CLOUD 负载测试一起使用。

一种可能性:您生成的令牌可以包含代理号码(AgentID)吗?如果是,那么您可以使用包含基于以下代码的插件:

string tokenFromCSV = e.WebTest.Context["DataSource1.file#csv.token"].ToString();
string agentId = e.WebTest.Context["AgentId"].ToString();
if(agentId.Length==1) agentId = "0" + agentId;
string tokenToUse = tokenFromCSV + agentId;
e.WebTest.Context["tokenToUse"] = tokenToUse;

然后在当前使用 CSV 文件中的令牌的地方,使用新编写的上下文参数tokenToUse。还有许多其他方法可以将代理 ID 合并到令牌值中。

另一种可能性。如果使用的代理数量永远不会超过 20 个(或其他数量不太多的),则生成包含 20 列令牌值的 CSV。让列名称包含客服人员编号,然后让每个客服人员仅使用其列中的值。这可能需要一个插件来访问正确的列并将值存储到上下文参数中。

另一种可能性。如果CSV中的行数可以比测试中的虚拟用户数大几倍。我想至少是10倍,但比例越大越好。将 CSV 访问方法设置为Random。然后,测试应该主要使用一次仅由一个测试使用的令牌来运行。会有一些双重用途,因此测试失败,但您的客户可能会接受这种程度的失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Visual Studio 云测试的每个核心代理使用不同的 .csv? 的相关文章

随机推荐