WebAPI接口的自動化測試1


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

     1 - 自動化用例能夠完成所有測試步驟   -------- postman不支持  沒有完整的用例管理系統

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

     3 - 每個用例的結果檢查,必須可以用代碼自動完成   ------ postman支持

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

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

               * 內置庫有 httplib    urllib2

               * 第三方庫 urllib3    requests   pyCurl

因此,要想進行接口自動化,我們就來了解下Request庫。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

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'])                                                    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM