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 }