Appium多线程自动化测试批量关闭cmd窗口(appium)

1.自动化测时候,连接多台设备,需要单独启动一个appium server,也就意味着要多开cmd窗口;但是测试结束后,cmd窗口不会自动关闭;

2.当然可以通过“start /b”在后台运行;这种方法一个设备还可以;但是多个设备就会出问题;

3.清理appium的cmd窗口解决办法:运行前为appium设置title,测试结束后没找到title对应的进程,杀死进程;

注:由于是用udid创建的窗口,所以 title = udid

def start_appium(udid,port):
    try:
        bp = int(port) + 1
        cmd = r'start "' + str(udid) + '" /min  appium -p ' + str(port) + ' -bp ' + str(bp) + ' -U ' + str(
            udid) + ' --session-override -a 127.0.0.1 --command-timeout 600'
        log.info(cmd)
        res = os.popen(cmd)
    
    except Exception as err:
        return "fail: %s" % str(err)


def close_cmd_window(title):
    try:
   
        cmd = 'tasklist /v |find "' + str(title) + '" '
        res = (os.popen(cmd)).read()
        pid = [(i.split())[1] for i in res.strip().split("\n") if i != ""]
        if len(pid) > 0:
            for i in pid:
                cmd = 'taskkill /f /pid ' + str(i)
                res = (os.popen(cmd)).read()
        print("关闭cmd窗口成功:%s" % str(title))
    except Exception as err:
        raise Exception(str(err))    

  

  

posted @ 2020-04-28 16:05  breakcircle  阅读(398)  评论(0编辑  收藏  举报