接口自动化(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)

 

 再次执行测试用例后,生成了美观的测试报告

posted @ 2021-08-31 13:46  Tester-**  阅读(372)  评论(0编辑  收藏  举报