带有 Socks 代理的 JMeter?
Posted
技术标签:
【中文标题】带有 Socks 代理的 JMeter?【英文标题】:JMeter with Socks Proxy? 【发布时间】:2016-06-14 21:30:52 【问题描述】:我想加载测试我在 aws 上设置的 socks 代理。我想从 vpc 外部生成流量。现在,从我的本地机器上进行测试就足够了,但最终我想将测试转移到一个或多个 ec2 实例上。 JMeter 似乎是一种广泛使用的负载测试工具,但如果有人有任何其他建议,将不胜感激。
【问题讨论】:
【参考方案1】:通过 SOCKS 代理使用 Jmeter 非常简单;
启动您的 SOCKS 代理,例如
在 Linux 上ssh -D8080 https://dmz.server
使用 JVM arg 启动 Jmeter 以使用您的代理进行所有连接
java -DsocksProxyHost=localhost -DsocksProxyPort=8080 -jar ApacheJMeter.jar
【讨论】:
太棒了,谢谢。要从 jmeter shell 脚本启动,我运行:JVM_ARGS='-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=2001' ~/Applications/apache-jmeter-3.0/bin/jmeter "$@" &
我猜这将是要走的路,但不知何故它不适合我。我可以在浏览器上的休息客户端上调用相同的端点,但它不适用于 jmeter。我得到响应代码:非 HTTP 响应代码:java.net.UnknownHostException。想法?
@redwulf 请检查 JMeter 的日志输出。它应该提供有关如何设置连接的线索。【参考方案2】:
这取决于您的编程技能,因为 JMeter 是唯一基于 GUI 的工具。
例如
Tsung 以内置的 Benchmarking a proxy server 支持和在功能较弱的机器上产生更多负载的可能性而闻名 Gatling 有非常好的报告和非常“令人愉快”的基于 Scala 的 DSL Grinder - 这家伙可以记录 TCP 级别的请求(而其他人只支持 HTTP)。您需要了解 Python 才能修改和创建 Grinder 脚本。有关上述工具的更多详细信息,请参阅Open Source Load Testing Tools: Which One Should You Use? 文章,希望它有助于选择正确的选项。
【讨论】:
【参考方案3】:我注意到通过 -D 支持 Socks 代理的一件事是,对我来说,“HTTP 请求”采样器不会使用 Socks 代理,除非在“HTTP 请求默认值”配置元素中我将“实施”设置为 Java。
【讨论】:
以上是关于带有 Socks 代理的 JMeter?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Socks4 代理的 Java Socket 更改为 Socks5
使用 golang 1.10.2 连接到带有 IKEv2 证书的 socks5 代理