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

Get the agentID of every virtual user in the cloud based load test

我使用 visual studio 创建了一个网络性能测试。 这是一个连接到仅提供密码的应用程序的简单场景,因此为了模拟许多用户,我必须向每个人提供密码,以便在我的数据库中创建 5 个员工 USER1、USER2、USER3、USER4 和 USER5。 这样每个虚拟用户都会使用一个密码。

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

我想做的是:每个虚拟用户获取一条记录,并使用它使用相同的密码多次执行相同的网络测试,直到负载测试完成。

所以,我搜索了很多,然后在 Whosebug 上找到了这个:

所以我将这段代码写成了测试插件 :

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

在本地,它就像每个 agentID(1..5) 的唯一标识符一样工作,但在云中,所有 agentId 都相同 = 1,因此两个用户尝试使用相同的密码进行身份验证并产生错误.

我如何为每个 testAgent 修复一个 id,无论他执行多少个 webtests,该 testAgent 都将使用到负载测试结束。

Web 测试上下文还包含字段 $WebTestUserId。如果场景 属性 "Percentage of new users" 设置为零 (0%) 那么 $WebTestUserId 的最大值将是测试中的虚拟用户数。

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

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