2012-04-30 47 views
3

我需要一些帮助来使用JMeter。我想记录两个不同的场景,例如点击2个不同的按钮。如果我尝试运行2个用户,一个用户应该打第一个按钮,另一个应该同时打另一个按钮。吞吐量控制器的用途?

我知道这是基本问题。但我是这个新手。那就是为什么问这里。我试图象下面这样:


Thread Group 
-Throughput Controller 
     --Login 
     --Clicking 1st button 
-Throughput controller 
     --Login 
     --Clicking 2nd button 

当我使用CSV数据集配置2个用户运行,无论是登录时相同的用户。

而且我还需要测试并发性。我不知道如何正确执行这一个。任何人都可以帮助我吗?

+0

您对吞吐量控制器使用了什么设置? –

+0

执行百分比是50.我希望2个用户应该执行2个不同的操作。如何执行此操作? – user28

+0

我喜欢[jmeter手册](http://jmeter.apache.org/usermanual/component_reference.html#Throughput_Controller):_“这个控制器命名错误,因为它不控制吞吐量。”_ .. 。但是你试图用它来达到它的正确目的 – KCD

回答

7
  1. 吞吐量控制器将工作正确,如果你有多个单一的迭代。
    I.e.您应该有N个循环(使用循环控制器,例如)子流水控制器设置X百分比(X是整数,0 < = X < = 100) - 因此N循环中的X%也是整数值。
    您可以查看this discussion以获得更好的示例和解释。

  2. 对于你的情况,你可以尝试使用建筑像下面这样:


Thread Group 
Number of Threads = 2 
Loop Count = 1 
+- While Controller 
    Condition = ${__javaScript("${login}"!="<EOF>",)} 
    +- CSV Data Set Config 
     Filename = users.csv 
     Variable Names = login,pwd 
     Delimiter = , 
    +- Loop Controller 
     Loop Count = 10 
     +- Login 
     +- Throughput Controller 
     Percent Execution 
     Throughput = 50.0 
     +- Clicking 1st button 
     +- Throughput Controller 
     Percent Execution 
     Throughput = 50.0 
     +- Clicking 2nd button 
     +- Logout 

其中
- 有2个线程(Thread组:线= 2号)同时开始每从csv文件中提取的唯一凭证(用于登录的Controller + CSV数据集配置);
- 整个测试流程 - 登录>单击按钮(第一或第二)>注销 - 将使用循环控制器重复N次,这使得吞吐量控制器可以正常工作。

+0

谢谢Alies。 1.问题是,它又需要2个相同的用户。我已经根据你的回复进行了尝试。 2.并且登录采样器在单独运行时工作正常。但是并发性不起作用。它的要求就像在响应数据中输入你的密码一样。但是,对于所有用户来说都很好。你能告诉我该怎么办? – user28

+0

嗯。这个例子对我来说工作得很好(唯一的区别是我从csv中提取URL并将请求发送到提取的URL而不是点击按钮1/2)。确保从csv正确提取证书并通过登录请求发送 - 对每个用户都是唯一的(发送检查请求以及可以使用Debug Sampler查看变量值),至少检查jmeter.log是否有错误。仔细检查控制器/采样器中的字段值和参数。 –

+0

我没有看到任何需要与每个吞吐量控制器分别登录的情况 - 所使用的构造将为单一登录采样器使用唯一值。但这是微不足道的。 –