2016-11-22 34 views
0

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

首先,我用含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,因此两个用户尝试使用相同的密码进行身份验证并生成错误。

我该如何修复每个testAgent的id,直到加载测试结束时使用,无论他执行多少次webtest。

回答

1

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

正如你在CSV 5个用户和5名匹配的密码,然后你的5个虚拟用户应该改变插件代码是经过正常工作:

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

非常感谢,它完美的作品。 –

相关问题