获取基于云的负载测试中每个虚拟用户的agentID

时间:2016-11-22 15:43:49

标签: c# visual-studio cloud performance-testing load-testing

我使用visual studio创建了一个Web性能测试。 这是一个简单的scénario连接到只给出密码的应用程序,所以为了模拟许多用户我必须给每个人一个密码,以便在我的数据库中我创建了5个雇员USER1,USER2,USER3,USER4& USER5。 这样每个虚拟用户都将使用一个密码。

首先,我使用了包含5个用户的csv文件,然后尝试将密码绑定到每个人,但它不起作用,因为所有访问方法都不合适:

  • Sequential & Random:我得到了两个用户尝试使用相同密码连接的问题。
  • Unique:虚拟用户每次执行测试时都会占用一条记录。所以我有5条记录,每个虚拟用户将执行一次测试,这不是我想要做的。

我想要做的是:每个虚拟用户只需一条记录并使用相同的密码执行相同的webtest,直到负载测试完成。

所以,我经常搜索,然后在StackOverFlow上找到它:How to use different .csv for each core agent for Visual Studio Cloud Testing?

所以我把这段代码作为testPlugin:

int AgentId = e.WebTest.Context.AgentId;
        e.WebTest.Context["TestAgentPassword"] = "USER" + e.WebTest.Context.AgentId;

在本地,它的工作方式类似于每个agentID(1..5)的魅力唯一标识符,但在云中,所有agentIds都相同= 1,因此两个用户尝试使用相同的密码进行身份验证并生成错误。< / p>

我如何修复每个testAgent的id,无论他执行多少个webtests,它都会在负载测试结束之前使用。

1 个答案:

答案 0 :(得分:1)

Web测试上下文还包含字段$WebTestUserId。如果场景属性“新用户的百分比”设置为零(0%),则$WebTestUserId的最大值将是测试中的虚拟用户数。

由于您有5个CSV用户和5个匹配密码,因此您的5个虚拟用户应该在更改插件代码后正常工作:

string UserId = e.WebTest.Context["$WebTestUserId"].ToString()
e.WebTest.Context["TestAgentPassword"] = "USER" + UserId ;