如何在JMeter中添加X-Forwarded-For Request Header?

时间:2017-05-03 07:14:24

标签: jmeter performance-testing

我正在设置一个带有负载的性能测试我已经设置了100个GET请求样本请求,如下所示:

http://34.202.108.112:8080/adserver/html5/inwapads/?sleepAfter=0&adFormat=preappvideo&ak=c39ca252e3605ca216f05d4c6ed18b08&version=1.0&fullscreen=1&vdo=1&requester=dashbid&channelType=site&pageURL=http%3A%2F%2Fibtimes.co.uk&siteName=ibtimes.co.uk&refURL=ibtimes.co.uk&*ipAddress=212.232.34.134*&ua=Mozilla%2F5.0+%28Linux%3B+Android+5.0.1%3B+SCH-R970+Build%2FLRX22C%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F47.0.2526.83+Mobile+Safari%2F537.36&cb=1477379953087252374&target_params=latlong=57.6198/39.8554|geoType=1&size=x&dnt=0&output=vast;vdocookieid=af7d5dc67d7cd4e9f4a56f09d0b1046b 2351daf4-3fb3-4d5c-890c-c32672e036df 35c720f4-5bb3-45f3-b5b1-be9fcd5f2f5d

所有请求集都有不同的ipAddress,我想为每个请求添加X-Forwarded-For请求标头,其请求值与ipAddress相同。

任何建议都会有很大的帮助。

1 个答案:

答案 0 :(得分:2)

如果您从CSV文件中获取这些IP地址,则只需添加HTTP Header Manager并将其配置为:

JMeter add request header

如果您有100个具有硬编码IP地址的请求(即来自录制)仍然可以,但您需要执行一些脚本

  1. 将HTTP标头管理器添加到您的测试计划(与HTTP请求采样器相同的级别)
  2. JSR223 PreProcessor添加到您的测试计划(与HTTP请求采样器相同的级别)
  3. 将以下代码放入JSR223 PreProcessor“脚本”区域

    import org.apache.jmeter.protocol.http.control.Header
    
    def address = sampler.getArguments().getArgumentsAsMap().get("ipAddress")
    def headerManager = sampler.getHeaderManager()
    headerManager.removeHeaderNamed("X-Forwarded-For")
    headerManager.add(new Header("X-Forwarded-For", address))
    
  4. 以上代码将查找ipAddress请求参数,如果找到它,则会在请求中添加相关的X-Forwarded-For标头