介面自動化(8):介面測試過程中出現報錯SSLError: certificate verify failed
阿新 • • 發佈:2021-09-01
前言
上網發現介面自動化有時候會遇到SSLError: certificate verify failed發現很有意思於是記錄下來
程式碼
import urllib.request
weburl = "https://www.douban.com/"
webheader = {
'Accept': 'text/html, application/xhtml+xml, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
}
req = urllib.request.Request(url=weburl, headers=webheader)
webPage = urllib.request.urlopen(req)
data = webPage.read().decode('utf-8')
報錯資訊
python實現自動化介面請求中,當使用urllib.urlopen開啟一個 https 連結時,會驗證一次 SSL 證書。而當目標網站使用的是自簽名的證書時就會丟擲此異常:
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
修改
requests.get(url, params=None, verify=False)
requests.post(url, data=None, json=None, verify=False)
另一個問題
當我們按照上述的方法修改後,會衍生出另一個問題(我們測試通過了,但是使用有一條警告顯示,最終生成的測試報告也不美觀,如下圖)
解決辦法
我們可以在封裝的requests模組下加入如下程式碼
import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
再次執行測試用例後,生成了美觀的測試報告