コード例 #1
0
def http_server_init():
    httpserver_config = Read_Http_Server_Config().httpserver_config
    port = httpserver_config.httpserver_port
    if "windows" == platform.system().lower():
        get_httpserver_process_id_command = 'netstat -ano|findstr "0.0.0.0:%s"' % port
        try:
            httpserver_process_id = subprocess.check_output(
                get_httpserver_process_id_command, shell=True)
            httpserver_process_id = httpserver_process_id.decode('utf-8')
            httpserver_process_id = StrTool.getStringWithLBRB(
                httpserver_process_id, 'LISTENING', '\r\n').strip()
            kill_httpserver_process_command = 'taskkill /F /pid %s' % httpserver_process_id
            print('###%s###1' % httpserver_process_id)
            try:
                print('关闭http.server进程,进程id:' + httpserver_process_id +
                      ',该进程监听已监听端口:' + port)
                subprocess.check_call(kill_httpserver_process_command,
                                      shell=True)
            except:
                print('关闭http.server进程失败,进程id:' + httpserver_process_id +
                      ',该进程监听已监听端口:' + port)
        except:
            print('http.server未查找到监听端口%s的服务' % port)
    elif "linux" == platform.system().lower():
        # 获得当前httpserver所有进程id
        get_httpserver_process_ids_command = "ps -ef|grep 'http.server %s'|grep -v grep|awk '{print $2}'" % port
        try:
            httpserver_process_ids = subprocess.check_output(
                get_httpserver_process_ids_command, shell=True)
            httpserver_process_ids = httpserver_process_ids.decode('utf-8')
            get_lambda = lambda info: list(filter(None, info.split('\n'))
                                           ) if info else []
            httpserver_process_ids = get_lambda(httpserver_process_ids)
            if not len(httpserver_process_ids) > 0:
                print('http.server未查找到监听端口%s的服务' % port)
            for httpserver_process_id in httpserver_process_ids:
                try:
                    print('关闭http.server进程,进程id:' + httpserver_process_id +
                          ',该进程监听已监听端口:' + port)
                    subprocess.check_output("kill -9 " + httpserver_process_id,
                                            shell=True)
                except:
                    print('关闭http.server进程失败,进程id:' + httpserver_process_id +
                          ',该进程监听已监听端口:' + port)
        except:
            print('http.server未查找到监听端口%s的服务' % port)
    elif "darwin" == platform.system().lower():
        pass
    print('启动http.server,使用端口' + port)
    p = multiprocessing.Process(target=start_http_server, args=(port, ))
    p.daemon = True
    p.start()
コード例 #2
0
def http_server_init():
    httpserver_config = Read_Http_Server_Config().httpserver_config
    port = httpserver_config.httpserver_port
    if "windows" == platform.system().lower():
        get_httpserver_process_id_command = 'netstat -ano|findstr "0.0.0.0:%s"' % port
        try:
            httpserver_process_id = subprocess.check_output(
                get_httpserver_process_id_command, shell=True)
            return
        except:
            print('http.server未查找到监听端口%s的服务' % port)
    elif "linux" == platform.system().lower():
        get_httpserver_process_ids_command = "ps -ef|grep 'http.server %s'|grep -v grep|awk '{print $2}'" % port
        httpserver_process_ids = subprocess.check_output(
            get_httpserver_process_ids_command, shell=True)
        if httpserver_process_ids:
            return
    elif "darwin" == platform.system().lower():
        pass
    p = multiprocessing.Process(target=start_http_server, args=(port, ))
    p.daemon = True
    p.start()
