JMeter处理器09

前言

在jmeter中提供了两种处理器,用于修改请求数据或处理响应数据。

1.png
  • 前置处理器
  • 后置处理器

前置处理器

前置处理器是在请求发送前做相关处理。可以用于在请求发送前修改HTTP协议头、数据部分等等各种需要修改或设置的数据。

其作用范围内的每一个sampler元件之前执行。

2.png
  • Bean Shell PreProcessor
  • HTML链接解析器
  • HTTP URL重写修饰符
  • JDBC PreProcessor
  • jp@gc - Raw Data Source PreProcessor
  • JSR223 PreProcessor
  • RegEx User Parameters
  • Sample Timeout
  • 用户参数

注: 一般情况下,大家在实践过程中,用到前置处理器的机会比较少,这里就不一一说明了,重点放在后置处理器的讲解上。

后置处理器

后置处理器是取样器被执行后被触发执行的元素。可用于解析响应数据,提取变量,以便后续使用。

3.png

==注: json格式的支持需要安装json plugins创建==

下面我们对常用的后置处理器进行说明:

  • JSON Extractor
4.png

用于处理响应结果为json格式的内容。

Variable names : 变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据

JSONPath Expression:JSON表达式

Match Numbers:匹配哪个,可为空即默认第一个

Default Value:未取到值的时候默认值

示例

例如返回的json串为,我们提取token:
{
    "statusCode":200,
    "data":{
        "userId":"admin",
        "token":"12312312312338a5bd20bd"
    }
}

在JSONPath Expression填入: 

$.data.token

来获取token的值
例如返回的json串有数组,我们提取第二个token:
{
    "statusCode":200,
    "data":[{
        "userId":"admin",
        "token":"rwerwerwr0e6138a5bd20bd"
    },{
        "userId":"user",
        "token":"123123123123123a5bd20bd"
    }]
}

在JSONPath Expression填入: 

$.data[1].token

来获取第二个token的值(注:数组的索引从0开始表示第一个)
  • jp@gc - JSON Path Extractor
    用于处理响应结果为json格式的内容。
5.png

Destination Variable Name: 变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
JSONPath Expression:JSON表达式
Default Value:未取到值的时候默认值
具体示例请参见JSON Extractor的示例。这里不做详细示例了。

  • XPath Extractor
6.png

用于处理响应结果为xml格式的内容。
这里对关键参数进行说明:
引用名称:变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
XPath query:xpath表达式
缺省值:未取到值的时候默认值
示例

假如服务端返回如下格式的内容

<title>Apache JMeter</title>

那么我们可以通过,以下xpath表达式获取到Apache JMeter字符串

 //title/text()
 
 将该xpath表达式填入在XPath query对应输入框中。

  • 正则表达式提取器
    这是万能的提取模式了,支持使用正则表达式来提取满足要求的数据。当然你得熟练掌握正则表达式相关知识,才能游刃有余的应用。
7.png
引用名称:变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据   

正则表达式:用于匹配目标数据的正则表达式

模板:表示使用提取到的第几个值  
    $-1$:表示取所有值  
    $0$:表示随机取值  
    $1$:表示取第1个  
    $2$:表示取第二个  
    以此类推:$n$:表示取第n个  
    
匹配数字(0代表随机): 0 代表随机取值,1 代表全部取值 

缺省值: 如果正则表达式没有搜找到值,则使用此缺省值

具体的示例这里就不列举了,大家自己去尝试。

总结

本次主要就后置处理器中常用的json、xml及正则表达式处理器进行了分享。在日常测试过程中,这三种后置处理器是必须掌握的,需要深入掌握理解,同时需要对json、xpath、和正则表达式相关知识有所掌握才行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 话说LoadRunner有的一些功能,比如:参数化、检查点、集合点、关联,Jmeter也都有这些功能,只是功能可能...
    宇文臭臭阅读 287评论 0 0
  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 12,780评论 4 46
  • “陈欣怡,这份数据下班前我要看到最后的结果。” “好的,好的,马上来。” “陈欣怡,这份资料要一百份,现在,立刻,...
    庞小妹sunny阅读 3,382评论 7 8
  • 岁岁高考,今又将高考。不知不觉参加高考已过十年,其中艰辛与当下学子们无异。 韬光养晦赋聪资,展露锋芒用剑时。酷暑案...
    风小扬阅读 634评论 2 3