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

View File

@@ -292,7 +292,7 @@ func (d *Device) ReverseForwardKill(remoteInterface interface{}) error {
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
if tp, err = d.createDeviceTransport(); err != nil {
return "", err

View File

@@ -7,9 +7,6 @@ const (
InvalidParamErrorCode = 100002
InvalidParamErrorMsg = "Invalid %s Param"
CodeNotFound = 1004
MsgNotFound = "Resource not found"
)
const (

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/terminal", parseDeviceInfo(), terminalAppHandler)
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.POST("/api/v1/:platform/:serial/shoots/login", parseDeviceInfo(), loginHandler)
router.POST("/api/v1/:platform/:serial/shoots/logout", parseDeviceInfo(), logoutHandler)
router.POST("/api/v1/:platform/:serial/stub/login", parseDeviceInfo(), loginHandler)
router.POST("/api/v1/:platform/:serial/stub/logout", parseDeviceInfo(), logoutHandler)
err := router.Run(fmt.Sprintf("127.0.0.1:%d", port))
if err != nil {
@@ -523,7 +523,7 @@ func parseDeviceInfo() gin.HandlerFunc {
c.Abort()
return
}
device, err := uixt.NewAndroidDevice(uixt.WithSerialNumber(serial), uixt.WithShoots(true))
device, err := uixt.NewAndroidDevice(uixt.WithSerialNumber(serial), uixt.WithStub(true))
if err != nil {
log.Error().Err(err).Str("platform", platform).Str("serial", serial).Msg(fmt.Sprintf("[%s]: Device Not Found", c.HandlerName()))
c.JSON(http.StatusBadRequest, HttpResponse{

View File

@@ -719,7 +719,7 @@ func (ad *adbDriver) GetDriverResults() []*DriverResult {
}
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 {
return app, err
}

View File

@@ -38,8 +38,8 @@ var (
InstallViaInstallerCommand = "am start -S -n sogou.mobile.explorer/.PackageInstallerActivity -d"
)
//go:embed eval_tool
var evalTool embed.FS
//go:embed evalite
var evalite embed.FS
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) {
device.SHOOTS = shootsOn
device.STUB = stubOn
}
}
@@ -131,11 +131,11 @@ func NewAndroidDevice(options ...AndroidDeviceOption) (device *AndroidDevice, er
device.d = dev
device.logcat = NewAdbLogcat(device.SerialNumber)
evalToolRaw, err := evalTool.ReadFile("eval_tool")
evalToolRaw, err := evalite.ReadFile("evalite")
if err != nil {
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 {
return nil, errors.Wrap(code.AndroidShellExecError, err.Error())
}
@@ -181,7 +181,7 @@ type AndroidDevice struct {
logcat *AdbLogcat
SerialNumber string `json:"serial,omitempty" yaml:"serial,omitempty"`
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
UIA2Port int `json:"uia2_port,omitempty" yaml:"uia2_port,omitempty"` // uiautomator2 server port
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
if dev.UIA2 || dev.LogOn {
driver, err = dev.NewUSBDriver(driverOptions.capabilities)
} else if dev.SHOOTS {
driver, err = dev.NewShootsDriver(driverOptions.capabilities)
} else if dev.STUB {
driver, err = dev.NewStubDriver(driverOptions.capabilities)
} else {
driver, err = dev.NewAdbDriver()
}
@@ -258,12 +258,12 @@ func (dev *AndroidDevice) NewUSBDriver(capabilities Capabilities) (driver WebDri
return uiaDriver, nil
}
func (dev *AndroidDevice) NewShootsDriver(capabilities Capabilities) (driver *ShootsAndroidDriver, err error) {
socketLocalPort, err := dev.d.Forward(ShootsSocketName)
func (dev *AndroidDevice) NewStubDriver(capabilities Capabilities) (driver *stubAndroidDriver, err error) {
socketLocalPort, err := dev.d.Forward(StubSocketName)
if err != nil {
return nil, errors.Wrap(code.AndroidDeviceConnectionError,
fmt.Sprintf("forward port %d->%s failed: %v",
socketLocalPort, ShootsSocketName, err))
socketLocalPort, StubSocketName, err))
}
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",
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 {
_ = dev.d.ForwardKill(socketLocalPort)
_ = dev.d.ForwardKill(serverLocalPort)
return nil, errors.Wrap(code.AndroidDeviceConnectionError, err.Error())
}
shootsDriver.adbClient = dev.d
shootsDriver.logcat = dev.logcat
stubDriver.adbClient = dev.d
stubDriver.logcat = dev.logcat
return shootsDriver, nil
return stubDriver, nil
}
// NewHTTPDriver creates new remote HTTP client, this will also start a new session.

View File

@@ -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)
}
}

View File

@@ -15,18 +15,18 @@ import (
"github.com/httprunner/httprunner/v4/hrp/internal/json"
)
type ShootsAndroidDriver struct {
type stubAndroidDriver struct {
socket net.Conn
seq int
timeout time.Duration
adbDriver
}
const ShootsSocketName = "com.bytest.device"
const StubSocketName = "com.bytest.device"
// newShootsAndroidDriver
// 创建shoots Driver address为forward后的端口格式127.0.0.1:${port}
func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...time.Duration) (*ShootsAndroidDriver, error) {
// newStubAndroidDriver
// 创建stub Driver address为forward后的端口格式127.0.0.1:${port}
func newStubAndroidDriver(address string, urlPrefix string, readTimeout ...time.Duration) (*stubAndroidDriver, error) {
timeout := 10 * time.Second
if len(readTimeout) > 0 {
timeout = readTimeout[0]
@@ -38,7 +38,7 @@ func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...tim
return nil, err
}
driver := &ShootsAndroidDriver{
driver := &stubAndroidDriver{
socket: conn,
timeout: timeout,
}
@@ -50,7 +50,7 @@ func newShootsAndroidDriver(address string, urlPrefix string, readTimeout ...tim
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
{
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)
}
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
{
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)
}
func (sad *ShootsAndroidDriver) NewSession(capabilities Capabilities) (SessionInfo, error) {
func (sad *stubAndroidDriver) NewSession(capabilities Capabilities) (SessionInfo, error) {
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++
packet := map[string]interface{}{
"Seq": sad.seq,
@@ -115,7 +115,7 @@ func (sad *ShootsAndroidDriver) sendCommand(packageName string, cmdType string,
return nil, err
}
res, err := sad.adbClient.RunShootsCommand(append(data, '\n'), packageName)
res, err := sad.adbClient.RunStubCommand(append(data, '\n'), packageName)
if err != nil {
return nil, err
}
@@ -124,24 +124,24 @@ func (sad *ShootsAndroidDriver) sendCommand(packageName string, cmdType string,
return nil, err
}
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
}
func (sad *ShootsAndroidDriver) DeleteSession() error {
func (sad *stubAndroidDriver) DeleteSession() error {
return sad.close()
}
func (sad *ShootsAndroidDriver) close() error {
func (sad *stubAndroidDriver) close() error {
if sad.socket != nil {
return sad.socket.Close()
}
return nil
}
func (sad *ShootsAndroidDriver) Status() (DeviceStatus, error) {
func (sad *stubAndroidDriver) Status() (DeviceStatus, error) {
app, err := sad.GetForegroundApp()
if err != nil {
return DeviceStatus{}, err
@@ -150,11 +150,11 @@ func (sad *ShootsAndroidDriver) Status() (DeviceStatus, error) {
if err != nil {
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
}
func (sad *ShootsAndroidDriver) Source(srcOpt ...SourceOption) (source string, err error) {
func (sad *stubAndroidDriver) Source(srcOpt ...SourceOption) (source string, err error) {
app, err := sad.GetForegroundApp()
if err != nil {
return "", err
@@ -172,7 +172,7 @@ func (sad *ShootsAndroidDriver) Source(srcOpt ...SourceOption) (source string, e
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)
time.Sleep(10 * time.Second)
login, err := sad.isLogin(packageName)
@@ -183,7 +183,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUIBak(packageName, phoneNumber, captcha
return err
}
func (sad *ShootsAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha string) error {
func (sad *stubAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha string) error {
params := map[string]interface{}{
"phone": phoneNumber,
"code": captcha,
@@ -213,7 +213,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUI(packageName, phoneNumber, captcha st
return nil
}
func (sad *ShootsAndroidDriver) LogoutNoneUI(packageName string) error {
func (sad *stubAndroidDriver) LogoutNoneUI(packageName string) error {
resp, err := sad.httpGET("/host", "/logout")
if err != nil {
return err
@@ -235,7 +235,7 @@ func (sad *ShootsAndroidDriver) LogoutNoneUI(packageName string) error {
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{}{
"ClassName": "qe.python.test.LoginUtil",
"Method": "loginSync",
@@ -250,7 +250,7 @@ func (sad *ShootsAndroidDriver) LoginNoneUIDynamic(packageName, phoneNumber stri
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")
if err != nil {
return false, err

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)
}
}