2017-06-07 115 views
0

我需要使用csv中的读取值来测试带有标题项行的Web服务。JMeter动态请求

<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个以上。

我如何处理这个Web服务请求?

回答

1

您可以使用JSR223 PreProcessor,如:

  1. 添加JSR223预处理器为您的要求
  2. 的孩子把代码来生成XML有效载荷送入“脚本”区域,例如一个看起来像:

    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. 当您运行测试的JSR 223预处理器将产生的请求主体,并将其设置在HTTP Request采样

参考文献:

  • sampler - 一个速记HTTPSamplerProxy类,查看javadoc了解所有可用的方法和字段
  • Groovy - Creating XML - 学习如何使用Groovy语言创建XML数据
  • Groovy is the New Black - JMeter中Groovy脚本的介绍
+0

感谢您的回答。我如何使用csv值? – ulysses

+0

你有'vars'简写代表[JMeterVariarbles](https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html)类实例,所以如果你想要使用'$ {foo }'变量应该像'def myFooVariable = vars.get('foo')'' –