mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-05 07:26:55 +08:00
fix: 修改变量名称
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user