fix: 修改变量名称

This commit is contained in:
余泓铮
2024-08-22 21:48:17 +08:00
parent 12deee4e44
commit 586981b072
9 changed files with 100 additions and 103 deletions
+1 -1
View File
@@ -292,7 +292,7 @@ func (d *Device) ReverseForwardKill(remoteInterface interface{}) error {
return err return err
} }
func (d *Device) RunShootsCommand(command []byte, processName string) (res string, err error) { func (d *Device) RunStubCommand(command []byte, processName string) (res string, err error) {
var tp transport var tp transport
if tp, err = d.createDeviceTransport(); err != nil { if tp, err = d.createDeviceTransport(); err != nil {
return "", err return "", err
-3
View File
@@ -7,9 +7,6 @@ const (
InvalidParamErrorCode = 100002 InvalidParamErrorCode = 100002
InvalidParamErrorMsg = "Invalid %s Param" InvalidParamErrorMsg = "Invalid %s Param"
CodeNotFound = 1004
MsgNotFound = "Resource not found"
) )
const ( const (
+4 -4
View File
@@ -28,10 +28,10 @@ func NewServer(port int) error {
router.POST("/api/v1/:platform/:serial/app/launch", parseDeviceInfo(), launchAppHandler) router.POST("/api/v1/:platform/:serial/app/launch", parseDeviceInfo(), launchAppHandler)
router.POST("/api/v1/:platform/:serial/app/terminal", parseDeviceInfo(), terminalAppHandler) router.POST("/api/v1/:platform/:serial/app/terminal", parseDeviceInfo(), terminalAppHandler)
router.GET("/api/v1/:platform/:serial/screenshot", parseDeviceInfo(), screenshotHandler) router.GET("/api/v1/:platform/:serial/screenshot", parseDeviceInfo(), screenshotHandler)
router.GET("/api/v1/:platform/:serial/shoots/source", parseDeviceInfo(), sourceHandler) router.GET("/api/v1/:platform/:serial/stub/source", parseDeviceInfo(), sourceHandler)
router.GET("/api/v1/:platform/:serial/adb/source", parseDeviceInfo(), adbSourceHandler) router.GET("/api/v1/:platform/:serial/adb/source", parseDeviceInfo(), adbSourceHandler)
router.POST("/api/v1/:platform/:serial/shoots/login", parseDeviceInfo(), loginHandler) router.POST("/api/v1/:platform/:serial/stub/login", parseDeviceInfo(), loginHandler)
router.POST("/api/v1/:platform/:serial/shoots/logout", parseDeviceInfo(), logoutHandler) router.POST("/api/v1/:platform/:serial/stub/logout", parseDeviceInfo(), logoutHandler)
err := router.Run(fmt.Sprintf("127.0.0.1:%d", port)) err := router.Run(fmt.Sprintf("127.0.0.1:%d", port))
if err != nil { if err != nil {
@@ -523,7 +523,7 @@ func parseDeviceInfo() gin.HandlerFunc {
c.Abort() c.Abort()
return return
} }
device, err := uixt.NewAndroidDevice(uixt.WithSerialNumber(serial), uixt.WithShoots(true)) device, err := uixt.NewAndroidDevice(uixt.WithSerialNumber(serial), uixt.WithStub(true))
if err != nil { if err != nil {
log.Error().Err(err).Str("platform", platform).Str("serial", serial).Msg(fmt.Sprintf("[%s]: Device Not Found", c.HandlerName())) log.Error().Err(err).Str("platform", platform).Str("serial", serial).Msg(fmt.Sprintf("[%s]: Device Not Found", c.HandlerName()))
c.JSON(http.StatusBadRequest, HttpResponse{ c.JSON(http.StatusBadRequest, HttpResponse{
+1 -1
View File
@@ -719,7 +719,7 @@ func (ad *adbDriver) GetDriverResults() []*DriverResult {
} }
func (ad *adbDriver) GetForegroundApp() (app AppInfo, err error) { func (ad *adbDriver) GetForegroundApp() (app AppInfo, err error) {
packageInfo, err := ad.adbClient.RunShellCommand("CLASSPATH=/data/local/tmp/eval_tool", "app_process", "/", "com.bytedance.iesqa.eval_process.PackageService") packageInfo, err := ad.adbClient.RunShellCommand("CLASSPATH=/data/local/tmp/evalite", "app_process", "/", "com.bytedance.iesqa.eval_process.PackageService")
if err != nil { if err != nil {
return app, err return app, err
} }
+16 -16
View File
@@ -38,8 +38,8 @@ var (
InstallViaInstallerCommand = "am start -S -n sogou.mobile.explorer/.PackageInstallerActivity -d" InstallViaInstallerCommand = "am start -S -n sogou.mobile.explorer/.PackageInstallerActivity -d"
) )
//go:embed eval_tool //go:embed evalite
var evalTool embed.FS var evalite embed.FS
const forwardToPrefix = "forward-to-" const forwardToPrefix = "forward-to-"
@@ -57,9 +57,9 @@ func WithUIA2(uia2On bool) AndroidDeviceOption {
} }
} }
func WithShoots(shootsOn bool) AndroidDeviceOption { func WithStub(stubOn bool) AndroidDeviceOption {
return func(device *AndroidDevice) { return func(device *AndroidDevice) {
device.SHOOTS = shootsOn device.STUB = stubOn
} }
} }
@@ -131,11 +131,11 @@ func NewAndroidDevice(options ...AndroidDeviceOption) (device *AndroidDevice, er
device.d = dev device.d = dev
device.logcat = NewAdbLogcat(device.SerialNumber) device.logcat = NewAdbLogcat(device.SerialNumber)
evalToolRaw, err := evalTool.ReadFile("eval_tool") evalToolRaw, err := evalite.ReadFile("evalite")
if err != nil { if err != nil {
return nil, errors.Wrap(code.LoadFileError, err.Error()) return nil, errors.Wrap(code.LoadFileError, err.Error())
} }
err = dev.Push(bytes.NewReader(evalToolRaw), "/data/local/tmp/eval_tool", time.Now()) err = dev.Push(bytes.NewReader(evalToolRaw), "/data/local/tmp/evalite", time.Now())
if err != nil { if err != nil {
return nil, errors.Wrap(code.AndroidShellExecError, err.Error()) return nil, errors.Wrap(code.AndroidShellExecError, err.Error())
} }
@@ -181,7 +181,7 @@ type AndroidDevice struct {
logcat *AdbLogcat logcat *AdbLogcat
SerialNumber string `json:"serial,omitempty" yaml:"serial,omitempty"` SerialNumber string `json:"serial,omitempty" yaml:"serial,omitempty"`
UIA2 bool `json:"uia2,omitempty" yaml:"uia2,omitempty"` // use uiautomator2 UIA2 bool `json:"uia2,omitempty" yaml:"uia2,omitempty"` // use uiautomator2
SHOOTS bool `json:"shoots,omitempty" yaml:"uia2,omitempty"` // use uiautomator2 STUB bool `json:"stub,omitempty" yaml:"stub,omitempty"` // use uiautomator2
UIA2IP string `json:"uia2_ip,omitempty" yaml:"uia2_ip,omitempty"` // uiautomator2 server ip 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 UIA2Port int `json:"uia2_port,omitempty" yaml:"uia2_port,omitempty"` // uiautomator2 server port
LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"` LogOn bool `json:"log_on,omitempty" yaml:"log_on,omitempty"`
@@ -212,8 +212,8 @@ func (dev *AndroidDevice) NewDriver(options ...DriverOption) (driverExt *DriverE
var driver WebDriver var driver WebDriver
if dev.UIA2 || dev.LogOn { if dev.UIA2 || dev.LogOn {
driver, err = dev.NewUSBDriver(driverOptions.capabilities) driver, err = dev.NewUSBDriver(driverOptions.capabilities)
} else if dev.SHOOTS { } else if dev.STUB {
driver, err = dev.NewShootsDriver(driverOptions.capabilities) driver, err = dev.NewStubDriver(driverOptions.capabilities)
} else { } else {
driver, err = dev.NewAdbDriver() driver, err = dev.NewAdbDriver()
} }
@@ -258,12 +258,12 @@ func (dev *AndroidDevice) NewUSBDriver(capabilities Capabilities) (driver WebDri
return uiaDriver, nil return uiaDriver, nil
} }
func (dev *AndroidDevice) NewShootsDriver(capabilities Capabilities) (driver *ShootsAndroidDriver, err error) { func (dev *AndroidDevice) NewStubDriver(capabilities Capabilities) (driver *stubAndroidDriver, err error) {
socketLocalPort, err := dev.d.Forward(ShootsSocketName) socketLocalPort, err := dev.d.Forward(StubSocketName)
if err != nil { if err != nil {
return nil, errors.Wrap(code.AndroidDeviceConnectionError, return nil, errors.Wrap(code.AndroidDeviceConnectionError,
fmt.Sprintf("forward port %d->%s failed: %v", fmt.Sprintf("forward port %d->%s failed: %v",
socketLocalPort, ShootsSocketName, err)) socketLocalPort, StubSocketName, err))
} }
serverLocalPort, err := dev.d.Forward(DouyinServerPort) serverLocalPort, err := dev.d.Forward(DouyinServerPort)
@@ -276,16 +276,16 @@ func (dev *AndroidDevice) NewShootsDriver(capabilities Capabilities) (driver *Sh
rawURL := fmt.Sprintf("http://%s%d:%d", rawURL := fmt.Sprintf("http://%s%d:%d",
forwardToPrefix, serverLocalPort, DouyinServerPort) forwardToPrefix, serverLocalPort, DouyinServerPort)
shootsDriver, err := newShootsAndroidDriver(fmt.Sprintf("127.0.0.1:%d", socketLocalPort), rawURL) stubDriver, err := newStubAndroidDriver(fmt.Sprintf("127.0.0.1:%d", socketLocalPort), rawURL)
if err != nil { if err != nil {
_ = dev.d.ForwardKill(socketLocalPort) _ = dev.d.ForwardKill(socketLocalPort)
_ = dev.d.ForwardKill(serverLocalPort) _ = dev.d.ForwardKill(serverLocalPort)
return nil, errors.Wrap(code.AndroidDeviceConnectionError, err.Error()) return nil, errors.Wrap(code.AndroidDeviceConnectionError, err.Error())
} }
shootsDriver.adbClient = dev.d stubDriver.adbClient = dev.d
shootsDriver.logcat = dev.logcat stubDriver.logcat = dev.logcat
return shootsDriver, nil return stubDriver, nil
} }
// NewHTTPDriver creates new remote HTTP client, this will also start a new session. // NewHTTPDriver creates new remote HTTP client, this will also start a new session.
@@ -1,56 +0,0 @@
package uixt
import "testing"
var shootsDriver *ShootsAndroidDriver
func setupShootsDriver(t *testing.T) {
device, err := NewAndroidDevice()
checkErr(t, err)
device.SHOOTS = true
shootsDriver, err = device.NewShootsDriver(Capabilities{})
checkErr(t, err)
}
func TestHello(t *testing.T) {
setupShootsDriver(t)
status, err := shootsDriver.Status()
if err != nil {
t.Fatal(err)
}
t.Log(status)
}
func TestSource(t *testing.T) {
setupShootsDriver(t)
source, err := shootsDriver.Source()
if err != nil {
t.Fatal(err)
}
t.Log(source)
}
func TestIsLogin(t *testing.T) {
setupShootsDriver(t)
res, err := shootsDriver.isLogin("com.ss.android.ugc.aweme")
if err != nil {
t.Fatal(err)
}
t.Log(res)
}
func TestLogin(t *testing.T) {
setupShootsDriver(t)
err := shootsDriver.LoginNoneUI("com.ss.android.ugc.aweme", "12342316231", "8517")
if err != nil {
t.Fatal(err)
}
}
func TestLogout(t *testing.T) {
setupShootsDriver(t)
err := shootsDriver.LogoutNoneUI("com.ss.android.ugc.aweme")
if err != nil {
t.Fatal(err)
}
}
@@ -15,18 +15,18 @@ import (
"github.com/httprunner/httprunner/v4/hrp/internal/json" "github.com/httprunner/httprunner/v4/hrp/internal/json"
) )
type ShootsAndroidDriver struct { type stubAndroidDriver struct {
socket net.Conn socket net.Conn
seq int seq int
timeout time.Duration timeout time.Duration
adbDriver adbDriver
} }
const ShootsSocketName = "com.bytest.device" const StubSocketName = "com.bytest.device"
// newShootsAndroidDriver // newStubAndroidDriver
// 创建shoots Driver address为forward后的端口格式127.0.0.1:${port} // 创建stub Driver address为forward后的端口格式127.0.0.1:${port}
func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...time.Duration) (*ShootsAndroidDriver, error) { func newStubAndroidDriver(address string, urlPrefix string, readTimeout ...time.Duration) (*stubAndroidDriver, error) {
timeout := 10 * time.Second timeout := 10 * time.Second
if len(readTimeout) > 0 { if len(readTimeout) > 0 {
timeout = readTimeout[0] timeout = readTimeout[0]
@@ -38,7 +38,7 @@ func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...tim
return nil, err return nil, err
} }
driver := &ShootsAndroidDriver{ driver := &stubAndroidDriver{
socket: conn, socket: conn,
timeout: timeout, timeout: timeout,
} }
@@ -50,7 +50,7 @@ func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...tim
return driver, nil return driver, nil
} }
func (sad *ShootsAndroidDriver) httpGET(pathElem ...string) (rawResp rawResponse, err error) { func (sad *stubAndroidDriver) httpGET(pathElem ...string) (rawResp rawResponse, err error) {
var localPort int var localPort int
{ {
tmpURL, _ := url.Parse(sad.urlPrefix.String()) tmpURL, _ := url.Parse(sad.urlPrefix.String())
@@ -68,7 +68,7 @@ func (sad *ShootsAndroidDriver) httpGET(pathElem ...string) (rawResp rawResponse
return sad.httpRequest(http.MethodGet, sad.concatURL(nil, pathElem...), nil) return sad.httpRequest(http.MethodGet, sad.concatURL(nil, pathElem...), nil)
} }
func (sad *ShootsAndroidDriver) httpPOST(data interface{}, pathElem ...string) (rawResp rawResponse, err error) { func (sad *stubAndroidDriver) httpPOST(data interface{}, pathElem ...string) (rawResp rawResponse, err error) {
var localPort int var localPort int
{ {
tmpURL, _ := url.Parse(sad.urlPrefix.String()) tmpURL, _ := url.Parse(sad.urlPrefix.String())
@@ -93,11 +93,11 @@ func (sad *ShootsAndroidDriver) httpPOST(data interface{}, pathElem ...string) (
return sad.httpRequest(http.MethodPost, sad.concatURL(nil, pathElem...), bsJSON) return sad.httpRequest(http.MethodPost, sad.concatURL(nil, pathElem...), bsJSON)
} }
func (sad *ShootsAndroidDriver) NewSession(capabilities Capabilities) (SessionInfo, error) { func (sad *stubAndroidDriver) NewSession(capabilities Capabilities) (SessionInfo, error) {
return SessionInfo{}, errDriverNotImplemented return SessionInfo{}, errDriverNotImplemented
} }
func (sad *ShootsAndroidDriver) sendCommand(packageName string, cmdType string, params map[string]interface{}, readTimeout ...time.Duration) (interface{}, error) { func (sad *stubAndroidDriver) sendCommand(packageName string, cmdType string, params map[string]interface{}, readTimeout ...time.Duration) (interface{}, error) {
sad.seq++ sad.seq++
packet := map[string]interface{}{ packet := map[string]interface{}{
"Seq": sad.seq, "Seq": sad.seq,
@@ -115,7 +115,7 @@ func (sad *ShootsAndroidDriver) sendCommand(packageName string, cmdType string,
return nil, err return nil, err
} }
res, err := sad.adbClient.RunShootsCommand(append(data, '\n'), packageName) res, err := sad.adbClient.RunStubCommand(append(data, '\n'), packageName)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -124,24 +124,24 @@ func (sad *ShootsAndroidDriver) sendCommand(packageName string, cmdType string,
return nil, err return nil, err
} }
if resultMap["Error"] != nil { if resultMap["Error"] != nil {
return nil, fmt.Errorf("failed to call shoots command: %s", resultMap["Error"].(string)) return nil, fmt.Errorf("failed to call stub command: %s", resultMap["Error"].(string))
} }
return resultMap["Result"], nil return resultMap["Result"], nil
} }
func (sad *ShootsAndroidDriver) DeleteSession() error { func (sad *stubAndroidDriver) DeleteSession() error {
return sad.close() return sad.close()
} }
func (sad *ShootsAndroidDriver) close() error { func (sad *stubAndroidDriver) close() error {
if sad.socket != nil { if sad.socket != nil {
return sad.socket.Close() return sad.socket.Close()
} }
return nil return nil
} }
func (sad *ShootsAndroidDriver) Status() (DeviceStatus, error) { func (sad *stubAndroidDriver) Status() (DeviceStatus, error) {
app, err := sad.GetForegroundApp() app, err := sad.GetForegroundApp()
if err != nil { if err != nil {
return DeviceStatus{}, err return DeviceStatus{}, err
@@ -150,11 +150,11 @@ func (sad *ShootsAndroidDriver) Status() (DeviceStatus, error) {
if err != nil { if err != nil {
return DeviceStatus{}, err return DeviceStatus{}, err
} }
log.Info().Msg(fmt.Sprintf("pint shoots result :%v", res)) log.Info().Msg(fmt.Sprintf("ping stub result :%v", res))
return DeviceStatus{}, nil return DeviceStatus{}, nil
} }
func (sad *ShootsAndroidDriver) Source(srcOpt ...SourceOption) (source string, err error) { func (sad *stubAndroidDriver) Source(srcOpt ...SourceOption) (source string, err error) {
app, err := sad.GetForegroundApp() app, err := sad.GetForegroundApp()
if err != nil { if err != nil {
return "", err return "", err
@@ -172,7 +172,7 @@ func (sad *ShootsAndroidDriver) Source(srcOpt ...SourceOption) (source string, e
return res.(string), nil return res.(string), nil
} }
func (sad *ShootsAndroidDriver) LoginNoneUIBak(packageName, phoneNumber, captcha string) error { func (sad *stubAndroidDriver) LoginNoneUIBak(packageName, phoneNumber, captcha string) error {
_, err := sad.adbClient.RunShellCommand("am", "broadcast", "-a", fmt.Sprintf("%s.util.crony.action_login", packageName), "-e", "phone", phoneNumber, "-e", "code", captcha) _, err := sad.adbClient.RunShellCommand("am", "broadcast", "-a", fmt.Sprintf("%s.util.crony.action_login", packageName), "-e", "phone", phoneNumber, "-e", "code", captcha)
time.Sleep(10 * time.Second) time.Sleep(10 * time.Second)
login, err := sad.isLogin(packageName) login, err := sad.isLogin(packageName)
@@ -183,7 +183,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUIBak(packageName, phoneNumber, captcha
return err return err
} }
func (sad *ShootsAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha string) error { func (sad *stubAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha string) error {
params := map[string]interface{}{ params := map[string]interface{}{
"phone": phoneNumber, "phone": phoneNumber,
"code": captcha, "code": captcha,
@@ -213,7 +213,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha st
return nil return nil
} }
func (sad *ShootsAndroidDriver) LogoutNoneUI(packageName string) error { func (sad *stubAndroidDriver) LogoutNoneUI(packageName string) error {
resp, err := sad.httpGET("/host", "/logout") resp, err := sad.httpGET("/host", "/logout")
if err != nil { if err != nil {
return err return err
@@ -235,7 +235,7 @@ func (sad *ShootsAndroidDriver) LogoutNoneUI(packageName string) error {
return nil return nil
} }
func (sad *ShootsAndroidDriver) LoginNoneUIDynamic(packageName, phoneNumber string, captcha string) error { func (sad *stubAndroidDriver) LoginNoneUIDynamic(packageName, phoneNumber string, captcha string) error {
params := map[string]interface{}{ params := map[string]interface{}{
"ClassName": "qe.python.test.LoginUtil", "ClassName": "qe.python.test.LoginUtil",
"Method": "loginSync", "Method": "loginSync",
@@ -250,7 +250,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUIDynamic(packageName, phoneNumber stri
return nil return nil
} }
func (sad *ShootsAndroidDriver) isLogin(packageName string) (login bool, err error) { func (sad *stubAndroidDriver) isLogin(packageName string) (login bool, err error) {
resp, err := sad.httpGET("/host", "/login", "/check") resp, err := sad.httpGET("/host", "/login", "/check")
if err != nil { if err != nil {
return false, err return false, err
+56
View File
@@ -0,0 +1,56 @@
package uixt
import "testing"
var androidStubDriver *stubAndroidDriver
func setupStubDriver(t *testing.T) {
device, err := NewAndroidDevice()
checkErr(t, err)
device.STUB = true
androidStubDriver, err = device.NewStubDriver(Capabilities{})
checkErr(t, err)
}
func TestHello(t *testing.T) {
setupStubDriver(t)
status, err := androidStubDriver.Status()
if err != nil {
t.Fatal(err)
}
t.Log(status)
}
func TestSource(t *testing.T) {
setupStubDriver(t)
source, err := androidStubDriver.Source()
if err != nil {
t.Fatal(err)
}
t.Log(source)
}
func TestIsLogin(t *testing.T) {
setupStubDriver(t)
res, err := androidStubDriver.isLogin("com.ss.android.ugc.aweme")
if err != nil {
t.Fatal(err)
}
t.Log(res)
}
func TestLogin(t *testing.T) {
setupStubDriver(t)
err := androidStubDriver.LoginNoneUI("com.ss.android.ugc.aweme", "12342316231", "8517")
if err != nil {
t.Fatal(err)
}
}
func TestLogout(t *testing.T) {
setupStubDriver(t)
err := androidStubDriver.LogoutNoneUI("com.ss.android.ugc.aweme")
if err != nil {
t.Fatal(err)
}
}