JMeter:如何从线程组中的每个请求中删除本地HTTP标头管理器?

时间:2017-05-08 17:32:10

标签: http-headers jmeter beanshell

以下是图片链接:https://i.stack.imgur.com/fIg3R.png

我为每个请求都有本地标题管理器。我也有全球一个。 [请查看图片]我想删除所有请求的本地标题管理器。

我通过创建预处理器并编写" sampler.getHeaderManager()。removeHeaderNamed(" HTTP Header manager");"在里面。但是,它没有用。因此,它无法验证凭据。

我也试过" sampler.getHeaderManager()。remove(0)"。这也没有用。 remove(1)忽略全局标题管理器。

2 个答案:

答案 0 :(得分:0)

这是我的建议。按照以下步骤操作时必须小心。我遵循这个技巧来取代动态值。

  1. 进行JMeter脚本的备份

  2. notepad++中打开脚本。

  3. 查找标题管理器标记。它就是这样的 <hashTree><HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"><collectionProp name="HeaderManager.headers"/></HeaderManager><hashTree/>

  4. 如果您有许多Header Manager Name且其名称唯一,则可以在记事本++中使用regular expression

    notepad++

    中注明ex语法

    <hashTree><HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="(.+)" enabled="true"><collectionProp name="HeaderManager.headers"/> </HeaderManager><hashTree/>

    Reg Ex in Notepad++

    1. 使用empty将其替换为Find and Replace值。
    2.   

      在更换时,请注意<hashtree></hashtree>标签,任何冲突都会导致脚本损坏。使用Test Plan Check Tool插件验证您的测试计划。请访问此链接以了解更多https://jmeter-plugins.org/wiki/TestPlanCheckTool/

      1. 保存并在JMeter中打开。
      2. 之前

        Before

        After

答案 1 :(得分:-1)

  1. 为您的“全球”标题管理员提供不同的名称
  2. 通过Taurus工具运行测试。 Taurus自然支持JMeter测试执行,并在顶部添加一些额外的功能,例如Modifications for Existing Scripts。假设您的测试被称为test.jmx,相关的Taurus配置文件将如下所示:

    ---
    execution:
      scenario:
        script: test.jmx
        modifications:
          disable: HTTP Header Manager
    

    如果您将其保存为test.yml并执行金牛座:

    bzt test.yml -gui 
    

    JMeter实例将启动并打开脚本,并禁用Header Manager元素。

  3. 有关该方法的更多信息,请参阅Navigating your First Steps Using Taurus文章。

    目前无法以编程方式完全删除测试元素,您只能删除单个标题。展望未来,您可能需要取消HTTP(S) Test Script Recorder下的Capture HTTP Headers框,以避免出现这种情况:

    HTTP(S) Test Script Recorder Capture Headers