コード例 #3
0
 def get_devices_info(self):
     devices_info = []
     local_ip = Read_Http_Server_Config().httpserver_config.local_ip
     httpserver_port = Read_Http_Server_Config(
     ).httpserver_config.httpserver_port
     for i in range(len(self.devices_desc)):
         device_info = {}
         device_info.update({'device_desc': self.devices_desc[i].strip()})
         device_info.update(
             {'app_ui_config': self.app_ui_configs[i].strip()})
         device_info.update({'server_port': self.server_ports[i].strip()})
         device_info.update({'server_ip': self.server_ips[i].strip()})
         if self.system_auth_alert_labels:
             device_info.update({
                 'system_auth_alert_label':
                 self.system_auth_alert_labels[i]
             })
         # 构建desired_capabilities
         a_device_capabilities_num = 0
         a_device_appActivitys = []
         a_device_appPackages = []
         a_device_bundleIds = []
         a_device_apps = []
         if len(self.appActivitys) and len(self.appPackages):
             a_device_appActivitys = self.appActivitys[i].split('&&')
             a_device_appPackages = self.appPackages[i].split('&&')
             a_device_capabilities_num = len(a_device_appActivitys)
         if len(self.bundleIds):
             a_device_bundleIds = self.bundleIds[i].split('&&')
             a_device_capabilities_num = len(a_device_bundleIds)
         if len(self.apps_dirs):
             paths = os.walk(self.apps_dirs[i].strip())
             for dirPath, dirName, fileNames in paths:
                 for fileName in fileNames:
                     a_device_apps.append(
                         ('http://%s:%s/%s/%s') %
                         (local_ip, httpserver_port,
                          self.apps_dirs[i].strip(), fileName))
             a_device_capabilities_num = len(a_device_apps)
         if len(self.apps_urls):
             a_device_apps = self.apps_urls[i].split('&&')
             a_device_capabilities_num = len(a_device_apps)
         a_devices_desired_capabilities = []
         for j in range(a_device_capabilities_num):
             desired_capabilities = {}
             desired_capabilities.update({'udid': self.udids[i].strip()})
             desired_capabilities.update(
                 {'platformName': self.platformNames[i].strip()})
             if len(self.automationNames):
                 desired_capabilities.update(
                     {'automationName': self.automationNames[i].strip()})
             desired_capabilities.update(
                 {'platformVersion': self.platformVersions[i].strip()})
             if len(self.deviceNames):
                 desired_capabilities.update(
                     {'deviceName': self.deviceNames[i].strip()})
             if len(self.chromeDriverPorts):
                 desired_capabilities.update({
                     'chromedriverPort':
                     self.chromeDriverPorts[i].strip()
                 })
             if len(self.chromeDriverPaths):
                 desired_capabilities.update({
                     'chromedriverExecutable':
                     self.chromeDriverPaths[i].strip()
                 })
             if len(self.recreateChromeDriverSessions):
                 recreateChromeDriverSessions_value = False
                 if 'true' == self.recreateChromeDriverSessions[i].strip(
                 ).lower():
                     recreateChromeDriverSessions_value = True
                 desired_capabilities.update({
                     'recreateChromeDriverSessions':
                     recreateChromeDriverSessions_value
                 })
             if len(self.nativeWebScreenshots):
                 nativeWebScreenshot = False
                 if 'true' == self.nativeWebScreenshots[i].strip().lower():
                     nativeWebScreenshot = True
                 desired_capabilities.update(
                     {'nativeWebScreenshot': nativeWebScreenshot})
             desired_capabilities.update(
                 {'systemport': self.systemports[i].strip()})
             if len(self.wdaLocalPorts):
                 desired_capabilities.update(
                     {'wdaLocalPort': self.wdaLocalPorts[i].strip()})
             if len(self.appActivitys) and len(self.appPackages):
                 desired_capabilities.update(
                     {'appActivity': a_device_appActivitys[j].strip()})
                 desired_capabilities.update(
                     {'appPackage': a_device_appPackages[j].strip()})
             if len(self.bundleIds):
                 desired_capabilities.update(
                     {'bundleId': a_device_bundleIds[j].strip()})
             if len(self.apps_dirs) or len(self.apps_urls):
                 desired_capabilities.update(
                     {'app': a_device_apps[j].strip()})
             if len(self.noSigns):
                 noSign = False
                 if 'true' == self.noSigns[i].strip().lower():
                     noSign = True
                 desired_capabilities.update({'noSign': noSign})
             if len(self.fullResets):
                 fullReset = False
                 if 'true' == self.fullResets[i].strip().lower():
                     fullReset = True
                 desired_capabilities.update({'fullReset': fullReset})
             a_devices_desired_capabilities.append(desired_capabilities)
         device_info.update(
             {'capabilities': a_devices_desired_capabilities})
         # 完成一台设备构建
         devices_info.append(device_info)
     return devices_info