【问题标题】:How to configure a local proxy to send custom header request?如何配置本地代理以发送自定义标头请求?
【发布时间】:2021-07-17 17:47:13
【问题描述】:

我正在使用 jmeter 和 selenium 在网页上进行一些测试。 我需要做的是发送一些自定义标头请求,我想通过在本地使用代理服务器来做到这一点。由于几个原因,我不能使用浏览器插件,并且由于使用了 selenium,我不能使用 jmeter 标头自定义。

所以,我正在尝试使用 apache 来处理,但我对此完全陌生,可能我做错了什么。这是我从配置文件中更改的部分代码(文件末尾的最后一条指令),但没有添加标题:

###标题### RequestHeader 设置主机“summer-gc.snam.it” RequestHeader 设置 X-Dynatrace_PerfTest "SN=SUMMER_TC01.jmx;RN=01_01_login;TRT=20210422- 100000;VU=2;DUR=120;MVU=3;RMP=1"

###代理### ProxyRequests 关闭

要求所有授予

#54.90.58.153 -> postmanecho ProxyPreserveHost 开启 代理通行证/http://172.25.36.197:80/ ProxyPassReverse / http://172.25.36.197:80/ 标头添加 myheader “myvalue” RequestHeader 设置 myheader "myvalue"

我还删除了以下评论:

LoadModule headers_module modules/mod_headers.so

我必须如何设置配置文件才能发送新标头? 另外,由于我对此不是很熟练,所以我正在寻找一个可以让我轻松完成的程序(适用于 Windows)?非常感谢

【问题讨论】:

    标签: apache selenium jmeter httprequest reverse-proxy


    【解决方案1】:

    我可能对你有一个更好的想法,它是跨平台的,不需要任何软件安装/配置:考虑使用 BrowserMob Proxy 而不是 Apache 代理服务器

    1. Download BrowserMob proxy(包括所有依赖项)并将罐子放到JMeter Classpath

    2. 添加setUp Thread Group 1 个用户/1 次迭代

    3. 添加JSR223 Sampler并将以下代码放入“脚本”区域:

      def proxy = new net.lightbody.bmp.BrowserMobProxyServer()
      def proxyPort = 8080
      proxy.setTrustAllServers(true)
      proxy.addRequestFilter((request, contents, info) -> {
        request.headers().add('foo', 'bar')
        return null
      })
      proxy.start(proxyPort)
      props.put('proxy', proxy)
      
    4. 添加“正常”Thread Group

    5. 将 JSR223 采样器添加到该线程组并放入代码以实例化浏览器并打开您要打开的页面(并执行您需要做的任何其他事情)

      System.setProperty('webdriver.chrome.driver', 'c:/apps/webdriver/chromedriver.exe')
      def proxy = new org.openqa.selenium.Proxy()
      proxy.setHttpProxy('localhost:8080')
      def options = new org.openqa.selenium.chrome.ChromeOptions()
      options.setCapability('proxy', proxy)
      def driver = new org.openqa.selenium.chrome.ChromeDriver(options)
      driver.get("http://example.com")
      driver.quit()
      

      在这个阶段,代理将在来自浏览器的每个传出请求中添加标头foo,其值为bar

    6. 一个好主意是停止tearDown Thread Group 中的代理,再次添加一个 JSR223 采样器并使用以下代码:

      def proxy = props.get('proxy')
      proxy.stop()
      

    演示:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-08
      • 2013-01-24
      • 1970-01-01
      • 2012-12-09
      • 2010-11-13
      • 2017-06-20
      相关资源
      最近更新 更多