WebAPI接口的自動化測試1

自動化測試要知足四個條件:python

     1 - 自動化用例可以完成全部測試步驟   -------- postman不支持  沒有完整的用例管理系統git

     2 - 每一個用例的輸入數據,必需要自動填入  -------- postman支持github

     3 - 每一個用例的結果檢查,必須能夠用代碼自動完成   ------ postman支持web

     4 - 具有環境初始化和清除功能  ------   postman不支持  postman受到沙盒限制並不能任意引用第三方庫json

python語言也能夠實現web api接口測試。主要是構造出相應的http請求。api

               * 內置庫有 httplib    urllib2服務器

               * 第三方庫 urllib3    requests   pyCurlapp

所以,要想進行接口自動化,咱們就來了解下Request庫。post

-----------------------------------------------------------------------------------------------------------------------------------------------------------------測試

Requests庫:第三方庫,簡單易用、功能強大,是python實現的最簡單易用的HTTP庫。

      須要手動安裝: pip  install  requests   提示successful即安裝成功,模塊requests就能夠使用了   import  requests

  構建各類http請求:

         requests.get('htpps://api.github.com/events')  ---------   http.get請求

         requests.post('http://httpbin.org/post', data={'key':'value'})    ----------- http.post請求

         requests.put('http://httpbin.org/put', data={'key':'value'})  ------------ http.put請求

         requests.delete('http://httpbin.org/delete')    ------------  http.delete請求

  構建URL參數:

         payload = {'key1':'value1', 'key2':'value2'}

         requests.get('http://httpbin.org/get', params=payload)

  構建請求頭: 

         只須要簡單的傳遞一個字典給headers參數就能夠了,如:

         h = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36....'}

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

  定製請求體:

         ① 請求體類型 Content-Type:   application/x-www-form-urlencoded

         只須要簡單的穿衣一個字典給data參數就能夠了,如:

         payload1 = {‘action’: 'add_course',

                          'data':'''{

                                 'name':'數學',

                                  'desc':'數學課程',

                                  'display_idx': '4'

                          }'''

                 }

         resp  = request.post(url, data=payload1)

         ② 請求體類型 Content-Type:  application/json

         能夠將字典直接傳遞給json參數  如:

         payload2 = {‘action’: 'add_course', 'data':{ 'name':'數學',  'desc':'數學課程',  'display_idx': '4'}}

         resp = requests.post(url, json=payload2)

  查看響應內容:  

         先獲取到響應對象resp =  requests.post(url, data=payload)  就能夠查看服務器返回的各類消息內容

         查看響應頭   ----- resp.headers

         查看響應體   ----- resp.text

         若是響應體恰巧是json格式   resp.json()   自動把json格式的字符串轉成python對象,一般都是字典類型。

         那麼再獲取字典裏面具體的值就好操做了。如:

             retObj = resp.json()

             if  retObj['retcode'] == 0:

                       print('pass')

             else:

                       print(retObj['retcode'])                                                    

相關文章
相關標籤/搜索