appium服务
来源:互联网 发布:港融数据大平台主页 编辑:程序博客网 时间:2024/06/17 07:49
#coding=utf-8#coding=utf-8import reimport time,sys,osimport subprocessfrom UIAUTO_APP import settingsimport threadingfrom multiprocessing import Processsys.path.append(os.path.abspath('..'))from UIAUTO_APP.public.adbUtils import ADBclass AppiumServer(object): #TODO log_path = settings.testlog+'\\start_appium.log' def __init__(self): #多个设备信息的list self.machine_datas ={} #从文件读取出来的多个设备信息list def start_appium(self,ip,port,bp_port,udid): #'启动appium服务' print(u'devices:{} start appium...'.format(udid)) command_search = 'netstat -ano|findstr "{}"'.format(port) command_data=os.popen(command_search) data=command_data.read() print (data) port_list = re.findall(r":(\d{4,6}).*\s(\d{1,8})",data)#搜索端口和PID print (port_list) if port_list: #停服务 #排除进程为0的并转为dict去重 [port_list.remove(i)for i in port_list if i[1]=='0'] port_pid = dict(port_list) for k in port_pid.keys(): print(u'port:{0} is used,kill pid:{1}'.format(k,port_pid[k])) args3 = "taskkill -PID {} -F".format(port_pid[k]) os.popen(args3) #启服务 cmd2 = "start /b appium -a {0} -p {1} -bp {2} -U {3} -g {4} --no-reset".format(ip,port,bp_port,udid,self.log_path) t1 = RunServer(cmd2,self.log_path,udid) p = Process(target=t1.start()) p.start() def stop_server(self,port): p = os.popen('netstat -ano|findstr {0}|findstr LISTENING'.format(port)) out = p.read() if out: print (out) pid = out.split()[-1] print (pid) os.popen('taskkill /pid %s /f'%pid) def multi_startappium(self): '批量启动appium服务' try: if self.machine_datas: for single_machine in self.machine_datas: self.start_appium(single_machine['ip'],single_machine['port'],single_machine['bp_port'],single_machine['udid']) else: print(u'no machine info,please check') except Exception as e: # logs.exception(e) raise eclass RunServer(threading.Thread): def __init__(self, cmd,log_path,udid): threading.Thread.__init__(self) self.cmd = cmd self.log_path=log_path self.udid=udid def run(self): with subprocess.Popen(self.cmd,stdout=open(self.log_path,'a'),stderr=subprocess.PIPE,shell=True) as cmd2: cmd2.wait() time.sleep(8) print(u'devices:{} appium server start completed !'.format(self.udid)) # os.system(self.cmd)if __name__=='__main__': print (ADB().getDeviceIDs())# AppiumServer().start_appium('127.0.0.1','4723','2000','W8R0215902002905') AppiumServer().stop_server('4723')
阅读全文
0 0
- appium服务
- Appium 服务命令行参数
- Appium 服务关键字
- appium服务关键字
- appium服务日志解析
- Appium 服务关键字-capabilities
- Appium 服务关键字
- Appium 服务命令行参数
- 命令行启动Appium服务
- Appium 服务关键字
- Appium 服务关键字
- 转:Appium 服务关键字
- appium服务关键字
- DesiredCapabilities内容详解--Appium服务关键字
- DesiredCapabilities内容详解--Appium服务关键字
- 用python纯代码启动appium服务
- Appium使用命令行方式启动服务
- 基于python,安装appium服务错误问题
- targetSdkVersion<23中调用checkSelfPermission的问题
- erlang高性能网络库esockd的编译和使用(四)-env
- 基于原生JS(ES5)的鼠标移动(拖拽)HTML元素的插件(MoveElementJS)
- 多余的字数变成省略号
- Android Shape自定义纯色圆角按钮
- appium服务
- curl进行REST服务请求
- 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问
- python编程中的if __name__ == 'main': 的作用和原理
- gbk utf8 unicode
- C语言的基础与提高
- 15算法课程 169. Majority Element
- 树莓派3B使用wifi 连接网络
- SQLSERVER merge的简单用法