天天看點

基于requests架構實作接口自動化測試項目實戰

每天進步一點點,關注我們哦,每天分享測試技術文章

本文章出自【碼同學軟體測試】

碼同學公衆号:自動化軟體測試

碼同學抖音号:小碼哥聊軟體測試

requests庫是一個常用的用于http請求的子產品,它使用python語言編寫,在當下python系列的接口自動化中應用廣泛,本文将帶領大家深入學習這個庫,Python環境的安裝就不在這裡贅述了,我們直接開幹。

01

requests的安裝

windows下執行如下指令:

pip install requests -i http://pypi.douban.com/simple/--trust-host pypi.douban.com           

mac終端下執行如下指令:

python3 -m pip install requests -i http://pypi.douban.com/simple/--trust-host pypi.douban.com           

02

常用方法

基于requests架構實作接口自動化測試項目實戰

1、get請求實戰:

# !/usr/bin python3                # encoding: utf-8 -*-              # @author: 沙陌 微信:Matongxue_2# @Time:2021/3/25 9:54 # @Copyright:北京碼同學網絡科技有限公司
import  requests 
host='http://10.0.0.18:8080'def get():  """get接口請求:return:"""  url =host+'/pinter/com/getSku' #接口位址  params={    'id':1}  resp = requests.get(url,params=params)  status_code=resp.status_code #擷取響應狀态碼  print('響應狀态碼:{}'.format(status_code))  text=resp.text #擷取響應内容,結果類型是字元串  print('響應内容:{}'.format(text))  json=resp.json() #擷取響應内容,結果是字典類型  print('響應内容:{}'.format(json))  resp_headers=resp.headers #擷取響應headers  print('響應header:{}'.format(resp_headers))
if__name__=='__main__': get()           

結果如下:

D:\Python\Python36\python.exe D:/pycharmprojects/first/requetsstudy/pinter.py響應狀态碼:200 響應内容:{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"645","stock":709,"brand":"testfan"}}<class'dict'>響應内容:{'code':'0','message':'success','data':{'skuId':1,'skuName':'ptest-1','price':'645','stock':709,'brand':'testfan'}}響應header:{'Content-Type':'application/json;charset=UTF-8','Transfer-Encoding':'chunked','Date':'Fri,12Mar202122:13:49GMT','Keep-Alive':'timeout=20','Connection':'keep-alive'}
Process finished with exit code 0           

上述代碼中請求發起後得到一個響應對象變量resp,那麼resp對象的常用方法如下:

基于requests架構實作接口自動化測試項目實戰

2、post請求實戰

post請求的參數格式通常有多種,我們依次學習

第一種:表單形式的參數

import requests 
host = 'http://10.0.0.18:8080'def post():"""post表單:return:"""    url=host+'/pinter/com/login'    #表單參數   data={       'userName':'沙陌',       'password':'123456'     }
resp=requests.post(url=url,data=data)status_code=resp.status_code#擷取響應狀态碼print('響應狀态碼:{}'.format(status_code))text=resp.text#擷取響應内容,結果類型是字元串print('響應内容:{}'.format(text))json=resp.json()#擷取響應内容,結果是字典類型print('響應内容:{}'.format(json))resp_headers=resp.headers#擷取響應headers print('響應header:{}'.format(resp_headers))           

第二種:json格式參數

import requests
host='http://10.0.0.18:8080'def post_json(): """postjson:return:"""  url =host+'/pinter/com/register'  #header裡定義參數類型  headers={    'Content-Type':'application/json'}  #json參數  json={    "userName":"沙陌",    "password":"1234",    "gender":1,    "phoneNum":"110",    "email":"[email protected]",    "address":"Beijing"}  resp=requests.post(url=url,json=json)  status_code=resp.status_code #擷取響應狀态碼 print('響應狀态碼:{}'.format(status_code))  text=resp.text #擷取響應内容,結果類型是字元串  print('響應内容:{}'.format(text))  json=resp.json() #擷取響應内容,結果是字典類型 print('響應内容:{}'.format(json))  resp_headers=resp.headers #擷取響應headers  print('響應header:{}'.format(resp_headers))           

3、put接口實戰

import requests
host='http://10.0.0.18:8080'def put(): """put 清酒:return:"""  url = host+'/pinter/com/phone' #接口位址  #參數  json={    "brand":"Huawei",    "color":"yellow",    "memorySize":"64G",    "cpuCore":"8核",    "price":"8848",    "desc":"全新上市"}  resp=requests.put(url=url,json=json)  status_code=resp.status_code #擷取響應狀态碼  print('響應狀态碼:{}'.format(status_code))  text=resp.text #擷取響應内容,結果類型是字元串  print('響應内容:{}'.format(text))  json=resp.json() #擷取響應内容,結果是字典類型  print('響應内容:{}'.format(json))  resp_headers=resp.headers #擷取響應headers  print('響應header:{}'.format(resp_headers))           

4、delete請求

基于requests架構實作接口自動化測試項目實戰

5、request.session.request用法

免費領取 碼同學軟體測試 課程筆記+超多學習資料+完整視訊+最新面試題,可以轉發文章 + 私信「碼同學666」擷取資料哦

可以自動管理cookie,比如如下需要采用cookie認證的接口

基于requests架構實作接口自動化測試項目實戰
基于requests架構實作接口自動化測試項目實戰

結果如下:

D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter.py 響應狀态碼:200 響應内容:{"code":"0","message":"success","data":"$22,378,198"}
Process finished with exitcode 0           

6、token關聯的接口如何做呢?

基于requests架構實作接口自動化測試項目實戰

對于需要token關聯的接口來說,需要從登入接口的傳回值中提取token資訊,并傳遞給需要token的接口

基于requests架構實作接口自動化測試項目實戰

結果如下:

D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter1.py響應狀态碼:200 響應内容:{"code":"0","message":"success","data":"$74,780,457"}Process finished with exit code 0           

總結一下:

requests庫的請求方法裡參數衆多,是以簡單劃分一下:

  • 查詢參數就用 params=params
  • 表單參數就用 data=data
  • json參數就用 json=json
  • 請求頭資訊header就用 headers=headers

免費領取碼同學軟體測試課程筆記+超多學習資料+學習完整視訊,可以關注我們公衆号哦:自動化軟體測試

本文著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

繼續閱讀