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