mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
change: check android device offline
This commit is contained in:
@@ -246,6 +246,9 @@ func (d *Device) ReverseForwardKillAll() error {
|
||||
func (d *Device) RunShellCommand(cmd string, args ...string) (string, error) {
|
||||
raw, err := d.RunShellCommandWithBytes(cmd, args...)
|
||||
if err != nil {
|
||||
if errors.Is(err, code.AndroidDeviceConnectionError) {
|
||||
return "", err
|
||||
}
|
||||
return "", errors.Wrap(code.AndroidShellExecError, err.Error())
|
||||
}
|
||||
return string(raw), nil
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package gadb
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
"github.com/httprunner/httprunner/v4/hrp/internal/code"
|
||||
)
|
||||
|
||||
var ErrConnBroken = errors.New("socket connection broken")
|
||||
@@ -45,6 +48,8 @@ func (t transport) Conn() net.Conn {
|
||||
return t.sock
|
||||
}
|
||||
|
||||
var regexDeviceOffline = regexp.MustCompile("device .* not found")
|
||||
|
||||
func (t transport) VerifyResponse() (err error) {
|
||||
var status string
|
||||
if status, err = t.ReadStringN(4); err != nil {
|
||||
@@ -58,9 +63,15 @@ func (t transport) VerifyResponse() (err error) {
|
||||
if sError, err = t.UnpackString(); err != nil {
|
||||
return err
|
||||
}
|
||||
err = fmt.Errorf("command failed: %s", sError)
|
||||
log.Error().Str("status", status).Str("err", sError).Msg("verify adb response failed")
|
||||
return
|
||||
|
||||
if regexDeviceOffline.MatchString(sError) {
|
||||
// device offline
|
||||
return errors.Wrap(code.AndroidDeviceConnectionError, sError)
|
||||
}
|
||||
|
||||
log.Warn().Str("status", status).Str("err", sError).
|
||||
Msg("verify adb response failed")
|
||||
return errors.New(sError)
|
||||
}
|
||||
|
||||
func (t transport) ReadStringAll() (s string, err error) {
|
||||
|
||||
@@ -462,6 +462,7 @@ var popups = [][]string{
|
||||
{".*定位.*", ".*允许.*"},
|
||||
{".*拍照.*", "仅.*允许"},
|
||||
{".*录音.*", "仅.*允许"},
|
||||
{"管理使用时间", ".*忽略.*"},
|
||||
}
|
||||
|
||||
func (dExt *DriverExt) autoPopupHandler(ocrResult *OcrResult) error {
|
||||
|
||||
Reference in New Issue
Block a user