From b9bf614fd641f8961f87ab716e9513a2f71ce783 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sun, 17 Apr 2022 11:41:46 +0800 Subject: [PATCH] fix #1247: catch exceptions when getting socket address failed --- docs/CHANGELOG.md | 5 +++++ httprunner/client.py | 23 +++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 3be4849b..f676a94d 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,10 @@ # Release History +## 3.1.9 (2022-04-17) + +- fix #1247: catch exceptions caused by GA report failure +- fix #1246: catch exceptions when getting socket address failed + ## 3.1.8 (2022-03-22) - feat: add `--profile` flag for har2case to support overwrite headers/cookies with specified yaml/json configuration file diff --git a/httprunner/client.py b/httprunner/client.py index 841ba1f2..fa4cab71 100644 --- a/httprunner/client.py +++ b/httprunner/client.py @@ -180,20 +180,19 @@ class HttpSession(requests.Session): response_time_ms = round((time.time() - start_timestamp) * 1000, 2) try: - client_ip, client_port = response.raw.connection.sock.getsockname() - except AttributeError: - client_ip, client_port = response.raw.connection.sock.socket.getsockname() - self.data.address.client_ip = client_ip - self.data.address.client_port = client_port - logger.debug(f"client IP: {client_ip}, Port: {client_port}") + client_ip, client_port = response.raw._connection.sock.getsockname() + self.data.address.client_ip = client_ip + self.data.address.client_port = client_port + logger.debug(f"client IP: {client_ip}, Port: {client_port}") + except Exception: + pass try: - server_ip, server_port = response.raw.connection.sock.getpeername() - except AttributeError: - server_ip, server_port = response.raw.connection.sock.socket.getpeername() - self.data.address.server_ip = server_ip - self.data.address.server_port = server_port - logger.debug(f"server IP: {server_ip}, Port: {server_port}") + server_ip, server_port = response.raw._connection.sock.getpeername() + except Exception: + self.data.address.server_ip = server_ip + self.data.address.server_port = server_port + logger.debug(f"server IP: {server_ip}, Port: {server_port}") # get length of the response content content_size = int(dict(response.headers).get("content-length") or 0)