mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
refactor: Device struct
This commit is contained in:
@@ -80,45 +80,45 @@ func NewAndroidDevice(opts ...option.AndroidDeviceOption) (device *AndroidDevice
|
||||
}
|
||||
|
||||
device = &AndroidDevice{
|
||||
Device: gadbDevice,
|
||||
AndroidDeviceOptions: androidOptions,
|
||||
Logcat: NewAdbLogcat(androidOptions.SerialNumber),
|
||||
Device: gadbDevice,
|
||||
Options: androidOptions,
|
||||
Logcat: NewAdbLogcat(androidOptions.SerialNumber),
|
||||
}
|
||||
log.Info().Str("serial", device.SerialNumber).Msg("init android device")
|
||||
log.Info().Str("serial", device.Options.SerialNumber).Msg("init android device")
|
||||
return device, nil
|
||||
}
|
||||
|
||||
type AndroidDevice struct {
|
||||
*gadb.Device
|
||||
*option.AndroidDeviceOptions
|
||||
Logcat *AdbLogcat
|
||||
Options *option.AndroidDeviceOptions
|
||||
Logcat *AdbLogcat
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) Setup() error {
|
||||
dev.RunShellCommand("ime", "enable", option.UnicodeImePackageName)
|
||||
dev.RunShellCommand("rm", "-r", config.DeviceActionLogFilePath)
|
||||
dev.Device.RunShellCommand("ime", "enable", option.UnicodeImePackageName)
|
||||
dev.Device.RunShellCommand("rm", "-r", config.DeviceActionLogFilePath)
|
||||
|
||||
// setup evalite
|
||||
evalToolRaw, err := evalite.ReadFile("evalite")
|
||||
if err != nil {
|
||||
return errors.Wrap(code.LoadFileError, err.Error())
|
||||
}
|
||||
err = dev.Push(bytes.NewReader(evalToolRaw), "/data/local/tmp/evalite", time.Now())
|
||||
err = dev.Device.Push(bytes.NewReader(evalToolRaw), "/data/local/tmp/evalite", time.Now())
|
||||
if err != nil {
|
||||
return errors.Wrap(code.DeviceShellExecError, err.Error())
|
||||
}
|
||||
|
||||
if dev.UIA2 {
|
||||
if dev.Options.UIA2 {
|
||||
// uiautomator2 server must be started before
|
||||
|
||||
// check uiautomator server package installed
|
||||
if !dev.IsPackageInstalled(dev.UIA2ServerPackageName) {
|
||||
if !dev.Device.IsPackageInstalled(dev.Options.UIA2ServerPackageName) {
|
||||
return errors.Wrapf(code.MobileUIDriverAppNotInstalled,
|
||||
"%s not installed", dev.UIA2ServerPackageName)
|
||||
"%s not installed", dev.Options.UIA2ServerPackageName)
|
||||
}
|
||||
if !dev.IsPackageInstalled(dev.UIA2ServerTestPackageName) {
|
||||
if !dev.Device.IsPackageInstalled(dev.Options.UIA2ServerTestPackageName) {
|
||||
return errors.Wrapf(code.MobileUIDriverAppNotInstalled,
|
||||
"%s not installed", dev.UIA2ServerTestPackageName)
|
||||
"%s not installed", dev.Options.UIA2ServerTestPackageName)
|
||||
}
|
||||
|
||||
// TODO: check uiautomator server package running
|
||||
@@ -142,16 +142,16 @@ func (dev *AndroidDevice) Teardown() error {
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) UUID() string {
|
||||
return dev.SerialNumber
|
||||
return dev.Options.SerialNumber
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) LogEnabled() bool {
|
||||
return dev.LogOn
|
||||
return dev.Options.LogOn
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) NewDriver() (driverExt IDriverExt, err error) {
|
||||
var driver IDriver
|
||||
if dev.UIA2 || dev.LogOn {
|
||||
if dev.Options.UIA2 || dev.Options.LogOn {
|
||||
driver, err = NewUIA2Driver(dev)
|
||||
} else {
|
||||
driver, err = NewADBDriver(dev)
|
||||
@@ -160,7 +160,7 @@ func (dev *AndroidDevice) NewDriver() (driverExt IDriverExt, err error) {
|
||||
return nil, errors.Wrap(err, "failed to init UIA driver")
|
||||
}
|
||||
|
||||
if dev.LogOn {
|
||||
if dev.Options.LogOn {
|
||||
err = driver.StartCaptureLog("hrp_adb_log")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -200,7 +200,7 @@ func (dev *AndroidDevice) StopPcap() string {
|
||||
|
||||
func (dev *AndroidDevice) Install(apkPath string, opts ...option.InstallOption) error {
|
||||
installOpts := option.NewInstallOptions(opts...)
|
||||
brand, err := dev.Brand()
|
||||
brand, err := dev.Device.Brand()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -218,7 +218,7 @@ func (dev *AndroidDevice) Install(apkPath string, opts ...option.InstallOption)
|
||||
case "vivo":
|
||||
return dev.installVivoSilent(apkPath, args...)
|
||||
case "oppo", "realme", "oneplus":
|
||||
if dev.IsPackageInstalled(EvalInstallerPackageName) {
|
||||
if dev.Device.IsPackageInstalled(EvalInstallerPackageName) {
|
||||
return dev.installViaInstaller(apkPath, args...)
|
||||
}
|
||||
log.Warn().Msg("oppo not install eval installer")
|
||||
@@ -236,13 +236,13 @@ func (dev *AndroidDevice) installVivoSilent(apkPath string, args ...string) erro
|
||||
verifyCode = verifyCode[:8]
|
||||
verifyCode = "-V" + verifyCode
|
||||
args = append([]string{verifyCode}, args...)
|
||||
_, err := dev.InstallAPK(apkPath, args...)
|
||||
_, err := dev.Device.InstallAPK(apkPath, args...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) installViaInstaller(apkPath string, args ...string) error {
|
||||
appRemotePath := "/data/local/tmp/" + strconv.FormatInt(time.Now().UnixMilli(), 10) + ".apk"
|
||||
err := dev.PushFile(apkPath, appRemotePath, time.Now())
|
||||
err := dev.Device.PushFile(apkPath, appRemotePath, time.Now())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -250,7 +250,7 @@ func (dev *AndroidDevice) installViaInstaller(apkPath string, args ...string) er
|
||||
defer func() {
|
||||
close(done)
|
||||
}()
|
||||
logcat := NewAdbLogcatWithCallback(dev.Serial(), func(line string) {
|
||||
logcat := NewAdbLogcatWithCallback(dev.Device.Serial(), func(line string) {
|
||||
re := regexp.MustCompile(`\{.*?}`)
|
||||
match := re.FindString(line)
|
||||
if match == "" {
|
||||
@@ -280,7 +280,7 @@ func (dev *AndroidDevice) installViaInstaller(apkPath string, args ...string) er
|
||||
// 需要监听是否完成安装
|
||||
command := strings.Split(InstallViaInstallerCommand, " ")
|
||||
args = append(command, appRemotePath)
|
||||
_, err = dev.RunShellCommand("am", args[1:]...)
|
||||
_, err = dev.Device.RunShellCommand("am", args[1:]...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -295,18 +295,18 @@ func (dev *AndroidDevice) installViaInstaller(apkPath string, args ...string) er
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) installCommon(apkPath string, args ...string) error {
|
||||
_, err := dev.InstallAPK(apkPath, args...)
|
||||
_, err := dev.Device.InstallAPK(apkPath, args...)
|
||||
return err
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) Uninstall(packageName string) error {
|
||||
_, err := dev.RunShellCommand("uninstall", packageName)
|
||||
_, err := dev.Device.RunShellCommand("uninstall", packageName)
|
||||
return err
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) GetCurrentWindow() (windowInfo types.WindowInfo, err error) {
|
||||
// adb shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'
|
||||
output, err := dev.RunShellCommand("dumpsys", "window", "|", "grep", "-E", "'mCurrentFocus|mFocusedApp'")
|
||||
output, err := dev.Device.RunShellCommand("dumpsys", "window", "|", "grep", "-E", "'mCurrentFocus|mFocusedApp'")
|
||||
if err != nil {
|
||||
return types.WindowInfo{}, errors.Wrap(err, "get current window failed")
|
||||
}
|
||||
@@ -332,7 +332,7 @@ func (dev *AndroidDevice) GetCurrentWindow() (windowInfo types.WindowInfo, err e
|
||||
}
|
||||
|
||||
// adb shell dumpsys activity activities | grep mResumedActivity
|
||||
output, err = dev.RunShellCommand("dumpsys", "activity", "activities", "|", "grep", "mResumedActivity")
|
||||
output, err = dev.Device.RunShellCommand("dumpsys", "activity", "activities", "|", "grep", "mResumedActivity")
|
||||
if err != nil {
|
||||
return types.WindowInfo{}, errors.Wrap(err, "get current activity failed")
|
||||
}
|
||||
@@ -386,7 +386,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (types.AppInfo, err
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) getPackageVersion(packageName string) (string, error) {
|
||||
output, err := dev.RunShellCommand("dumpsys", "package", packageName, "|", "grep", "versionName")
|
||||
output, err := dev.Device.RunShellCommand("dumpsys", "package", packageName, "|", "grep", "versionName")
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get package version failed")
|
||||
}
|
||||
@@ -401,7 +401,7 @@ func (dev *AndroidDevice) getPackageVersion(packageName string) (string, error)
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) getPackagePath(packageName string) (string, error) {
|
||||
output, err := dev.RunShellCommand("pm", "path", packageName)
|
||||
output, err := dev.Device.RunShellCommand("pm", "path", packageName)
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get package path failed")
|
||||
}
|
||||
@@ -414,7 +414,7 @@ func (dev *AndroidDevice) getPackagePath(packageName string) (string, error) {
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) getPackageMD5(packagePath string) (string, error) {
|
||||
output, err := dev.RunShellCommand("md5sum", packagePath)
|
||||
output, err := dev.Device.RunShellCommand("md5sum", packagePath)
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get package md5 failed")
|
||||
}
|
||||
@@ -428,12 +428,13 @@ func (dev *AndroidDevice) getPackageMD5(packagePath string) (string, error) {
|
||||
func (dev *AndroidDevice) startUIA2Server() error {
|
||||
const maxRetries = 3
|
||||
for attempt := 1; attempt <= maxRetries; attempt++ {
|
||||
log.Info().Str("package", dev.UIA2ServerTestPackageName).
|
||||
log.Info().Str("package", dev.Options.UIA2ServerTestPackageName).
|
||||
Int("attempt", attempt).Msg("start uiautomator server")
|
||||
// $ adb shell am instrument -w $UIA2ServerTestPackageName
|
||||
// -w: wait for instrumentation to finish before returning.
|
||||
// Required for test runners.
|
||||
out, err := dev.RunShellCommand("am", "instrument", "-w", dev.UIA2ServerTestPackageName)
|
||||
out, err := dev.Device.RunShellCommand("am", "instrument", "-w",
|
||||
dev.Options.UIA2ServerTestPackageName)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "start uiautomator server failed")
|
||||
}
|
||||
@@ -447,7 +448,7 @@ func (dev *AndroidDevice) startUIA2Server() error {
|
||||
}
|
||||
|
||||
func (dev *AndroidDevice) stopUIA2Server() error {
|
||||
_, err := dev.RunShellCommand("am", "force-stop", dev.UIA2ServerPackageName)
|
||||
_, err := dev.Device.RunShellCommand("am", "force-stop", dev.Options.UIA2ServerPackageName)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -21,18 +21,21 @@ import (
|
||||
|
||||
func NewUIA2Driver(device *AndroidDevice) (*UIA2Driver, error) {
|
||||
log.Info().Interface("device", device).Msg("init android UIA2 driver")
|
||||
localPort, err := device.Forward(device.UIA2Port)
|
||||
localPort, err := device.Device.Forward(device.Options.UIA2Port)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(code.DeviceConnectionError,
|
||||
fmt.Sprintf("forward port %d->%d failed: %v",
|
||||
localPort, device.UIA2Port, err))
|
||||
localPort, device.Options.UIA2Port, err))
|
||||
}
|
||||
driver := &UIA2Driver{
|
||||
ADBDriver: &ADBDriver{
|
||||
AndroidDevice: device,
|
||||
},
|
||||
}
|
||||
driver := new(UIA2Driver)
|
||||
err = driver.Session.InitConnection(localPort)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
driver.Device = device.Device
|
||||
driver.Logcat = device.Logcat
|
||||
|
||||
err = driver.InitSession(nil)
|
||||
|
||||
@@ -18,8 +18,8 @@ var driverExt IDriverExt
|
||||
func setupAndroidAdbDriver(t *testing.T) {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
device.UIA2 = false
|
||||
device.LogOn = false
|
||||
device.Options.UIA2 = false
|
||||
device.Options.LogOn = false
|
||||
driverExt, err = device.NewDriver()
|
||||
checkErr(t, err)
|
||||
}
|
||||
@@ -27,8 +27,8 @@ func setupAndroidAdbDriver(t *testing.T) {
|
||||
func setupAndroidUIA2Driver(t *testing.T) {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
device.UIA2 = true
|
||||
device.LogOn = false
|
||||
device.Options.UIA2 = true
|
||||
device.Options.LogOn = false
|
||||
driverExt, err = device.NewDriver()
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ const (
|
||||
)
|
||||
|
||||
func NewShootsAndroidDriver(device *uixt.AndroidDevice) (driver *ShootsAndroidDriver, err error) {
|
||||
socketLocalPort, err := device.Forward(shootsSocketName)
|
||||
socketLocalPort, err := device.Device.Forward(shootsSocketName)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(code.DeviceConnectionError,
|
||||
fmt.Sprintf("forward port %d->%s failed: %v",
|
||||
@@ -40,7 +40,7 @@ func NewShootsAndroidDriver(device *uixt.AndroidDevice) (driver *ShootsAndroidDr
|
||||
}
|
||||
|
||||
driver.InitSession(nil)
|
||||
serverLocalPort, err := device.Forward(douyinServerPort)
|
||||
serverLocalPort, err := device.Device.Forward(douyinServerPort)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(code.DeviceConnectionError,
|
||||
fmt.Sprintf("forward port %d->%d failed: %v",
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
|
||||
type HarmonyDevice struct {
|
||||
*ghdc.Device
|
||||
*option.HarmonyDeviceOptions
|
||||
Options *option.HarmonyDeviceOptions
|
||||
}
|
||||
|
||||
func NewHarmonyDevice(opts ...option.HarmonyDeviceOption) (device *HarmonyDevice, err error) {
|
||||
@@ -58,10 +58,10 @@ func NewHarmonyDevice(opts ...option.HarmonyDeviceOption) (device *HarmonyDevice
|
||||
}
|
||||
|
||||
device = &HarmonyDevice{
|
||||
HarmonyDeviceOptions: deviceConfig,
|
||||
Device: harmonyDevice,
|
||||
Options: deviceConfig,
|
||||
Device: harmonyDevice,
|
||||
}
|
||||
log.Info().Str("connectKey", device.ConnectKey).Msg("init harmony device")
|
||||
log.Info().Str("connectKey", device.Options.ConnectKey).Msg("init harmony device")
|
||||
return device, nil
|
||||
}
|
||||
|
||||
@@ -74,11 +74,11 @@ func (dev *HarmonyDevice) Teardown() error {
|
||||
}
|
||||
|
||||
func (dev *HarmonyDevice) UUID() string {
|
||||
return dev.ConnectKey
|
||||
return dev.Options.ConnectKey
|
||||
}
|
||||
|
||||
func (dev *HarmonyDevice) LogEnabled() bool {
|
||||
return dev.LogOn
|
||||
return dev.Options.LogOn
|
||||
}
|
||||
|
||||
func (dev *HarmonyDevice) Install(appPath string, opts ...option.InstallOption) error {
|
||||
|
||||
@@ -18,7 +18,6 @@ import (
|
||||
type HDCDriver struct {
|
||||
*HarmonyDevice
|
||||
*Session
|
||||
IDriver
|
||||
*DriverExt
|
||||
points []ExportPoint
|
||||
uiDriver *ghdc.UIDriver
|
||||
|
||||
@@ -127,11 +127,11 @@ func NewIOSDevice(opts ...option.IOSDeviceOption) (device *IOSDevice, err error)
|
||||
}
|
||||
|
||||
device = &IOSDevice{
|
||||
IOSDeviceOptions: deviceOptions,
|
||||
listeners: make(map[int]*forward.ConnListener),
|
||||
d: dev,
|
||||
DeviceEntry: dev,
|
||||
Options: deviceOptions,
|
||||
listeners: make(map[int]*forward.ConnListener),
|
||||
}
|
||||
log.Info().Str("udid", device.UDID).Msg("init ios device")
|
||||
log.Info().Str("udid", device.Options.UDID).Msg("init ios device")
|
||||
err = device.Setup()
|
||||
if err != nil {
|
||||
_ = device.Teardown()
|
||||
@@ -141,8 +141,8 @@ func NewIOSDevice(opts ...option.IOSDeviceOption) (device *IOSDevice, err error)
|
||||
}
|
||||
|
||||
type IOSDevice struct {
|
||||
*option.IOSDeviceOptions
|
||||
d ios.DeviceEntry
|
||||
ios.DeviceEntry
|
||||
Options *option.IOSDeviceOptions
|
||||
listeners map[int]*forward.ConnListener
|
||||
}
|
||||
|
||||
@@ -202,11 +202,11 @@ func (dev *IOSDevice) Teardown() error {
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) UUID() string {
|
||||
return dev.UDID
|
||||
return dev.Options.UDID
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) LogEnabled() bool {
|
||||
return dev.LogOn
|
||||
return dev.Options.LogOn
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) getAppInfo(packageName string) (appInfo types.AppInfo, err error) {
|
||||
@@ -233,22 +233,22 @@ func (dev *IOSDevice) NewDriver() (driverExt IDriverExt, err error) {
|
||||
return nil, errors.Wrap(err, "failed to init WDA driver")
|
||||
}
|
||||
settings, err := driver.SetAppiumSettings(map[string]interface{}{
|
||||
"snapshotMaxDepth": dev.SnapshotMaxDepth,
|
||||
"acceptAlertButtonSelector": dev.AcceptAlertButtonSelector,
|
||||
"snapshotMaxDepth": dev.Options.SnapshotMaxDepth,
|
||||
"acceptAlertButtonSelector": dev.Options.AcceptAlertButtonSelector,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to set appium WDA settings")
|
||||
}
|
||||
log.Info().Interface("appiumWDASettings", settings).Msg("set appium WDA settings")
|
||||
|
||||
if dev.ResetHomeOnStartup {
|
||||
if dev.Options.ResetHomeOnStartup {
|
||||
log.Info().Msg("go back to home screen")
|
||||
if err = driver.Homescreen(); err != nil {
|
||||
return nil, errors.Wrap(code.MobileUIDriverError,
|
||||
fmt.Sprintf("go back to home screen failed: %v", err))
|
||||
}
|
||||
}
|
||||
if dev.LogOn {
|
||||
if dev.Options.LogOn {
|
||||
err = driver.StartCaptureLog("hrp_wda_log")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -272,7 +272,7 @@ func (dev *IOSDevice) Install(appPath string, opts ...option.InstallOption) (err
|
||||
installOpts := option.NewInstallOptions(opts...)
|
||||
for i := 0; i <= installOpts.RetryTimes; i++ {
|
||||
var conn *zipconduit.Connection
|
||||
conn, err = zipconduit.New(dev.d)
|
||||
conn, err = zipconduit.New(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -289,7 +289,7 @@ func (dev *IOSDevice) Install(appPath string, opts ...option.InstallOption) (err
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) Uninstall(bundleId string) error {
|
||||
svc, err := installationproxy.New(dev.d)
|
||||
svc, err := installationproxy.New(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -306,7 +306,7 @@ func (dev *IOSDevice) Forward(localPort, remotePort int) error {
|
||||
log.Warn().Msg(fmt.Sprintf("local port :%d is already in use", localPort))
|
||||
_ = dev.listeners[localPort].Close()
|
||||
}
|
||||
listener, err := forward.Forward(dev.d, uint16(localPort), uint16(remotePort))
|
||||
listener, err := forward.Forward(dev.DeviceEntry, uint16(localPort), uint16(remotePort))
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg(fmt.Sprintf("failed to forward %d to %d", localPort, remotePort))
|
||||
return err
|
||||
@@ -316,7 +316,7 @@ func (dev *IOSDevice) Forward(localPort, remotePort int) error {
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) GetDeviceInfo() (*DeviceDetail, error) {
|
||||
deviceInfo, err := deviceinfo.NewDeviceInfo(dev.d)
|
||||
deviceInfo, err := deviceinfo.NewDeviceInfo(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to get device info")
|
||||
return nil, err
|
||||
@@ -343,7 +343,7 @@ func (dev *IOSDevice) GetDeviceInfo() (*DeviceDetail, error) {
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) ListApps(appType ApplicationType) (apps []installationproxy.AppInfo, err error) {
|
||||
svc, _ := installationproxy.New(dev.d)
|
||||
svc, _ := installationproxy.New(dev.DeviceEntry)
|
||||
defer svc.Close()
|
||||
switch appType {
|
||||
case ApplicationTypeSystem:
|
||||
@@ -363,7 +363,7 @@ func (dev *IOSDevice) ListApps(appType ApplicationType) (apps []installationprox
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) GetAppInfo(packageName string) (appInfo installationproxy.AppInfo, err error) {
|
||||
svc, _ := installationproxy.New(dev.d)
|
||||
svc, _ := installationproxy.New(dev.DeviceEntry)
|
||||
defer svc.Close()
|
||||
apps, err := svc.BrowseAllApps()
|
||||
if err != nil {
|
||||
@@ -379,7 +379,7 @@ func (dev *IOSDevice) GetAppInfo(packageName string) (appInfo installationproxy.
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) ListImages() (images []string, err error) {
|
||||
conn, err := imagemounter.NewImageMounter(dev.d)
|
||||
conn, err := imagemounter.NewImageMounter(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(code.DeviceConnectionError, err.Error())
|
||||
}
|
||||
@@ -397,7 +397,7 @@ func (dev *IOSDevice) ListImages() (images []string, err error) {
|
||||
|
||||
func (dev *IOSDevice) MountImage(imagePath string) (err error) {
|
||||
log.Info().Str("imagePath", imagePath).Msg("mount ios developer image")
|
||||
conn, err := imagemounter.NewImageMounter(dev.d)
|
||||
conn, err := imagemounter.NewImageMounter(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
return errors.Wrap(code.DeviceConnectionError, err.Error())
|
||||
}
|
||||
@@ -414,7 +414,7 @@ func (dev *IOSDevice) MountImage(imagePath string) (err error) {
|
||||
|
||||
func (dev *IOSDevice) AutoMountImage(baseDir string) (err error) {
|
||||
log.Info().Str("baseDir", baseDir).Msg("auto mount ios developer image")
|
||||
imagePath, err := imagemounter.DownloadImageFor(dev.d, baseDir)
|
||||
imagePath, err := imagemounter.DownloadImageFor(dev.DeviceEntry, baseDir)
|
||||
if err != nil {
|
||||
return errors.Wrapf(code.DeviceConnectionError,
|
||||
"download ios developer image failed: %v", err)
|
||||
@@ -432,7 +432,7 @@ func (dev *IOSDevice) RunXCTest(ctx context.Context, bundleID, testRunnerBundleI
|
||||
BundleId: bundleID,
|
||||
TestRunnerBundleId: testRunnerBundleID,
|
||||
XctestConfigName: xctestConfig,
|
||||
Device: dev.d,
|
||||
Device: dev.DeviceEntry,
|
||||
Listener: listener,
|
||||
}
|
||||
_, err = testmanagerd.RunTestWithConfig(ctx, config)
|
||||
@@ -455,7 +455,7 @@ func (dev *IOSDevice) RunXCTestDaemon(ctx context.Context, bundleID, testRunnerB
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) getVersion() (version *semver.Version, err error) {
|
||||
version, err = ios.GetProductVersion(dev.d)
|
||||
version, err = ios.GetProductVersion(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to get version")
|
||||
return nil, err
|
||||
@@ -465,7 +465,7 @@ func (dev *IOSDevice) getVersion() (version *semver.Version, err error) {
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) ListProcess(applicationsOnly bool) (processList []instruments.ProcessInfo, err error) {
|
||||
service, err := instruments.NewDeviceInfoService(dev.d)
|
||||
service, err := instruments.NewDeviceInfoService(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to list process")
|
||||
return
|
||||
@@ -485,7 +485,7 @@ func (dev *IOSDevice) ListProcess(applicationsOnly bool) (processList []instrume
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) Reboot() error {
|
||||
err := diagnostics.Reboot(dev.d)
|
||||
err := diagnostics.Reboot(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("failed to reboot device")
|
||||
return err
|
||||
@@ -503,7 +503,7 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities option.Capabilities) (driver ID
|
||||
return nil, errors.Wrap(code.DeviceHTTPDriverError,
|
||||
fmt.Sprintf("get free port failed: %v", err))
|
||||
}
|
||||
if err = dev.Forward(localPort, dev.WDAPort); err != nil {
|
||||
if err = dev.Forward(localPort, dev.Options.WDAPort); err != nil {
|
||||
return nil, errors.Wrap(code.DeviceHTTPDriverError,
|
||||
fmt.Sprintf("forward tcp port failed: %v", err))
|
||||
}
|
||||
@@ -519,7 +519,7 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities option.Capabilities) (driver ID
|
||||
return nil, errors.Wrap(code.DeviceHTTPDriverError,
|
||||
fmt.Sprintf("get free port failed: %v", err))
|
||||
}
|
||||
if err = dev.Forward(localMjpegPort, dev.WDAMjpegPort); err != nil {
|
||||
if err = dev.Forward(localMjpegPort, dev.Options.WDAMjpegPort); err != nil {
|
||||
return nil, errors.Wrap(code.DeviceHTTPDriverError,
|
||||
fmt.Sprintf("forward tcp port failed: %v", err))
|
||||
}
|
||||
@@ -534,7 +534,7 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities option.Capabilities) (driver ID
|
||||
|
||||
wd := new(WDADriver)
|
||||
wd.IOSDevice = dev
|
||||
wd.udid = dev.UDID
|
||||
wd.udid = dev.Options.UDID
|
||||
wd.client = &http.Client{
|
||||
Timeout: time.Second * 10, // 设置超时时间为 10 秒
|
||||
}
|
||||
@@ -566,7 +566,7 @@ func (dev *IOSDevice) NewHTTPDriver(capabilities option.Capabilities) (driver ID
|
||||
}
|
||||
|
||||
func (dev *IOSDevice) GetPackageInfo(packageName string) (types.AppInfo, error) {
|
||||
svc, err := installationproxy.New(dev.d)
|
||||
svc, err := installationproxy.New(dev.DeviceEntry)
|
||||
if err != nil {
|
||||
return types.AppInfo{}, errors.Wrap(code.DeviceGetInfoError, err.Error())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user