diff --git a/.github/workflows/hrp-release.yml b/.github/workflows/hrp-release.yml index 69d53d1f..4dbb86bc 100644 --- a/.github/workflows/hrp-release.yml +++ b/.github/workflows/hrp-release.yml @@ -4,6 +4,9 @@ on: release: types: [created] +env: + DISABLE_GA: "true" + jobs: releases-matrix: name: Release hrp cli binaries diff --git a/.github/workflows/hrp-scaffold.yml b/.github/workflows/hrp-scaffold.yml index 06b8736a..305696ca 100644 --- a/.github/workflows/hrp-scaffold.yml +++ b/.github/workflows/hrp-scaffold.yml @@ -6,6 +6,9 @@ on: - master pull_request: +env: + DISABLE_GA: "true" + jobs: scaffold-with-python-plugin: strategy: diff --git a/.github/workflows/smoketest.yml b/.github/workflows/smoketest.yml index 5dcb41dd..3192312e 100644 --- a/.github/workflows/smoketest.yml +++ b/.github/workflows/smoketest.yml @@ -6,6 +6,9 @@ on: - master pull_request: +env: + DISABLE_GA: "true" + jobs: smoke-test: diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index a02075bf..c4235d0f 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -6,6 +6,9 @@ on: - master pull_request: +env: + DISABLE_GA: "true" + jobs: py-httprunner: runs-on: ${{ matrix.os }} diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index d938d777..1caebbe1 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -4,6 +4,7 @@ - refactor: merge [hrp] into httprunner v4, which will include golang and python dual engine - refactor: redesign `IStep` to make step extensible to support implementing new protocols and test types +- feat: disable GA events report by setting environment `DISABLE_GA=true` **go version** diff --git a/hrp/internal/sdk/client_test.go b/hrp/internal/sdk/client_test.go index 905b5d13..8c31cf47 100644 --- a/hrp/internal/sdk/client_test.go +++ b/hrp/internal/sdk/client_test.go @@ -10,7 +10,7 @@ func TestSendEvents(t *testing.T) { Action: "SendEvents", Value: 123, } - err := gaClient.SendEvent(event) + err := SendEvent(event) if err != nil { t.Fatal(err) } diff --git a/hrp/internal/sdk/init.go b/hrp/internal/sdk/init.go index 7d36e710..dbf7818a 100644 --- a/hrp/internal/sdk/init.go +++ b/hrp/internal/sdk/init.go @@ -2,6 +2,7 @@ package sdk import ( "fmt" + "os" "github.com/denisbrodbeck/machineid" "github.com/getsentry/sentry-go" @@ -46,5 +47,9 @@ func init() { } func SendEvent(e IEvent) error { + if os.Getenv("DISABLE_GA") == "true" { + // do not send GA events in CI environment + return nil + } return gaClient.SendEvent(e) } diff --git a/httprunner/utils.py b/httprunner/utils.py index fa8f77bc..e2cba145 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -2,6 +2,7 @@ import collections import copy import itertools import json +import os import os.path import platform import uuid @@ -40,8 +41,13 @@ class GAClient(object): 'cid': uuid.getnode(), # Anonymous Client ID 'ua': f'HttpRunner/{__version__}', } + # do not send GA events in CI environment + self.__is_ci = os.getenv("DISABLE_GA") == "true" def track_event(self, category: Text, action: Text, value: int = 0): + if self.__is_ci: + return + data = { 't': 'event', # Event hit type = event 'ec': category, # Required. Event Category. @@ -51,11 +57,14 @@ class GAClient(object): } data.update(self.common_params) try: - self.http_client.post(self.report_url, data=data) + self.http_client.post(self.report_url, data=data, timeout=5) except Exception: # ProxyError, SSLError, ConnectionError pass def track_user_timing(self, category: Text, variable: Text, duration: int): + if self.__is_ci: + return + data = { 't': 'timing', # Event hit type = timing 'utc': category, # Required. user timing category. e.g. jsonLoader @@ -65,7 +74,7 @@ class GAClient(object): } data.update(self.common_params) try: - self.http_client.post(self.report_url, data=data) + self.http_client.post(self.report_url, data=data, timeout=5) except Exception: # ProxyError, SSLError, ConnectionError pass