Jmeter接口测试,怎么在下一个接口调用上一个接口的数据
常用的两种方式,第二种容易上手
1、使用正则提取器
jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器(http://www.cnblogs.com/0201zcr/p/5089620.html)
1、简介
2)、创建一个获取凭证的请求
4)、正则表达式提取器配置
- 引用名称是下个请求将要引用到的变量名;
- 正则表达式是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
- 模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
- 匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
- 缺省值表示参数没有取到值的话,默认给它的值。一般不填。
这个请求返回的数据如下:
{"message":"success","statusCode":200,"registerDay":"20","tokenId":"bf1017bc1bb495ae31764b306a3422885f5"}

6)、添加查看结果树
7)、执行后,即可通过”查看结果树“查询
2、JSON Extractor
JMeter处理responses 的json(http://blog.csdn.net/lluozh2015/article/details/54097449)
对于请求1返回的结果,处理以后作为请求2的参数,JMeter提供了正则表达式提取器
如下:
这样也可以通过正则表达式获取responses的某个值
但是对于大部分请求返回的结果,都是json,有一个更方便使用的插件:JSON Extractor
不过得首先下载插件 https://jmeter-plugins.org/wiki/JSONPathExtractor/
下载后解压以后将lib和lib/ext中的jar包放到安装目录对应位置,重启即可
简单介绍一下该插件怎么使用
该插件为:
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个值
如下:
Jmeter接口测试,怎么在下一个接口调用上一个接口的数据的更多相关文章
- 在小程序中修改上一个页面里data中的数据调用上一个页面的方法
//获取已经打开的页面的数组 var pages = getCurrentPages(); //获取上一个页面的所有的方法和data中的数据 var lastpage = pages[pages.l ...
- 接口需要上一个接口的返回值(unittest)
import unittest,requests ''' 使用unittest框架的时候,这个接口需要上一个接口的返回值 ''' class Test_case(unittest.TestCase): ...
- 从一个Activity返回上一个Activity
从一个Activity返回上一个Activity 要求:保留上一个Activity的数据 方法: 第一步:从Activity1转向Activity2时,用startActivityForResult而 ...
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考原贴地址:https://blog.csdn.net/clementad/article/details/47339519 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Trans ...
- 【转】在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考 原文链接 @Transactional does not work on method level 描述 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational) ...
- C#一个窗体调用另一个窗体的方法
一个窗体调用另一个窗体的方法:例如:窗体B要调用窗体A中的方法1.首先在窗体A中将窗体A设为静态窗体public static FormA m_formA; //设此窗体为静态,其他窗体可调用此 ...
- vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...
- WinForm中一个窗体调用另一个窗体
[转] WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码) //如果想打开一个 Form2 的窗体类,只需要: Form2 form = new Form2(); //有没有参数得看 ...
- android中按back键返回上一个activity,如何重新调用上一个activity的oncreate方法?
默认情况下是不会调用的. @Override public void onBackPressed() { String titleStr = edittitle.getText().toString( ...
随机推荐
- LOJ6029 [雅礼集训2017]市场
看到区间整除操作,直觉是不会除太多次就变成全 \(1\). 然而现在还有加操作. 我也不知道为什么,当一个节点的 \(\lfloor\frac{mx}{d}\rfloor=\lfloor\frac{m ...
- JS中的undefined,null,"",0,'0'和false
){ console.log(); } '){ console.log() } '){ console.log() } if(false==0.0){ console.log() } if(false ...
- jvm 性能调优工具之 jmap
概述 命令jmap是一个多功能的命令.它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息.查看 ClassLoader 的信息以及 finalizer 队列. jmap ...
- LeetCode 150:逆波兰表达式求值 Evaluate Reverse Polish Notation
题目: 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. Evaluate the value of an arithm ...
- LibLog 类库 分析
前期思考: Microsoft.Logging 是否可用? 是否需要提供默认的 Logger 实现? 不需要.1,用户自己开启日志功能,设置开启属性,即可打印出相应的日志. LibLog 类库分析: ...
- Window权限维持(八):时间服务器
Windows操作系统正在利用时间提供者体系结构,以便从网络中的其他网络设备或客户端获取准确的时间戳.时间提供者以DLL文件的形式实现,该文件位于System32文件夹中.Windows启动期间将启动 ...
- jetty9部署
https://blog.51cto.com/5404542/1751702 Jetty 9部署web应用 Jetty相关的文章比较少,不过官方文档挺齐全的.做下记录也是好事. jetty9跟 ...
- mongodb复杂条件查询 (or与and)
分类专栏: mongodb 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/tjbsl/ ...
- C#网页 截图
using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Threading; using S ...
- datatable转layui表格v2[分页and带模板]【偏实例】
本项目由普通mvc+webapi接口构成.按执行顺序,代码如下:主控制器:public ActionResult Index(int id=0) { ViewData["myid" ...