Jmeter关联

作者: Jeff_9021 | 来源:发表于2020-06-08 20:44 被阅读0次

关键词:接口关联

一、接口自动化实现

http://www.manongjc.com/article/111660.html

二、Jmeter实现

在压力测试的时候,经常要将几个流程串联起来才能将程序测试通过。如:用户首先要登录,获得登录的凭证(tokenId),之后请求其他的资源的时候需要带上这个凭证,才能识别你是否是合法的用户。

jmeter关联可以通过二种方式来获取返回结果中指定的值。他们分别是正则表达式提取器、json path extractor.

(1)正则表达式提取器

创建一个线程租----》创建一个获取凭证的请求----》创建后置处理器(右击该采样器打开右键菜单 -> 添加 -> 后置处理器 -> 正则表达式提取器)

若获取的返回值未匹配到,可以把正则表达式两边匹配的数据扩大点。

引用名称:下个请求将要引用到的变量名

正则表达式:

():括起来的部分就是要提取的。

 .:匹配除换行外的任何字符串。

 +:代表+号前面的字符必须至少出现一次(一次或多次)。 

 ?:代表?前面的字符最多可以出现一次,在找到第一个匹配项后停止(0次或1次)。

 *:代表号前面的字符可以不出现,也可以出现一次或者多次(0次、1次或者多次)

 (.*):贪婪模式,匹配尽可能多的字符 

(.*?)或(.+?):匹配尽可能少的字符,一旦匹配到第一个就不往下走了。

模板:若想提取多个值的话,比如是a和b这两个值,则可以写成:$1$$2$。无论要提取多少个值,引用名称就是一个的,比如名称为id,${id_go}:获取整个字符串ab,${id_g1}:获取的是a,${id_g2}:获取的是b。

匹配数字:表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;

缺省值:表示参数没有取到值的话,默认给它的值。一般不填。

这个请求返回的数据如下:

{"message":"success","statusCode":200,"registerDay":"20","tokenId":"bf1017bc1bb495ae31764b306a3422885f5"}

我们现在要获取的是上面这个json字符串中tokenId的值,即 bf1017bc1bb495ae31764b306a3422885f5。

添加下一个请求,在这个请求中,我们要将上面的tokenId作为一个参数一并发送。

添加一个http请求(线程组右键——》添加——》Sampler——》HTTP请求)

执行后,即可通过”查看结果树“查询

(2)json path extractor 

jmeter通过安装json path extractor插件来处理json串,提取json串中的字段值。插件的下载地址:https://jmeter-plugins.org/?search=jpgc-json,下载完成,解压后,把jar文件放到Jmeter安装目录下的lib/ext下面即可。特别说明:jmeter 2.xx左右的版本尝试过无法使用该插件,在jmeter 3.xx左右的版本装完插件后能正常使用。 

需要在请求下创建后置处理器-jp@gc-JSON Path Extractor,具体的实例如下所示:

Variable names : 变量名称

JSONPath Expression:JSON表达式

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

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

比如某一请求的返回值为:

{"statusCode":200,"data":{"userId":"4a2cbe616eb74f0d99190af072c8dea6","token":"37e7a9e198186f5a443e50e6138a5bd20bd"}}

这里因为返回的是json数据,$.data.token,获取token的值。但是有碰到一个坑

另外一个接口请求返回值为:

{"statusCode":200,"data":[{"code":"407949","id":"aa477ad2085d492a99b877d14343d68d","name":"90一中4545"}]}

同样,使用$.data.id去提取id的值时,发现获取到的数据为空。原来这个responses 的data为数组,故应为 $.data[0].id 提取第1个值

关于json path相关插件的方法和使用,推荐可以看这篇博客: http://www.jianshu.com/p/56a607fc0d8f

故:需要知道上一接口返回所需参数的数据类型

参考:

https://blog.csdn.net/tomoya_chen/article/details/80626212

https://blog.csdn.net/github_27109687/article/details/71968662

http://www.cnblogs.com/0201zcr/p/5089620.html

http://blog.csdn.net/lluozh2015/article/details/54097449

相关文章

  • JMeter:参数化_后置处理器_正则表达式提取器关联

    Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式,...

  • Jmeter关联,正则表达式提取器使用

    一、Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方...

  • jmeter之关联

    一、Jmeter关联的方式: Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方...

  • 8.Jmeter关联

    一、Jmeter关联的方式:Jmeter中关联可以在需要获取数据的请求上 右键-->后置处理器 选择需要的关联方式...

  • Jmeter关联

    关键词:接口关联 一、接口自动化实现 http://www.manongjc.com/article/111660...

  • jmeter | 关联

    当参数化出现一些问题时(例如参数值是一个比较复杂的字符串时,比如数字和字母等组成的一串),需要我们使用关联功能. ...

  • 性能学习进阶笔记

    一、性能测试说明 1.jmeter≠性能,切记!!!性能和jmeter并非强关联性,jmeter、Loadrunn...

  • JMeter-接口自动化之正则表达式关联

    JMeter-接口自动化之正则表达式关联 jmeter中,接口自动化的关键在于参数关联。比如需要登录的接口,如何调...

  • 06-jmeter关联

    jmeter关联就是:从上一条请求中获取数据,使用在下一条请求中的过程。 jmeter关联有两种形式:正则和xpa...

  • (三)Jmeter关联

    在线程组内,当你想用一个请求的响应结果作为另一个请求的入参时就需要用到关联。 (1) 使用正则表达式传参 思路是先...

网友评论

    本文标题:Jmeter关联

    本文链接:https://www.haomeiwen.com/subject/jmedtktx.html