Python-requests介面自動化小記
之前用過Jmeter和Postman做http介面請求,因工作需要需用程式碼自動化跑覆蓋,我用的是python語言;經過快2周的實踐,已經基本可以實現介面自動化,現將使用過程中遇到的問題和大家分享下。
1、請求https安全問題:
1.1 使用過程中報錯SSL errorException:
這種問題基本在請求里加入一個引數就可以搞定,verify = False;
requests.post/get(url,param,verify = False)即可。
1.2 ...\site-packages\urllib3\connectionpool.py:858: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)
這種警告資訊,在我們做介面測試中可忽略,如果想不顯示在控制檯,可進行如下操作:
import urllib3
urllib3.disable.warning()
2、請求post中入參問題:
2.1 會報各種問題,例如:引數不能為空、請求後結果報錯bizerror...等等;基本這種情況可以確定是傳遞的param引數格式問題或者指定的content type格式問題,以下用"content-type":'application/x-www-form-urlencoded; charset=UTF-8'為例,這些從Request-Headers中即可拿到。
content-type確定後,看data,從Form Data中可看到,資料的大概格式,此處處理要特別小心,很容易出錯,但簡單歸納就是key-value形式傳遞;
filterMap即為key,後面的{...}即為value,value需要通過json解析;
實際傳遞時需要引數格式為data= {'filterMap':json.dumps(value)}
如果這步搞定,基本post請求算是成功了,具體的業務和資料傳遞不同當自行分析處理,如果有不明白的可以留言給我,一起探討。
框架用的是unittest,資料核對斷言,清除等、有的點沒有一一去羅列,暫時寫這些,希望能幫到需要的人吧!