1. 程式人生 > 其它 >介面自動化(8):介面測試過程中出現報錯SSLError: certificate verify failed

介面自動化(8):介面測試過程中出現報錯SSLError: certificate verify failed

前言

  上網發現介面自動化有時候會遇到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)

再次執行測試用例後,生成了美觀的測試報告