python接口自動化6-參數化關聯

前言

接口中咱們常常須要用到參數關聯,好比,登陸token,須要傳給後面的參數使用,又好比要查看某個商品須要將商品的id傳入下一個接口使用。html

等等,因此咱們必要學會 re 正則獲取,或者返回json獲取,我的認爲 re 挺實用的。json

1、禪道-操做關閉需求爲實例

一、手工操做抓包,能夠看到下圖一個 uid 每次操做關閉需求都會不同,即爲動態參數。那咱們怎樣知道這個 uid 在哪裏獲取呢?session

二、查看上一個接口中,不難發現其 uid 就在上一個接口中。post

 

 三、既然知道了 uid 在上一個接口中,那麼咱們就能夠經過 re 提取。ui

步驟:編碼

①發送第一個接口,re 提取出 uid。url

②下一個接口,在傳參的時候,格式化輸出管理該參數,發送請求便可,以下:spa

import re
import requests
s = requests.session()

# 禪道登陸
url = 'http://127.0.0.1:81/zentao/user-login-L3plbnRhby8=.html'
par = 'account=admin&password=e10adc3949ba59abbe56e057f20f883e&keepLogin%5B%5D=on&referer=%2Fzentao%2F'
r = s.post(url, params=par)

# 查需求的 kuid 接口
r2 = s.get('http://127.0.0.1:81/zentao/story-close-2.html?onlybody=yes')
b = r2.content.decode('utf-8')
kuid = re.findall('kuid = "(.+?)"', b)     # 注意編碼格式,不然亂碼
print('獲取的kuid爲:%s' % kuid[0])        # kuid[0]則是提供下一個接口關聯的參數

# 關閉需求,%s 格式化輸出,關聯上面接口獲取的kuid
url = 'http://127.0.0.1:81/zentao/story-close-4.html?onlybody=yes'
par1 = 'closedReason=done&duplicateStory=&childStories=&comment=&uid=%s' % kuid[0]
print(par1)
r3 = s.post(url, params=par1)

 2、re 經常使用三種方法

一、取中間:(.+?)3d

import re
st = "我是一隻小小鳥,怎麼飛也飛不高?"

# 取中間「小鳥」,取出來的是list。
s = re.findall('小(.+?),', st)
print(s[0])

二、取尾:(.+?)$code

import re
st = "我是一隻小小鳥,怎麼飛也飛不高?"

# 取尾,逗號後面的所有。
s = re.findall(',(.+?)$', st)
print(s[0])

三、取前:^(.+?)

import re
st = "我是一隻小小鳥,怎麼飛也飛不高?"

# 取前,逗號前面的所有。
s = re.findall('^(.+?),', st)
print(s[0])

 你學會了嗎?歡迎來QQ交流羣:482713805

相關文章
相關標籤/搜索