Set an XPath assertion from a CSV file on JMeter

Mathieu B

I'm using JMeter for regression tests on Webservice. I'm trying to use an Xpath assertion using a CSV file to avoid creating several XPath assertions.

Here's an overview of my CSV file test.csv (it defines an expected value for each field) :

field1,value1
field2,value2
field3,value3

And here's my Xpath assertion :

//Envelope/Body/response/result/data/types/${field)}[text()='${value)}']

Where field & value are my variables names in my CSV Data Set Config.

When I run my test with 1 iteration, it checks the response with the first line of my CSV. I have to put at least 3 iterations on my thread group to make sure each line of my CSV is used.

I've tried CSVRead function with this kind of Xpath assertion :

//Envelope/Body/response/result/donnee/types/${__CSVRead(test.csv,0)}[text()='${__CSVRead(test.csv,1)}']

But I don't know how to loop on it. I don't know if it's possible.

Dmitri T

I would recommend building your project as follows:

  • HTTP Request or SOAP/XML-RPC Request Sampler (which returns XML data)
  • Loop Controller (with number of loops matching number of lines in your CSV file

    • Beanshell Sampler (put below code to "Script" area)

          return ctx.getPreviousResult().getResponseDataAsString();
      
      • CSV Data Set Config
      • XPath Assertion

Beanshell Sampler will just fetch response data from the parent HTTP Request or SOAP Request without re-executing the request so you will be able to re-use response data as many times as required.

  • ctx - shorthand to JMeterContext instance
  • ctx.getPreviousResult() - returns SampleResult class instance holding information on previous (HTTP or SOAP) request response. Make sure that there is no any other samplers (Debug, Test Action, etc.) in-between HTTP Request and Loop Controller, elsewise you'll get wrong response data
  • getResponseDataAsString() - self-explanatory

For more information on Beanshell scripting in Apache JMeter refer to How to use BeanShell: JMeter's favorite built-in component guide.

If you have any problems check out XPathNameSpaceAssertionDemo project

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JMeter上从CSV文件设置XPath断言

来自分类Dev

jmeter中具有file1.csv和file2.csv的嵌套循环

来自分类Dev

Reading data from a CSV file

来自分类Dev

使用JMETER CSV Date set config时如何将请求正文中的CSV文件中的数据转换为JSON

来自分类Dev

使用Java从Jmeter将Assertion模块添加到HashTree

来自分类Dev

Reading data from a CSV file in Python

来自分类Dev

Only remove duplicates records from csv file

来自分类Dev

StreamReader not reading japanese characters from csv file

来自分类Dev

Reading a specific line from CSV file

来自分类Dev

在Xpath断言中声明多个JMeter变量

来自分类Dev

JMeter XPath提取器无法正常工作

来自分类Dev

Jmeter:CSV加载多线程

来自分类Dev

jmeter maven csv jtl文件

来自分类Dev

ScatterChart in NVD3 – Reading the data from csv file

来自分类Dev

Deleting csv file vales from mysql table using single query

来自分类Dev

JMeter:使用哪个:CSV,数组或数组列表?

来自分类Dev

JMeter CSV文件未按顺序循环

来自分类Dev

jMeter:对每个线程使用单独的.csv文件

来自分类Dev

动态更改从JMeter中的CSV读取的值

来自分类Dev

Apache Jmeter从csv文件读取SQL变量

来自分类Dev

jMeter:对每个线程使用单独的.csv文件

来自分类Dev

如何使JMeter从csv读取唯一值

来自分类Dev

随机 csv 数据 jmeter maven 设置

来自分类Dev

来自CSV的JMeter动态http请求参数

来自分类Dev

jmeter - 如何从csv跳过特定行

来自分类Dev

Logstash: Enrich event from log file with data from static csv file

来自分类Dev

我如何在JMeter中使用XPATH获得此值

来自分类Dev

是否可以在xpath断言中使用jmeter变量?

来自分类Dev

Xpath提取程序未在Jmeter中返回值

Related 相关文章

热门标签

归档