diff --git a/examples/uitest/demo_android_douyin_test.go b/examples/uitest/demo_android_douyin_test.go index d07558ce..01fa3f94 100644 --- a/examples/uitest/demo_android_douyin_test.go +++ b/examples/uitest/demo_android_douyin_test.go @@ -13,13 +13,6 @@ func TestAndroidDouYinLive(t *testing.T) { Config: hrp.NewConfig("通过 feed 头像进入抖音直播间"). SetAndroid(hrp.WithAdbLogOn(true), hrp.WithSerialNumber("2d06bf70")), TestSteps: []hrp.IStep{ - hrp.NewStep("打开网页"). - Android(). - Home(). - AppTerminate("com.google.android.apps.chrome.Main").Sleep(1). - SwipeToTapApp("Chrome", hrp.WithMaxRetryTimes(5)).TapByOCR("搜索").Input("https://gtftask.bytedance.com/local-time").TapByOCR("前往").Sleep(5). - Validate(). - AssertOCRExists("1664", "网页打开失败"), hrp.NewStep("启动抖音"). Android(). Home(). diff --git a/hrp/internal/builtin/utils.go b/hrp/internal/builtin/utils.go index 07157cdb..4d5fefdc 100644 --- a/hrp/internal/builtin/utils.go +++ b/hrp/internal/builtin/utils.go @@ -20,6 +20,7 @@ import ( "github.com/rs/zerolog/log" "gopkg.in/yaml.v3" + "github.com/httprunner/httprunner/v4/hrp/internal/env" "github.com/httprunner/httprunner/v4/hrp/internal/json" ) @@ -170,7 +171,7 @@ func InstallPythonPackage(python3 string, pkg string) (err error) { log.Info().Str("pkgName", pkgName).Str("pkgVersion", pkgVersion).Msg("installing python package") // install package - pypiIndexURL := os.Getenv("PYPI_INDEX_URL") + pypiIndexURL := env.PYPI_INDEX_URL if pypiIndexURL == "" { pypiIndexURL = "https://pypi.org/simple" // default } @@ -494,7 +495,7 @@ func GetFileNameWithoutExtension(path string) string { } func Bytes2File(data []byte, filename string) error { - file, err := os.OpenFile(filename, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0755) + file, err := os.OpenFile(filename, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0o755) defer file.Close() if err != nil { log.Error().Err(err).Msg("failed to generate file") diff --git a/hrp/internal/builtin/utils_unix.go b/hrp/internal/builtin/utils_unix.go index 4e5ff1ad..89b6a4f5 100644 --- a/hrp/internal/builtin/utils_unix.go +++ b/hrp/internal/builtin/utils_unix.go @@ -11,6 +11,8 @@ import ( "github.com/pkg/errors" "github.com/rs/zerolog/log" + + "github.com/httprunner/httprunner/v4/hrp/internal/env" ) func isPython3(python string) bool { @@ -80,7 +82,7 @@ func ExecCommand(cmdName string, args ...string) error { // add cmd dir path to $PATH if cmdDir := filepath.Dir(cmdName); cmdDir != "" { - PATH := fmt.Sprintf("%s:%s", cmdDir, os.Getenv("PATH")) + PATH := fmt.Sprintf("%s:%s", cmdDir, env.PATH) if err := os.Setenv("PATH", PATH); err != nil { log.Error().Err(err).Msg("set env $PATH failed") return err diff --git a/hrp/internal/env/env.go b/hrp/internal/env/env.go new file mode 100644 index 00000000..c69ca633 --- /dev/null +++ b/hrp/internal/env/env.go @@ -0,0 +1,12 @@ +package env + +import "os" + +var ( + WDA_USB_DRIVER = os.Getenv("WDA_USB_DRIVER") + VEDEM_OCR_URL = os.Getenv("VEDEM_OCR_URL") + DISABLE_GA = os.Getenv("DISABLE_GA") + DISABLE_SENTRY = os.Getenv("DISABLE_SENTRY") + PYPI_INDEX_URL = os.Getenv("PYPI_INDEX_URL") + PATH = os.Getenv("PATH") +) diff --git a/hrp/internal/sdk/init.go b/hrp/internal/sdk/init.go index 8e69d5e2..ddb12087 100644 --- a/hrp/internal/sdk/init.go +++ b/hrp/internal/sdk/init.go @@ -2,13 +2,13 @@ package sdk import ( "fmt" - "os" "github.com/denisbrodbeck/machineid" "github.com/getsentry/sentry-go" "github.com/google/uuid" "github.com/rs/zerolog/log" + "github.com/httprunner/httprunner/v4/hrp/internal/env" "github.com/httprunner/httprunner/v4/hrp/internal/version" ) @@ -29,7 +29,7 @@ func init() { gaClient = NewGAClient(trackingID, clientID) // init sentry sdk - if os.Getenv("DISABLE_SENTRY") == "true" { + if env.DISABLE_SENTRY == "true" { return } err = sentry.Init(sentry.ClientOptions{ @@ -50,7 +50,7 @@ func init() { } func SendEvent(e IEvent) error { - if os.Getenv("DISABLE_GA") == "true" { + if env.DISABLE_GA == "true" { // do not send GA events in CI environment return nil } diff --git a/hrp/pkg/uixt/ios_device.go b/hrp/pkg/uixt/ios_device.go index bfe4d3ce..3a2248c2 100644 --- a/hrp/pkg/uixt/ios_device.go +++ b/hrp/pkg/uixt/ios_device.go @@ -20,6 +20,7 @@ import ( "github.com/pkg/errors" "github.com/rs/zerolog/log" + "github.com/httprunner/httprunner/v4/hrp/internal/env" "github.com/httprunner/httprunner/v4/hrp/internal/json" ) @@ -55,7 +56,7 @@ func InitWDAClient(device *IOSDevice) (*DriverExt, error) { capabilities.WithDefaultAlertAction(AlertActionAccept) var driver WebDriver - if os.Getenv("WDA_USB_DRIVER") == "" { + if env.WDA_USB_DRIVER == "" { // default use http driver driver, err = iosDevice.NewHTTPDriver(capabilities) } else { diff --git a/hrp/pkg/uixt/ocr_on.go b/hrp/pkg/uixt/ocr_on.go index 28ff5826..550da8e7 100644 --- a/hrp/pkg/uixt/ocr_on.go +++ b/hrp/pkg/uixt/ocr_on.go @@ -4,17 +4,18 @@ package uixt import ( "bytes" - "encoding/base64" "fmt" "image" "io/ioutil" "mime/multipart" "net/http" + "os" "strings" "time" "github.com/rs/zerolog/log" + "github.com/httprunner/httprunner/v4/hrp/internal/env" "github.com/httprunner/httprunner/v4/hrp/internal/json" ) @@ -55,8 +56,12 @@ func (s *veDEMOCRService) getOCRResult(imageBuf []byte) ([]OCRResult, error) { return nil, fmt.Errorf("close body writer error: %v", err) } - url, _ := base64.StdEncoding.DecodeString("aHR0cHM6Ly9ndGZ0YXNrLmJ5dGVkYW5jZS5jb20vYXBpL3YxL2FsZ29yaXRobS9vY3I=") - req, err := http.NewRequest("POST", string(url), bodyBuf) + if env.VEDEM_OCR_URL == "" { + log.Error().Msg("VEDEM_OCR_URL env missed for OCR service") + os.Exit(1) + } + + req, err := http.NewRequest("POST", env.VEDEM_OCR_URL, bodyBuf) if err != nil { return nil, fmt.Errorf("construct request error: %v", err) } diff --git a/httprunner/database/engine.py b/httprunner/database/engine.py index aa0c0cec..8a99deda 100644 --- a/httprunner/database/engine.py +++ b/httprunner/database/engine.py @@ -79,8 +79,8 @@ class DBEngine(object): if __name__ == "__main__": - # db = DBEngine(f"mysql+pymysql://xxxxx:xxxxx@10.0.0.1:3306/dbname?charset=utf8mb4") - db = DBEngine(f"sqlite:////Users/bytedance/HttpRunner/examples/data/sqlite.db") + # db = DBEngine("mysql+pymysql://xxxxx:xxxxx@10.0.0.1:3306/dbname?charset=utf8mb4") + db = DBEngine("sqlite:////Users/xxx/HttpRunner/examples/data/sqlite.db") print(db.fetchmany(""" select* from student""", 5)) print(db.fetchmany("select* from student", 5))