Chrome驱动程序配置 - 如何动态设置代理端口?

时间:2018-04-25 13:15:46

标签: jmeter performance-testing jmeter-plugins blazemeter

我想为每个线程启动带有不同代理的chrome驱动程序。我的设置是:

  1. 线程组 - 最少5个线程数
  2. JSR223 Sampler - 设置代理
  3. Chrome驱动程序配置 - 端口是硬编码的(8889)
  4. 带采样器的交易控制器
  5. 在JSR223 sampler中,我使用socket.getLocalPort()获取空闲端口。我想将该值传递给Chrome驱动程序。

    请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:1)

您将无法以Chrome Driver Config方式使用Configuration Element,因为它是Thread Group的实例,而配置元素在之前执行,在{{ 3}}迭代开始。

因此,您的Chrome驱动程序配置将始终在JSR223采样器之前执行。如果您仍想使用真实浏览器执行负载测试,则无法使用为每个线程分别具有单独代理服务器的WebDriver Sampler。选项包括:

  • 使用单个代理并在线程组之外创建它(即在setUp Thread Group
  • 请勿使用WebDriver Sampler并使用JSR223 Sampler或JUnit Request Sampler
  • 从头开始创建您自己的WebDriver实例
  • 在单个线程中使用WebDriver Sampler。根据WebDriver Sampler Tutorial:

      

    注意:此项目的目的不是替换JMeter中包含的HTTP Samplers。相反,它意味着通过测量最终用户加载时间来补充它们。

    因此您不应该使用WebDriver Sampler来创建主要负载,而是设计用于在系统负载来自HTTP Request采样器时测量客户端性能。请参阅How to make JMeter behave more like a real browser文章,了解有关微调JMeter测试的更多信息,以便100%切合实际。