jmeter压测学习4-正则表达式提取

前言

上一个接口返回的token作为下个接口的入参,除了前面一篇讲到的用json提取器提取,也可以用正则提取。
json提取器只能提取json格式的数据,正则可以匹配任意的返回。

我现在有一个登陆接口A,登陆成功后返回一个token值。有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问
A接口登录接口文档基本信息

  • 访问地址:

    http://127.0.0.1:8000/api/v1/login/

  • 请求类型:

    POST

  • 请求头部:

    application/json

  • 请求参数:

    {“username”:”test”, “password”:”123456”}

A接口的请求和返回的报文信息如下

D:\>http http://127.0.0.1:8000/api/v1/login/ username=test password=123456 -v
POST /api/v1/login/ HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Host: 127.0.0.1:8000
User-Agent: HTTPie/1.0.3

{
"password": "123456",
"username": "test"
}

HTTP/1.1 200 OK
Allow: POST, OPTIONS
Content-Length: 109
Content-Type: application/json
Date: Sat, 21 Sep 2019 15:37:06 GMT
Server: WSGIServer/0.2 CPython/3.6.0
Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

{
"code": 0,
"msg": "login success!",
"token": "234af73571da46ade79ea6a74961b1d23d609b79",
"username": "test"
}

B接口获取绑定卡号的接口文档基本信息

  • 访问地址:

    http://127.0.0.1:8000/api/v1/user/info/

  • 请求类型:

    GET

  • 请求头部:

    Content-Type: application/json

  • 请求头部token参数:

    Authorization: Token xxxxx login token xxxxx

登录请求

先在jmeter里面添加http请求,填登录接口的参数

HTTP信息头管理器添加post请求类型:Content-Type: application/json

运行之后查看结果数,可以看到正确的返回我们想要的token值

正则提取器

添加后置处理器-正则提取器

返回的结果,从结果中提取token对应的值:50c7e57363141459fab998376350ed3c3dee1baf

{"code": 0, "msg": "login success!", "username": "test", "token": "50c7e57363141459fab998376350ed3c3dee1baf"}

正则提取器参数说明:

  • 要检查的响应字段:样本数据源,默认选主体。

  • 引用名称:其他地方引用时的变量名称(re_token),可自定义设置,引用方法:${引用名称}

  • 正则表达式:数据提取器,()括号里为你要获取的的值,如:”token”: “(.*?)”

  • 模板:$$对应正则表达式提取器类型。-1全部,0 随机,1第一个2第二个,以此类推,若只有一个正则一般就填写$1$

  • 匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。
    -1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1

  • 缺省值:匹配失败时的默认值,可以随便写个,不写也可以,或者勾选失败时候使用空值

引用参数

下个请求引用上面的token参数

查看结果,引用成功

(0)

相关推荐

  • 性能测试总结

    一.概念了解 1. 性能测试的维度和类型 编号 类型 概念 标准 举例 1 基准测试 给系统施加较低压力,查看系统运行状况并记录相关数据作为基础参考 10%~20% 软件最多只给100个人使用,先用1 ...

  • Jmeter取样器中参数和消息体数据用法区别

    初始用Jmeter本想先学习嘛,想整个简单的接口调用,就公司系统的登录接口吧, 结果就一登录接口就遇到各种问题,尤其是在登录接口传入的参数问题耗了很长时间. 步骤: 添加线程组(默认配置即可) 添加一 ...

  • jmeter压测学习5-XPath提取器

    前言 有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面. 并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数,如:csrfmidd ...

  • jmeter压测学习2-linux运行jmeter环境

    前言 使用jmeter做压测的时候,在windows上不太稳定,所有一直在linux服务器上使用jmeter做压力测试. 本篇记录下linux上搭建jmeter环境,以及运行jmeter脚本,查看报告 ...

  • jmeter压测学习3-提取json数据里面的token参数关联

    前言 现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值. 上一个接口返回的token作为下个接口的入参. 案例场景 我现在有 ...

  • jmeter压测学习7-登录参数化(CSV 数据文件设置)

    前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况. 如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有 ...

  • jmeter压测学习8-压测带token的接口

    前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...

  • jmeter压测学习11-模拟浏览器访问web页面

    前言 在做性能测试的时候,有时候我们希望测试用户访问一个web页面的加载时间,使用 jmeter 压测的话,需模拟浏览器的行为,加载整个页面的内容. 包含一些js,css,png图片资源等文件的加载. ...

  • jmeter压测学习14-jmeter返回内容中文乱码问题

    前言 在使用 jmeter 测试的时候,有些 html 页面返回的中文内容显示乱码,导致无法正常查看中文的内容 乱码场景 在打开百度页面时,返回的html内容中文显示乱码,如下图所示 出现乱码的原因, ...

  • jmeter压测学习13-添加配置元件之HTTP请求默认值

    前言 在使用jmeter测接口的时候,当我们的接口数量越来越多的时候,在每个接口里面都需要添加服务器ip和端口. 当测试环境的ip和端口发生改变时,需一个个去修改这时候去维护接口就很麻烦,我们希望有个 ...

  • jmeter压测学习12-设置持续压测时间(调度器的使用)

    前言 使用jmeter 做压测的时候,希望对一个接口持续压测 10 分钟或者半小时,可以使用调度器设置持续压测时间. 设置样本总数 压测方式有2种,一种是设置线程组和循环次数,这样可以设置一个样本总数 ...