其他分享
首页 > 其他分享> > Jmter前/后置处理器

Jmter前/后置处理器

作者:互联网

所谓的前/后置处理器,就是处理请求发送之前和响应之后要做的事情,常用的有:

我们先来说后置处理器,而beanshell我们将单独拿出来说。

后置处理器

后置处理器常用来从响应中提取数据用作它用,主要包括:

json提取器

http://www.neeo.cc:6001/get?user=admin&pwd=1234

# response body
{
  "args": {
    "pwd": "1234", 
    "user": "admin"
  }, 
  "headers": {
    "Connection": "keep-alive", 
    "Host": "www.neeo.cc:6001", 
    "User-Agent": "Apache-HttpClient/4.5.10 (Java/1.8.0_201)"
  }, 
  "origin": "222.35.243.75", 
  "url": "http://www.neeo.cc:6001/get?user=admin&pwd=1234"
}

我们使用json提取器提取向响应体中的的args的user值。

在线程组内,新建一个HTTP请求取样器,然后配置如下:

如何提取响应体的中的指定字段呢?

这里就要用到了json提取器了:

image-20200602101718780

各参数:

然后,我们在察看结果树中的调试取样器中看到提取的值:

此时,提取出来的user值是全局的,可以在别处直接使用。当然,具体的使用方式,后续结合实际的应用场景来讲解。

正则提取器

json提取器有一定的限制,它做不到正则匹配那么灵活,所以我们还需要学习在jmeter中如何使用正则表达式提取器。

正则表达式提取器三步走,轻松提取数据:

OK啦,这里正则提取非常的简单。

http://www.neeo.cc:6002/pinter/bank/api/login
# post
# 参数
userName=admin
password=1234

如上示例,我们提取该请求的返回的cookies值。

在线程组内,新建一个HTTP请求取样器,然后配置如下:

该请求的返回的cookies值在响应头中:

那如何使用正则表达式提取器来响应头中提取呢?

说实话,jmeter汉化的是在不太好,有些情况下倒不如英文那么原汁原味,所以,下图语言是英语。

常用的参数:

然后,我们在察看结果树中的调试取样器中看到提取的值:

 

前置处理器

前置处理器(Pre Processors)常用来在请求之前提前作一些处理,常见的前置处理器有:

在前置处理器中,最常用的是JDBC和BeanShell两个处理器,其他的用的较少。

用户参数

提前准备一些参数用于在请求中携带一些参数,但是它只作用于当前的线程组中,不像在测试计划中的参数作用于全局。

http://www.neeo.cc:6001/get
# get

我们在测试计划中,新建两个线程组,并且都将线程数设置为2;新建一个查看一个察看结果树,移动到测试计划下,用来监听两个线程组的执行情况。

在第一个线程组tes1内添加一个用户变量前置处理器:

配置如下:

在两个线程组内分别新建一个HTTP取样器,设置如下:

上面两个取样器的设置基本一致;其中参数用户名和密码都是从"用户变量"前置处理器中提取的。

来运行一波,察看结果树中:

可以看到,由于线程组的线程数设置的是2,那么每个线程组内的HTTP取样器应该执行两次;

并且线程组test1的请求成功的从"用户变量"中提取出了值,而且是分别取的;由于线程组test2内没有"用户变量",所以请求中没有提取到值,这也证明了,开头说的,"用户变量"只作用于当前线程组,而无法作用于全局。

标签:提取,请求,后置,Jmter,json,取样器,处理器,线程
来源: https://www.cnblogs.com/TodayWind/p/16275453.html