mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
feat: restart uia2 server if crashed
This commit is contained in:
@@ -1 +1 @@
|
||||
v5.0.0-beta-2410091526
|
||||
v5.0.0-beta-2410091552
|
||||
|
||||
@@ -81,6 +81,12 @@ func WithUIA2Port(port int) AndroidDeviceOption {
|
||||
}
|
||||
}
|
||||
|
||||
func WithUIA2Package(packageName string) AndroidDeviceOption {
|
||||
return func(device *AndroidDevice) {
|
||||
device.UIA2Package = packageName
|
||||
}
|
||||
}
|
||||
|
||||
func WithAdbLogOn(logOn bool) AndroidDeviceOption {
|
||||
return func(device *AndroidDevice) {
|
||||
device.LogOn = logOn
|
||||
@@ -100,6 +106,9 @@ func GetAndroidDeviceOptions(dev *AndroidDevice) (deviceOptions []AndroidDeviceO
|
||||
if dev.UIA2Port != 0 {
|
||||
deviceOptions = append(deviceOptions, WithUIA2Port(dev.UIA2Port))
|
||||
}
|
||||
if dev.UIA2Package != "" {
|
||||
deviceOptions = append(deviceOptions, WithUIA2Package(dev.UIA2Package))
|
||||
}
|
||||
if dev.LogOn {
|
||||
deviceOptions = append(deviceOptions, WithAdbLogOn(true))
|
||||
}
|
||||
@@ -200,9 +209,9 @@ func (dev *AndroidDevice) Init() error {
|
||||
dev.d.RunShellCommand("ime", "enable", "io.appium.settings/.UnicodeIME")
|
||||
dev.d.RunShellCommand("rm", "-r", env.DeviceActionLogFilePath)
|
||||
|
||||
if dev.UIA2Package != "" {
|
||||
if dev.UIA2 {
|
||||
// start uiautomator2 server
|
||||
return dev.startUIA2Server()
|
||||
go dev.startUIA2Server()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -525,7 +534,11 @@ func (dev *AndroidDevice) getPackageMD5(packagePath string) (string, error) {
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) startUIA2Server() error {
|
||||
_, err := dev.d.RunShellCommand("am", "instrument", "-w", UIA2ServerPackageName)
|
||||
out, err := dev.d.RunShellCommand("am", "instrument", "-w", UIA2ServerPackageName)
|
||||
if strings.Contains(out, "Process crashed") {
|
||||
log.Error().Msg("uiautomator server crashed, restart...")
|
||||
return dev.startUIA2Server()
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user