日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python写后台接口请求出错_python登录接口测试问题记录与解决

發布時間:2025/3/13 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python写后台接口请求出错_python登录接口测试问题记录与解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近做一個登錄接口測試中,發現了以下的一些場景,本次將所遇到的問題以及解決過程做下記錄:

1、抓包發現登錄操作時,先后請求三個接口,并且每個接口有關聯

2、每次請求都需要保留cookie信息,下個接口請求需要

3、每個接口返回數據非json格式,提取數據需要另外操作

本篇文檔就從這三點來開始講

1、首先看抓包情況與大致框架分析

image.png

先后請求3條接口,然后我們一條一條來分析

①整體來看,都是get請求,且共同參數都是service、callback、_,第2條和第3條都還有其他的參數

image.png

②第1條接口返回的數據中data下的兩個字段就是第2個接口的參數

image.png

image.png

③第2條接口返回數據中的某個字段是第3條接口的參數

綜合以上就寫大致的框架

#coding:utf-8

import requests,re

url = "xxxxx"

#tt就代替那個_作為參數了

def login1(service,callback,tt):

pass

#三條接口相互依賴,第2個接口參數來源第1個接口返回值

def login2():

pass

#三條接口相互依賴,第3個接口參數來源第2個接口返回值

def login3():

pass

if __name__ == '__main__':

service = 'xxxxxx'

callback = 'xxxxxxx'

tt = 'xxxxxxx'

login3(service, callback, tt)

2、然后就是正常的編寫get請求了

image.png

這里的返回值因為不是json格式,就不用json.loads() 這么寫了,先打印查看

image.png

3、上面已經說到,這里的lt和execution 都是下個接口的參數,所以此刻需要將他們的值提取出來

這就涉及到正則提取了

ps:推薦個調試的網站 http://tools.jb51.net/regex/javascript

python正則表達學習地址:https://www.jb51.net/article/177521.htm

python中這里寫起來也簡單,具體見下面腳本中的備注信息

def login1(service,callback,tt):

print("開始執行login1")

url = url1 + "/sso/login"

params = {

"service":service,

"callback":callback,

"_":tt

}

req = requests.get(url = url,params=params)

print(req.text)

#返回結果轉換為字符串

response_str = str(req.text)

#正則提取字符串信息,返回列表,提取data下的信息

m = re.findall(r'{.*?}',response_str)[0]

#data下就是key-value形式,通過eval()將字符串轉換為字典,然后字典中通過key提取到value值

lt = eval(m)['lt']

execution = eval(m)['execution']

return lt,execution

4、第2個接口編寫,并將第1個接口返回的東西帶入

def login2(service,callback,tt):

lt,execution = login1(service,callback,tt)

print("開始執行login2")

執行過程中發現報302錯誤

302錯誤:redirect,代表暫時性轉移;意思就是你訪問網址a,但是因為服務端的攔截器或者其他代碼處理,會被重定向到網址b。

利用requests模擬登錄時,直接使用request.get(url),容易造成 302 重定向,究其原因是因為cookie不持久(requests自帶cookie處理,但不持久)

所以這里 我們就需要將cookie存儲下來并使用起來

具體cookie用法見路徑:https://www.cnblogs.com/liuzhzhao/p/12114453.html

5、知道怎么使用了,那么我們代碼修改一下

image.png

后面的腳本就照葫蘆畫瓢了,第1個接口的cookie信息保存給到第2個接口使用,第2個接口的cookie保存,給到第3個接口使用

整體上就寫完了,后面需要單獨補充下就好

本次主要知識點:接口依賴調用、cookie保存與使用、python關鍵信息正則提取

總結

以上是生活随笔為你收集整理的python写后台接口请求出错_python登录接口测试问题记录与解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。