最近在实习公司学习使用python做web自动化测试,其中使用到httplib这个模板,主要用于与待测试界面建立HTTP连接,发送数据请求,接收请求状态码和查询数据,验证功能。但是新版本的web界面改成使用https协议,原来的测试用例都变成无法跑通的状态。
将协议从HTTP改成HTTPS后,报以下错误:
SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol。
刚开始以为是SSL相关的错误,查询了一些博文,得出可能的原因有以下几种:
1. SSL版本错误,后来看了库文件发现默认的SSL版本PROTOCOL_SSLv23没有问题
2.” 要保证底层的socket模块是支持ssl的编译模式,即编译时ssl选项的开关是开着的“。不是很理解这句话,纠结了很久。
最后询问前辈,结果是端口错误,默认安装的socket模块应该都是支持SSL。改了端口号后,用例都运行正常了。感慨自己因为一个小错误耽误这么长时间,遇到问题还是要多加思考,自己有没有小疏漏,或者询问有经验的前辈,不能盲目的上网查询。