JMeter动态请求

时间:2017-06-07 08:29:57

标签: jmeter

我需要使用带有来自csv的读取值的标题项行来测试Web服务。

<urn:Requisition_BudgetReqExportHeaderDetails_Item>
        <!--Zero or more repetitions:-->
        <urn:item>
           <urn:CompanyCode>
              <urn:UniqueName>?</urn:UniqueName>
           </urn:CompanyCode>
           <urn:ERPRequisitionID>?</urn:ERPRequisitionID>
           <urn:HoldTillDate>?</urn:HoldTillDate>
           <urn:IsServiceRequisition>?</urn:IsServiceRequisition>
           <urn:Name>?</urn:Name>
        </urn:item>
</urn:Requisition_BudgetReqExportHeaderDetails_Item>

我可以从CSV文件中读取值,但此Web服务很复杂,项目可能是1或大于2。

如何处理此网络服务请求?

1 个答案:

答案 0 :(得分:1)

您可以使用JSR223 PreProcessor之类的:

  1. 将JSR223 PreProcessor添加为您的请求的子项
  2. 将代码生成XML脚本生成&#34;脚本&#34;区域,一个例子如下:

    def writer = new StringWriter()
    def xml = new groovy.xml.MarkupBuilder(writer) 
    
    xml.records() { 
        car(name:'HSV Maloo', make:'Holden', year:2006) {
            country('Australia')
            record(type:'speed', 'Production Pickup Truck with speed of 271kph')
        }
        car(name:'Royale', make:'Bugatti', year:1931) {
            country('France')
            record(type:'price', 'Most Valuable Car at $15 million')
        }
    }
    
    sampler.addNonEncodedArgument("", writer.toString(), "")
    

    根据您的要求修改

  3. 当您运行测试时,JSR223 PreProcessor将生成请求正文并将其设置在HTTP Request sampler
  4. 参考文献:

    • sampler - HTTPSamplerProxy类的简写,请参阅JavaDoc了解所有可用的方法和字段
    • Groovy - Creating XML - 了解如何使用Groovy语言创建XML数据
    • Groovy is the New Black - 介绍JMeter中的Groovy脚本