• 14
  • 14
分享
  • Jmeter多接口测试之参数传递——软件测试圈
  • 北极 2021-11-03 13:14:55 字数 1587 阅读 1565 收藏 14

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

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

  • 正则表达式提取器

  • JsonExtractor

1.png

接口示例

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

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

正则表达式提取器

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

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

正则表达式:匹配的正则表达式,正则表达式里面可以有多个正则

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

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

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

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

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

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

匹配数字:-1代表取全部数据,0代表随机取值,1代表取第1个数据,2代表取第2个数据

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

正则表达式提取实例

获取接口A的响应报文

1.png

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

1.png

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

1.png

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

1.png

Json提取器

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

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

JsonPathExpressions:JsonPath表达式

MatchNumbers:匹配的数量,0代表随机获取,1代表获取第1个数据,-1代表获取所有数据

Computeconcatenationvar(suffix_ALL):是否统计所有,即将匹配到的所有值保存为变量_ALL。

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

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

Json提取器实例

获取接口A的响应报文

1.png

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

1.png

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

1.png

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

1.png

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


作者:duxf100

原文链接:https://www.cnblogs.com/duxf100/p/11534084.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言JMeter在请求时,肯定会需要参数传递,参数值如果不变动或者不需要加解密这些操作,则操作上都是比较简单。如果参数值不固定,而且需要加解密正确的时候该如何操作呢?先说一下我这个接口大概的需求:该接口主要实现获取出符合要求的二维码链接;请求参数通过RSA加密,需要生成符合要求的RSA加密值;不知道加密具体机制,但是有源码可以直接调用。实现1、生成jar包这一步很重要,如果自己熟悉java,则需要自己读懂开发的java代码,提取出我们需要的方法,对其进行修改,并且进行打包。如果不行,则可以找开发帮忙。这里不能贴出我写的源码,毕竟每个公司需求也不一样。这个步骤,我主要是对传入参数进行了修改,只需...
            0 0 1250
            分享
          •   美国国家公路交通安全管理局 (NHTSA) 关闭了针对特斯拉车辆的又一项调查,上周该机构刚刚结束了对特斯拉 Autopilot 系统的调查。  本周,NHTSA 宣布关闭一项始于 2020 年 11 月的调查,该调查旨在查明导致汽车倒车时后视摄像头图像显示丢失的触屏故障原因。  该机构于 5 月 2 日正式关闭调查,此前调查范围涵盖了 158,716 辆特斯拉汽车。NHTSA 在 2020 年的文件中描述了最初的问题:“触屏故障会导致倒车时后视摄像头图像显示丢失,从而降低倒车时的后方视野。触屏故障还会影响空调系统 (除雾) 功能以及与 ADAS、Autopilot 系统和转向灯相关的警示音...
            0 0 505
            分享
          • 启动:启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动以上需要交叉组合测试。异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)功能介绍,引导图,流量提示等:全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。权限:当某些权限被安全软件或者系统禁止时,是否可以正常使用,...
            0 0 992
            分享
          •   有道是:“观史知今当思进退,读书养志可识春秋”。  列数最近十年的重要进展,其目的还是要我们带着发展的眼光,来预测未来几年测试领域的发展,提前做好准备。  所以为了让大家阅读此文后有尽可能强烈的获得感,本文行文结构如下:  一、回顾软件测试发展的五个重要时期:  ·1957之前 - 以调试为主:独自承担需求分析,设计,研发,调试,也就是Debug。  · 1957-1978 - 以证明为主:确保程序解决它该解决的问题,证明软件是否符合需求,证明确实是有缺陷的。  · 1979-1982 - 以破坏为主:在符合需求的情况下,通过异常测试的方法,明确软件应该做什么,不应该做什么。  · 198...
            0 0 1309
            分享
          •   对于“自己适不适合转行做软件测试?”一直都是测试行业里的热门话题。随着近几 年IT互联网行业的快速发展,软件测试岗位也受到越来越多人的关注,因此有很多人都想要从事这一行业,这里主要分为两类人,一种是刚毕业的应届生,对于很多毕业大学生来说毕业等于失业;另外一种是在其他行业,没有前景没有未来,想要转行。  一、如何判断自己适不适合做软件测试?  其实对于这个问题,除了一小部分人真的在这方面有特别突出的天赋以外,是没有严格区分适合与不适合的。想大家看到的大多数软件测试行业大佬都是从小白菜鸟慢慢成长过来的。其实只要你下定决心想要去学习并坚持,你就是适合的。一名软件测试人员身上具备很多显性特征,下面...
            0 0 720
            分享
      • 51testing软件测试圈微信