mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-05 15:37:35 +08:00
refactor: move uixt pkg
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package option
|
||||
|
||||
import "github.com/httprunner/httprunner/v5/pkg/gadb"
|
||||
|
||||
type AndroidDeviceOptions struct {
|
||||
SerialNumber string `json:"serial,omitempty" yaml:"serial,omitempty"`
|
||||
LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"`
|
||||
|
||||
// adb
|
||||
AdbServerHost string `json:"adb_server_host,omitempty" yaml:"adb_server_host,omitempty"`
|
||||
AdbServerPort int `json:"adb_server_port,omitempty" yaml:"adb_server_port,omitempty"`
|
||||
|
||||
// uiautomator2
|
||||
UIA2 bool `json:"uia2,omitempty" yaml:"uia2,omitempty"` // use uiautomator2
|
||||
UIA2IP string `json:"uia2_ip,omitempty" yaml:"uia2_ip,omitempty"` // uiautomator2 server ip
|
||||
UIA2Port int `json:"uia2_port,omitempty" yaml:"uia2_port,omitempty"` // uiautomator2 server port
|
||||
UIA2ServerPackageName string `json:"uia2_server_package_name,omitempty" yaml:"uia2_server_package_name,omitempty"`
|
||||
UIA2ServerTestPackageName string `json:"uia2_server_test_package_name,omitempty" yaml:"uia2_server_test_package_name,omitempty"`
|
||||
}
|
||||
|
||||
func (dev *AndroidDeviceOptions) Options() (deviceOptions []AndroidDeviceOption) {
|
||||
if dev.SerialNumber != "" {
|
||||
deviceOptions = append(deviceOptions, WithSerialNumber(dev.SerialNumber))
|
||||
}
|
||||
if dev.UIA2 {
|
||||
deviceOptions = append(deviceOptions, WithUIA2(true))
|
||||
}
|
||||
if dev.UIA2IP != "" {
|
||||
deviceOptions = append(deviceOptions, WithUIA2IP(dev.UIA2IP))
|
||||
}
|
||||
if dev.UIA2Port != 0 {
|
||||
deviceOptions = append(deviceOptions, WithUIA2Port(dev.UIA2Port))
|
||||
}
|
||||
if dev.LogOn {
|
||||
deviceOptions = append(deviceOptions, WithAdbLogOn(true))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
const (
|
||||
// adb server
|
||||
defaultAdbServerHost = "localhost"
|
||||
defaultAdbServerPort = gadb.AdbServerPort // 5037
|
||||
|
||||
// uiautomator2 server
|
||||
defaultUIA2ServerHost = "localhost"
|
||||
defaultUIA2ServerPort = 6790
|
||||
defaultUIA2ServerPackageName = "io.appium.uiautomator2.server"
|
||||
defaultUIA2ServerTestPackageName = "io.appium.uiautomator2.server.test"
|
||||
|
||||
AdbKeyBoardPackageName = "com.android.adbkeyboard/.AdbIME"
|
||||
UnicodeImePackageName = "io.appium.settings/.UnicodeIME"
|
||||
)
|
||||
|
||||
func NewAndroidDeviceOptions(opts ...AndroidDeviceOption) *AndroidDeviceOptions {
|
||||
config := &AndroidDeviceOptions{}
|
||||
for _, opt := range opts {
|
||||
opt(config)
|
||||
}
|
||||
|
||||
// adb default
|
||||
if config.AdbServerHost == "" {
|
||||
config.AdbServerHost = defaultAdbServerHost
|
||||
}
|
||||
if config.AdbServerPort == 0 {
|
||||
config.AdbServerPort = defaultAdbServerPort
|
||||
}
|
||||
|
||||
// uiautomator2 default
|
||||
if config.UIA2IP == "" && config.UIA2Port == 0 {
|
||||
config.UIA2IP = defaultUIA2ServerHost
|
||||
config.UIA2Port = defaultUIA2ServerPort
|
||||
}
|
||||
if config.UIA2ServerPackageName == "" {
|
||||
config.UIA2ServerPackageName = defaultUIA2ServerPackageName
|
||||
}
|
||||
if config.UIA2ServerTestPackageName == "" {
|
||||
config.UIA2ServerTestPackageName = defaultUIA2ServerTestPackageName
|
||||
}
|
||||
|
||||
return config
|
||||
}
|
||||
|
||||
type AndroidDeviceOption func(*AndroidDeviceOptions)
|
||||
|
||||
func WithSerialNumber(serial string) AndroidDeviceOption {
|
||||
return func(device *AndroidDeviceOptions) {
|
||||
device.SerialNumber = serial
|
||||
}
|
||||
}
|
||||
|
||||
func WithUIA2(uia2On bool) AndroidDeviceOption {
|
||||
return func(device *AndroidDeviceOptions) {
|
||||
device.UIA2 = uia2On
|
||||
}
|
||||
}
|
||||
|
||||
func WithUIA2IP(ip string) AndroidDeviceOption {
|
||||
return func(device *AndroidDeviceOptions) {
|
||||
device.UIA2IP = ip
|
||||
}
|
||||
}
|
||||
|
||||
func WithUIA2Port(port int) AndroidDeviceOption {
|
||||
return func(device *AndroidDeviceOptions) {
|
||||
device.UIA2Port = port
|
||||
}
|
||||
}
|
||||
|
||||
func WithAdbLogOn(logOn bool) AndroidDeviceOption {
|
||||
return func(device *AndroidDeviceOptions) {
|
||||
device.LogOn = logOn
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user