mirror of
https://github.com/httprunner/httprunner.git
synced 2026-07-09 22:44:05 +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 {
|
func WithAdbLogOn(logOn bool) AndroidDeviceOption {
|
||||||
return func(device *AndroidDevice) {
|
return func(device *AndroidDevice) {
|
||||||
device.LogOn = logOn
|
device.LogOn = logOn
|
||||||
@@ -100,6 +106,9 @@ func GetAndroidDeviceOptions(dev *AndroidDevice) (deviceOptions []AndroidDeviceO
|
|||||||
if dev.UIA2Port != 0 {
|
if dev.UIA2Port != 0 {
|
||||||
deviceOptions = append(deviceOptions, WithUIA2Port(dev.UIA2Port))
|
deviceOptions = append(deviceOptions, WithUIA2Port(dev.UIA2Port))
|
||||||
}
|
}
|
||||||
|
if dev.UIA2Package != "" {
|
||||||
|
deviceOptions = append(deviceOptions, WithUIA2Package(dev.UIA2Package))
|
||||||
|
}
|
||||||
if dev.LogOn {
|
if dev.LogOn {
|
||||||
deviceOptions = append(deviceOptions, WithAdbLogOn(true))
|
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("ime", "enable", "io.appium.settings/.UnicodeIME")
|
||||||
dev.d.RunShellCommand("rm", "-r", env.DeviceActionLogFilePath)
|
dev.d.RunShellCommand("rm", "-r", env.DeviceActionLogFilePath)
|
||||||
|
|
||||||
if dev.UIA2Package != "" {
|
if dev.UIA2 {
|
||||||
// start uiautomator2 server
|
// start uiautomator2 server
|
||||||
return dev.startUIA2Server()
|
go dev.startUIA2Server()
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -525,7 +534,11 @@ func (dev *AndroidDevice) getPackageMD5(packagePath string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (dev *AndroidDevice) startUIA2Server() 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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user