jemter使用--5、动态数据关联

来源:互联网 发布:数据库对接方案 编辑:程序博客网 时间:2024/05/04 11:34

在HTTP请求的参数中经常会遇到一些参数的值是从服务器相应的动态数据,这些数据需要进行关联才能使得每一次请求都能成功得被服务器接受,在JMeter中采用正则表达式提取器来获取这些动态的数据。

1、正则表达式:

正则表达式允许用户从服务器响应中获取数据,作为一个后置处理器,正则表达式提取器会在每一个请求执行后再执行,正则表达式提取请求的参数值,产生模板字符串,并将结果保存到给出的变量中。

在需要获得数据的请求上右击添加一个后置处理器-->正则表达式提取器

引用名称:其他地方引用提取值的变量名称,如填写的是:str,具体的引用方式是${str}
正则表达式:提取内容的正则表达式【稍注意一下:()表示提取,对于你要提前的内容需要用小括号括起来】,正则表达式中()括起来的部分就是要提取的。.代表任意字符,+代表一次或多次,?代表不要太贪婪,在找到第一个匹配项后停止。
模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str,正则表达式的提取模式,值从1开始,值0对应的是整个匹配的表达式 如对于表达式s(.*) 值0对应str,值1对应tr
匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。
缺省值:正则匹配失败时,取的值

比如我们想要获得从服务器相应的TOKEN,就可以使用下面的正则表达式提取器。


使用时就可以使用${token}来表示获取到的TOKEN值。如下图


2、JSON Path PostProcessor

假设需要从 HTTP 的响应头中返回的 Json 格式的数据流中抽取某些特定的数据,数据格式如下:

{

   "name":"Simpsons family",

   "members":[

                {"firstName":"Homer", "lastName":"Simpson"},

                {"firstName":"Marge", "lastName":"Simpson"},

                {"firstName":"Bart", "lastName":"Simpson"},

                {"firstName":"Lisa", "lastName":"Simpson"},

                {"firstName":"Maggie", "lastName":"Simpson"}

            ]

}

 处理 Json 数据的方法是使用 JMeter 的插件,该插件可以使用 JSONPath 来获取 JSON 数据中特定位置的数据。类似于 XML 文件中的 XPath , JSONPath 可以使用简单的表达式来操作 Json 对象。 JSON Path Extractor 是一个开源的增加了 post处理器的插件,可以将该插件的 Lib 文件拷贝到 JMeter 的 lib 目录下即可。

而上文中提及的需要定位的数据可以使用如下的JSONPath 进行描述:

$.members[2].firstName

在 JMeter 中,只需要从 PostProcessor 菜单中打开 JSON Path Extractor 然后输入变量名与默认值即可,如下所示:

 


0 0
原创粉丝点击