From 602f09074159ffb747d332f8e3ea1d8de6e8ddba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=81=AA?= Date: Fri, 15 Mar 2024 19:04:55 +0800 Subject: [PATCH 1/4] fix: add waiting time after pressing back --- examples/uitest/bili/cli.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/uitest/bili/cli.go b/examples/uitest/bili/cli.go index 9a000d8d..55566a91 100644 --- a/examples/uitest/bili/cli.go +++ b/examples/uitest/bili/cli.go @@ -67,6 +67,7 @@ func launchAppDriver(pkgName string) (driver *uixt.DriverExt, err error) { } func watchVideo(driver *uixt.DriverExt) (err error) { + time.Sleep(3 * time.Second) err = driver.SwipeUp() if err != nil { return err @@ -107,12 +108,13 @@ func watchVideo(driver *uixt.DriverExt) (err error) { return err } + time.Sleep(1 * time.Second) + // 返回推荐页 err = driver.Driver.PressBack() if err != nil { return err } - time.Sleep(1 * time.Second) return nil } From 1f24ccb0c41cb5ee0103c5dc488c9a02ac46ac3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=81=AA?= Date: Fri, 15 Mar 2024 19:11:45 +0800 Subject: [PATCH 2/4] fix: increase scroll length --- examples/uitest/bili/cli.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/uitest/bili/cli.go b/examples/uitest/bili/cli.go index 55566a91..24b83749 100644 --- a/examples/uitest/bili/cli.go +++ b/examples/uitest/bili/cli.go @@ -68,7 +68,7 @@ func launchAppDriver(pkgName string) (driver *uixt.DriverExt, err error) { func watchVideo(driver *uixt.DriverExt) (err error) { time.Sleep(3 * time.Second) - err = driver.SwipeUp() + err = driver.SwipeRelative(0.7, 0.7, 0.7, 0.2) if err != nil { return err } From b22d4ba7f244bbc3ef46b8e3249542d0ba499aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=81=AA?= Date: Mon, 8 Apr 2024 20:22:02 +0800 Subject: [PATCH 3/4] fix: resolve issue of missing live consumption data when algorithm service is down --- hrp/pkg/uixt/service_vedem.go | 2 +- hrp/pkg/uixt/video_crawler.go | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/hrp/pkg/uixt/service_vedem.go b/hrp/pkg/uixt/service_vedem.go index 961dbc36..f7dbe4ac 100644 --- a/hrp/pkg/uixt/service_vedem.go +++ b/hrp/pkg/uixt/service_vedem.go @@ -398,7 +398,7 @@ func (dExt *DriverExt) GetScreenResult(options ...ActionOption) (screenResult *S imageResult, err := dExt.ImageService.GetImage(bufSource, options...) if err != nil { log.Error().Err(err).Msg("GetImage from ImageService failed") - return nil, err + return screenResult, err } if imageResult != nil { screenResult.imageResult = imageResult diff --git a/hrp/pkg/uixt/video_crawler.go b/hrp/pkg/uixt/video_crawler.go index 314206cc..def85da9 100644 --- a/hrp/pkg/uixt/video_crawler.go +++ b/hrp/pkg/uixt/video_crawler.go @@ -249,8 +249,6 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) { ) if err != nil { log.Error().Err(err).Msg("get screen result failed") - time.Sleep(3 * time.Second) - continue } // add live type From b82cfb58b34abbe43d22f426b5c826863b54ef20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=B8=85?= Date: Tue, 16 Apr 2024 06:40:43 +0000 Subject: [PATCH 4/4] chore: change live preview prob * chore: change live preview prob * chore: change exit liveroom https://code.byted.org/iesqa/httprunner/merge_requests/33 --- hrp/pkg/uixt/android_device.go | 4 ++++ hrp/pkg/uixt/interface.go | 3 ++- hrp/pkg/uixt/ios_device.go | 4 ++++ hrp/pkg/uixt/video_crawler.go | 22 ++++++++++++++++------ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/hrp/pkg/uixt/android_device.go b/hrp/pkg/uixt/android_device.go index 42b4757e..c250b21d 100644 --- a/hrp/pkg/uixt/android_device.go +++ b/hrp/pkg/uixt/android_device.go @@ -154,6 +154,10 @@ type AndroidDevice struct { LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"` } +func (dev *AndroidDevice) System() string { + return "android" +} + func (dev *AndroidDevice) UUID() string { return dev.SerialNumber } diff --git a/hrp/pkg/uixt/interface.go b/hrp/pkg/uixt/interface.go index 71d8e177..ae0d04cc 100644 --- a/hrp/pkg/uixt/interface.go +++ b/hrp/pkg/uixt/interface.go @@ -466,7 +466,8 @@ func WithDriverPlugin(plugin funplugin.IPlugin) DriverOption { // current implemeted device: IOSDevice, AndroidDevice type Device interface { - UUID() string // ios udid or android serial + System() string // ios or android + UUID() string // ios udid or android serial LogEnabled() bool NewDriver(...DriverOption) (driverExt *DriverExt, err error) diff --git a/hrp/pkg/uixt/ios_device.go b/hrp/pkg/uixt/ios_device.go index 843a34b3..2705ade6 100644 --- a/hrp/pkg/uixt/ios_device.go +++ b/hrp/pkg/uixt/ios_device.go @@ -289,6 +289,10 @@ type IOSDevice struct { pcapFile string // saved pcap file path } +func (dev *IOSDevice) System() string { + return "ios" +} + func (dev *IOSDevice) UUID() string { return dev.UDID } diff --git a/hrp/pkg/uixt/video_crawler.go b/hrp/pkg/uixt/video_crawler.go index def85da9..7ee02c94 100644 --- a/hrp/pkg/uixt/video_crawler.go +++ b/hrp/pkg/uixt/video_crawler.go @@ -197,6 +197,9 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) { continue } + // 直播预览流线上概率 + livePreviewProb := crawler.getLivePreviewProb() + switch currentVideo.Type { case VideoType_PreviewLive: // 直播预览流 @@ -205,9 +208,8 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) { log.Info().Interface("video", currentVideo). Msg("live count achieved, skip entering live room") skipEnterLive = true - } else if rand.Float64() <= 0.10 { - // 10% chance skip entering live room - log.Info().Msg("skip entering preview live by 10% chance") + } else if rand.Float64() <= livePreviewProb { + log.Info().Interface("livePreviewProb", livePreviewProb).Msg("skip entering preview") skipEnterLive = true } @@ -272,9 +274,8 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) { log.Info().Interface("live", currentVideo). Msg("live count achieved, exit live room") exitLive = true - } else if rand.Float64() <= 0.10 { - // 10% chance exit live room - log.Info().Msg("exit live room by 10% chance") + } else if rand.Float64() <= livePreviewProb { + log.Info().Interface("livePreviewProb", livePreviewProb).Msg("exit live room by preview live chance") exitLive = true } if exitLive && currentVideo.Type == VideoType_Live { @@ -427,3 +428,12 @@ func (vc *VideoCrawler) getCurrentVideo() (video *Video, err error) { Msg("get current video success") return video, nil } + +func (vc *VideoCrawler) getLivePreviewProb() float64 { + if vc.driverExt.Device.System() == "ios" { + return 0.5326 + } else if vc.driverExt.Device.System() == "android" { + return 0.3414 + } + return -1 +}