mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-28 11:36:56 +08:00
feat: check if app is in foreground when step failed
This commit is contained in:
@@ -67,8 +67,9 @@ var (
|
|||||||
|
|
||||||
// UI automation related: [70, 80)
|
// UI automation related: [70, 80)
|
||||||
var (
|
var (
|
||||||
MobileUIDriverError = errors.New("mobile UI driver error") // 70
|
MobileUIDriverError = errors.New("mobile UI driver error") // 70
|
||||||
MobileUIValidationError = errors.New("mobile UI validation error") // 75
|
MobileUIValidationError = errors.New("mobile UI validation error") // 75
|
||||||
|
MobileUIAppNotInForegroundError = errors.New("mobile UI app not in foreground error") // 76
|
||||||
)
|
)
|
||||||
|
|
||||||
// OCR related: [80, 90)
|
// OCR related: [80, 90)
|
||||||
|
|||||||
@@ -561,6 +561,14 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
|
|||||||
attachments := make(map[string]interface{})
|
attachments := make(map[string]interface{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
attachments["error"] = err.Error()
|
attachments["error"] = err.Error()
|
||||||
|
|
||||||
|
// check if app is in foreground
|
||||||
|
packageName := uiDriver.Driver.GetLastLaunchedApp()
|
||||||
|
yes, err2 := uiDriver.Driver.IsAppInForeground(packageName)
|
||||||
|
if packageName != "" && (!yes || err2 != nil) {
|
||||||
|
log.Error().Err(err2).Str("packageName", packageName).Msg("app is not in foreground")
|
||||||
|
err = errors.Wrap(code.MobileUIAppNotInForegroundError, err.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// take screenshot after each step
|
// take screenshot after each step
|
||||||
|
|||||||
Reference in New Issue
Block a user