|
|
package monkey
|
|
|
|
|
|
import (
|
|
|
"autogo/common"
|
|
|
"autogo/dbsql"
|
|
|
"autogo/models"
|
|
|
"fmt"
|
|
|
"os/exec"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
|
"github.com/electricbubble/gwda"
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
"github.com/spf13/cast"
|
|
|
)
|
|
|
|
|
|
func RuniOSMonkeyByDocker(task models.MonkeyTask, udid string) {
|
|
|
db, err := dbsql.GetConn(dbsql.DSN)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
defer dbsql.Close(db)
|
|
|
db.Model(models.MonkeyTask{}).Where("id = ?", task.Id).Update("status", "INIT")
|
|
|
|
|
|
filename := cast.ToString(time.Now().UnixMilli()) + ".ipa"
|
|
|
pkg_path := "/root/app/autogo/downloads/" + filename
|
|
|
log.Debug("正在下载ipa:", task.PackageURL)
|
|
|
err = exec.Command("wget", task.PackageURL, "-O", pkg_path).Run()
|
|
|
if err != nil {
|
|
|
log.Error(err)
|
|
|
}
|
|
|
log.Debug("下载完毕,安装包路径", pkg_path)
|
|
|
|
|
|
// python main_adr.py -package music.hising.live.dev -launch_activity sing.lagufun.social.live.ui.activity.SplashActivity
|
|
|
cmd_content := task.Cmd(udid, filename)
|
|
|
|
|
|
db.Model(models.MonkeyTask{}).Where("id = ?", task.Id).Last(&task)
|
|
|
if task.Status != "INIT" {
|
|
|
common.PushCorntaskLog("任务状态异常,停止发起Monkey任务:" + task.Status)
|
|
|
return
|
|
|
}
|
|
|
log.Debug("开始调用monkey服务,执行命令")
|
|
|
log.Debug(cmd_content)
|
|
|
cmd := exec.Command("bash", "-c", cmd_content)
|
|
|
err = cmd.Run()
|
|
|
if err != nil {
|
|
|
log.Error(err)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// iOS设备保活,注意需要先启动wda
|
|
|
func KeepiOSDevice(udid string) error {
|
|
|
// 初始化wda驱动和设备信息
|
|
|
devices, err := gwda.DeviceList()
|
|
|
if err != nil {
|
|
|
fmt.Println()
|
|
|
return err
|
|
|
}
|
|
|
for _, v := range devices {
|
|
|
if strings.EqualFold(v.SerialNumber(), udid) {
|
|
|
fmt.Println("匹配到对应设备 -", udid)
|
|
|
driver, err := gwda.NewUSBDriver(nil, v)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
driver.PressButton(gwda.DeviceButtonHome)
|
|
|
return nil
|
|
|
}
|
|
|
}
|
|
|
return nil
|
|
|
}
|