前言
上一個接口返回的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參數
查看結果,引用成功
上海-悠悠,QQ交流群:750815713