Jmeter多接口测试之参数传递

接口测试包含单接口测试和多接口测试,经过组合多个接口实现一组功能的验证称为多接口测试,单接口重在单个接口多种请求组合的响应断言,多接口重在组合不一样接口,实现流程的串联和验证。多接口测试涉及到接口之间参数的传递,好比AB两个接口协同完成一个功能,A接口的响应要做为B接口的输入,此处就须要用到Jmeter的关联功能。本文提供两个接口的串联示例,展现如何应用Jmeter实现多接口的参数传递。正则表达式

关联就是把应用中动态变化的数据获取到,将它保存为参数,提供给后面须要用到的地方进行使用,经过关联能够实现多接口之间的参数传递。Jmeter经常使用两种关联组件:测试

  • 正则表达式提取器spa

  • Json Extractordebug

 

 

 

接口示例blog

 接口A:输入用户名,密码建立用户,返回新增用户id接口

 接口B:输入用户id,用户名,密码等信息实现编辑用户(B接口基于A接口返回的新增用户id实现数据修改)字符串

正则表达式提取器io

正则表达式提取器是一种后置处理器,它能够经过正则的方式提取请求中的响应数据,Jmeter的正则表达式提取器有以下选项模板

 引用名称:存储匹配结果的变量名称,能够是一个值也能够是一组值变量

 正则表达式:匹配的正则表达式,正则表达式里面能够有多个正则

 正则贪婪模式和非贪婪模式匹配:贪婪模式会尽量多的匹配内容,非贪婪模式会尽量少的匹配内容,贪婪模式和非贪婪模式的区别是在正则匹配后是否有?

 

 模板:正则表达式提取器类型,样式为:$n$,模板可自由组合,拼接组成新的字符串内容。

 模板为$0$,则为整个表达式匹配到的内容;

 模板为:$1$,则对应正则表达式中的第一个小括号内()匹配的内容;

 模板为$2$,则对应正则表达式中的第二个小括号()匹配的内容;

 模板为$1$$2$,则把2个()所匹配的内容拼接起来,$1$aa$2$拼接两个变量的内容,并在中间加上aa

 

 匹配数字:-1表明取所有数据,0表明随机取值,1表明取第1个数据,2表明取第2个数据

 缺省值:找不到匹配时的值

正则表达式提取实例

获取接口A的响应报文

 

 

 

基于Jmeter正则表达式提取器编写以下所示后置处理器,提取出响应报文的id

 

 经过debugSampler查看变量的提取结果

 

 在接口B(修改用户)中使用接口A返回(新增用户)的参数

 

 
Json提取器

Json提取器是一种后置处理器,它能够经过解析Json报文的方式提取请求中的响应数据,Jmeter的Json提取器有以下选项

 变量名:存储提取的变量名字

 Json Path Expressions:Json Path 表达式

 Match Numbers: 匹配的数量,0表明随机获取,1表明获取第1个数据,-1表明获取全部数据

 Compute concatenation var (suffix_ALL):是否统计全部,即将匹配到的全部值保存为变量_ALL。

 Default Values: 没有匹配值时的提示信息

Json Extractor 提取到的值会存储在变量里,使用方法和普通变量同样,经过${}引用Json Extractor 的变量便可。Json Extractor存储的变量名是基于提取器中变量名称扩展的,建议经过添加DebugSampler获取Json Extractor实际存储值的变量名。

Json提取器实例

获取接口A的响应报文

 

 

基于Jmeter Json提取器编写以下所示后置处理器,提取出响应报文的id

 

 

 经过debugSampler查看变量的提取结果

 

 

在接口B(修改用户)中使用接口A返回(新增用户)的参数

 

 

 经过上述示例能够看到,正则表达式提取器和Json提取器的处理流程是一致的,只是提取方式不一样。Jmeter经过添加相应的后置处理器能够解析到请求的返回结果,而且存储为参数供后续接口使用,经过这种方式实现多请求的参数传递,从而实现接口的串联测试。

相关文章
相关标签/搜索