最近遇到下面几个问题:(亲测有用)
1. python写接口测试的时候,在mac上面执行脚本的时候一直报错
self = <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>, block = False @_sslcopydoc def do_handshake(self, block=False): self._check_connected() timeout = self.gettimeout() try: if timeout == 0.0 and block: self.settimeout(None) > self._sslobj.do_handshake() E ConnectionResetError: [Errno 54] Connection reset by peer
2. jmeter运行脚本的时候一直报错
javax.net.ssl.SSLProtocolException: Connection reset at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:126) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264) at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:259) at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:137) at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConne .....
可以看到都是和代理相关的问题
项目背景:都需要使用shadowsocks翻墙
上面的报错就是因为终端(python, jmeter)走不了shadowsocks
解决方法:
1. python接口脚本中添加代码(还可以使用proxychains https://www.jianshu.com/p/5115ea84bb90)
proxy_addr = { 'https': 'https://127.0.0.1:1080', # 本地shadowsocks代理端口 'http': 'http://127.0.0.1:1080' } r.get(url, params=data["params"], headers=self.headers, verify=False, proxies=proxy_addr)
2. jmeter在http request上配置代理(可以配在http requests default上面)