mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-09 22:44:05 +08:00
feat: log live swipe timestamp
This commit is contained in:
@@ -230,8 +230,6 @@ func (l *LiveCrawler) Run(driver *DriverExt, enterPoint PointF) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
time.Sleep(5 * time.Second)
|
time.Sleep(5 * time.Second)
|
||||||
lastSwipeTime := time.Now()
|
|
||||||
|
|
||||||
for !l.currentStat.isLiveTargetAchieved() {
|
for !l.currentStat.isLiveTargetAchieved() {
|
||||||
select {
|
select {
|
||||||
case <-l.currentStat.timer.C:
|
case <-l.currentStat.timer.C:
|
||||||
@@ -241,6 +239,17 @@ func (l *LiveCrawler) Run(driver *DriverExt, enterPoint PointF) error {
|
|||||||
log.Warn().Msg("interrupted in live crawler")
|
log.Warn().Msg("interrupted in live crawler")
|
||||||
return errors.Wrap(code.InterruptError, "live crawler interrupted")
|
return errors.Wrap(code.InterruptError, "live crawler interrupted")
|
||||||
default:
|
default:
|
||||||
|
// swipe to next live video
|
||||||
|
swipeStartTime := time.Now()
|
||||||
|
if err := l.driver.SwipeUp(); err != nil {
|
||||||
|
log.Error().Err(err).Msg("live swipe up failed")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
swipeFinishTime := time.Now()
|
||||||
|
|
||||||
|
// wait for live video loading
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
|
|
||||||
// take screenshot and get screen texts by OCR
|
// take screenshot and get screen texts by OCR
|
||||||
screenResult, err := l.driver.GetScreenResult()
|
screenResult, err := l.driver.GetScreenResult()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -255,21 +264,17 @@ func (l *LiveCrawler) Run(driver *DriverExt, enterPoint PointF) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// simulation watch live video
|
// simulation watch live video
|
||||||
sleepStrict(lastSwipeTime, screenResult.Live.WatchDuration)
|
sleepStrict(swipeFinishTime, screenResult.Live.WatchDuration)
|
||||||
|
|
||||||
// swipe to next live video
|
|
||||||
err = l.driver.SwipeUp()
|
|
||||||
if err != nil {
|
|
||||||
log.Error().Err(err).Msg("swipe up failed")
|
|
||||||
// TODO: retry maximum 3 times
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
lastSwipeTime = time.Now()
|
|
||||||
|
|
||||||
// check if live room
|
// check if live room
|
||||||
if err := l.driver.Driver.AssertForegroundApp(l.configs.AppPackageName, "live"); err != nil {
|
if err := l.driver.Driver.AssertForegroundApp(l.configs.AppPackageName, "live"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// log swipe timelines
|
||||||
|
screenResult.SwipeStartTime = swipeStartTime.UnixMilli()
|
||||||
|
screenResult.SwipeFinishTime = swipeFinishTime.UnixMilli()
|
||||||
|
screenResult.Elapsed = time.Since(swipeFinishTime).Milliseconds()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -370,7 +375,7 @@ func (dExt *DriverExt) VideoCrawler(configs *VideoCrawlerConfigs) (err error) {
|
|||||||
log.Info().Msg("swipe to next feed video")
|
log.Info().Msg("swipe to next feed video")
|
||||||
swipeStartTime := time.Now()
|
swipeStartTime := time.Now()
|
||||||
if err = dExt.SwipeUp(); err != nil {
|
if err = dExt.SwipeUp(); err != nil {
|
||||||
log.Error().Err(err).Msg("swipe up failed")
|
log.Error().Err(err).Msg("feed swipe up failed")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
swipeFinishTime := time.Now()
|
swipeFinishTime := time.Now()
|
||||||
|
|||||||
Reference in New Issue
Block a user