【问题标题】:Get the agentID of every virtual user in the cloud based load test在基于云的负载测试中获取每个虚拟用户的 agentID
【发布时间】:2017-04-06 09:03:00
【问题描述】:

我使用 Visual Studio 创建了一个 Web 性能测试。 这是一个简单的场景,它连接到一个只提供密码的应用程序,所以为了模拟许多用户,我必须给每个人一个密码,以便在我的数据库中我创建了 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) 的魅力唯一标识符,但在云中所有 agentId 都相同 = 1,因此两个用户尝试使用相同的密码进行身份验证并产生错误。

我如何为每个 testAgent 修复一个 id,无论他执行多少个 webtest,直到负载测试结束。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多