Jmeter在从属设备

时间:2017-12-21 07:02:45

标签: jmeter

我在分布式模式下运行测试,包含1个主服务器和2个从服务器。 一个从站生成99个用户加载,另一个生成1个用户负载(从属性文件中读取用户计数)。 我正在使用同步计时器并将其中的Group by值设置为100,因为我希望所有100个请求(99 + 1)一起执行。它运行不正常,可能是因为jmeter在两个从站中分别执行测试计划。所以,我正在从两个从站的user.properties文件中读取同步计时器的值,对于从站1,值为99,而对于其他它是1.它执行我的计划,但第二个从站请求不与奴隶一个。 如何在两个从站中同步请求。

1 个答案:

答案 0 :(得分:0)

你的测试计划设计得不是很好,你无法达到这种同步水平,因为JMeter奴隶是完全独立的野兽,因此他们对彼此一无所知。我可以建议以下选项:

  1. 单线程组+ If Controller

    • 将所有请求放入单个线程组
    • 使用If Controller__threadNum() function组合只告诉第一个线程读取属性文件,如:

      • 如果是控制器,条件:${__threadNum} == 1
        • 读取属性文件的采样器
  2. 单线程组+ Throughput Controller

  3. 不同的线程组:

    您可以使用Inter-Thread Communication Plugin确保99 users load完成1 user load后立即执行func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "TableCollectionViewCell", for: indexPath) as! TableCollectionViewCell if cell.isSelected == true{ self.changeSelectedCellFrame(cell) } else { self.changeDeselectedCellFrame(cell) } return cell } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { let cell = collectionView.cellForItem(at: indexPath) as! TableCollectionViewCell self.changeSelectedCellFrame(cell) } func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) { if let cell = collectionView.cellForItem(at: indexPath) as?TableCollectionViewCell { self.changeDeselectedCellFrame(cell) } } func changeSelectedCellFrame(_ cell:TableCollectionViewCell) { cell.layoutIfNeeded() cell.viewTopConstraint.constant = 0 cell.viewBottomConstraint.constant = 20 cell.layoutIfNeeded() } func changeDeselectedCellFrame(_ cell:TableCollectionViewCell) { cell.layoutIfNeeded() cell.viewTopConstraint.constant = 10 cell.viewBottomConstraint.constant = 10 cell.layoutIfNeeded() }