WebAPI接口的自動化測試2

接口認證:api

       服務器的接口須要經過一個驗證機制,這個驗證機制能夠是session或token服務器

       以session爲例。cookie

            session存儲與服務器,一般用戶登陸後,服務器會把配套的sessionid發送給客戶端session

            客戶端在下次請求服務器時會帶上這個sessionid,至關於拿了入場券post

            服務器會驗證這個入場券是否有效url

            驗證經過後纔會容許客戶端去訪問對應的接口內容對象

            以後客戶端每發送一次請求都要帶上sessionidtoken

            一樣服務器每次都會驗證其有效性接口

       一般http協議中,sessionid是放在cookies這個請求頭裏面字符串

如何獲取sessionid:兩種方法

       ① 經過登陸接口獲取Set-Cookie請求頭

            resp = requests.post(url, data=payload)     # 首先獲取到響應對象resp

            cookie = resp.headers['Set-Cookie']      # 而後獲取到請求頭中Set-Cookie的值

            sessionid = cookie.split(';')[0].split('=')[1]     # 最後用字符串分割法獲取sessionid

       ② 經過登陸接口返回的response對象直接獲取

            resp = requests.post(url, data=payload)

            cookies = resp.cookies    # 直接獲取到cookie信息

            sessionid = cookies['sessionid']   # 而後從cookie中取到sessionid的值

如何添加cookie方法:三種方法

       ① 直接添加到cookie請求頭裏

            h1 = {'Cookie': 'sessionid=imk4esz7jep90gcbt3oo790ex3srt5dc'}

            requests.get(url, headers=h1, params=payload)

       ② 直接告訴requests,讓它幫我添加添加

           cookie = {'Cookie': 'sessionid=imk4esz7jep90gcbt3oo790ex3srt5dc'}

           requests.get(url, cookies=cookie, params=payload)

       ③ 登陸接口包含了cookies信息,能夠直接獲取

           payload = {'username': 'xxxx', 'password': 'xxxx'}

           resp1 = requests.post('http://localhost/api/mgr/loginReq', data=payload)   # 獲取到響應對象resp1 裏面包含了cookies信息

           resp2 = requests.get('http://localhost/api/mgr/sq_mgr/', cookies=resp1.cookies, params=payload)   # 在作另外一個接口請求時,直接獲取登陸接口中的cookies信息

相關文章
相關標籤/搜索