コード例 #1
0
 def kill():
     Log.info("Kill gradle processes.")
     if Settings.HOST_OS is OSType.WINDOWS:
         Process.kill(proc_name='java.exe', proc_cmdline='gradle')
     else:
         command = "ps -ef  | grep '.gradle/wrapper' | grep -v grep | awk '{ print $2 }' | xargs kill -9"
         run(cmd=command)
コード例 #2
0
    def tearDown(self):
        # pylint: disable=no-member

        # Kill processes
        Tns.kill()
        AppiumDriver.kill()
        Gradle.kill()
        Process.kill_all_in_context()
        TnsTest.restore_files()

        # Get outcome
        if hasattr(self, '_outcome'):  # Python 3.4+
            result = self.defaultTestResult()  # these 2 methods have no side effects
            self._feedErrorsToResult(result, self._outcome.errors)
        else:  # Python 3.2 - 3.3 or 3.0 - 3.1 and 2.7
            result = getattr(self, '_outcomeForDoCleanups', self._resultForDoCleanups)

        # Take screen on test fail
        if result.errors or result.failures:
            self.get_screenshots()
            self.archive_apps()
            outcome = 'FAILED'
        else:
            outcome = 'PASSED'
        Log.test_end(test_name=TestContext.TEST_NAME, outcome=outcome)
コード例 #3
0
 def stop():
     if Settings.HOST_OS == OSType.WINDOWS:
         Process.kill('Docker Desktop')
         Process.kill('Docker.Watchguard')
         Process.kill('com.docker.backend')
         Process.kill('com.docker.proxy')
     if OSUtils.is_catalina():
         Process.kill('Docker')
コード例 #4
0
 def tearDownClass(cls):
     """
     Logic executed after all core_tests in class.
     """
     Tns.kill()
     TnsTest.kill_emulators()
     Process.kill_all_in_context()
     Folder.clean(Settings.TEST_OUT_TEMP)
     Log.test_class_end(TestContext.CLASS_NAME)
コード例 #5
0
 def test_30_kill_by_port(self):
     port = 4210
     self.start_server(port=port)
     time.sleep(0.5)
     running = Process.is_running_by_commandline(commandline=self.http_module)
     assert running, 'Failed to start simple http server.'
     Process.kill_by_port(port=port)
     time.sleep(0.5)
     running = Process.is_running_by_commandline(commandline=self.http_module)
     assert not running, 'Kill by port failed to kill process.'
コード例 #6
0
 def setUpClass(cls):
     Folder.clean(Settings.TEST_OUT_HOME)
     Folder.create(Settings.TEST_OUT_LOGS)
     Folder.create(Settings.TEST_OUT_IMAGES)
     Folder.create(Settings.TEST_OUT_TEMP)
     Process.kill(proc_name="adb")
     TnsRunAndroidTest.setUpClass()
     url = "https://github.com/webdriverio/native-demo-app/releases/download/0.2.1/Android-NativeDemoApp-0.2.1.apk"
     cls.apk_path = os.path.join(Settings.TEST_RUN_HOME, "test.apk")
     File.delete(path=cls.apk_path)
     File.download(file_name='test.apk', url=url, destination_dir=Settings.TEST_RUN_HOME)
コード例 #7
0
 def get_log_file(device_id):
     command = 'spawn {0} log stream --level=debug'.format(device_id)
     Process.kill_by_commandline(command)
     log_file = Simctl.run_simctl_command(command=command, wait=False).log_file
     if File.exists(log_file):
         Log.debug('Log of {0} redirected to {1}'.format(device_id, log_file))
         return log_file
     else:
         message = 'Failed to get logs of {0}'.format(device_id)
         Log.error(message)
         raise Exception(message)
コード例 #8
0
 def test_20_run_long_living_process(self):
     file_path = os.path.join(Settings.TEST_OUT_HOME, 'temp.txt')
     File.write(path=file_path, text='test')
     result = run(cmd='tail -f ' + file_path, wait=False)
     time.sleep(1)
     Process.kill_pid(pid=result.pid)
     assert result.exit_code is None, 'exit code should be None when command is not complete.'
     assert result.complete is False, 'tail command should not exit.'
     assert result.duration is None, 'duration should be None in case process is not complete'
     assert result.output == '', 'output should be empty string.'
     assert result.log_file is not None, 'stdout and stderr of tail command should be redirected to file.'
     assert 'tail' in File.read(result.log_file), 'Log file should contains cmd of the command.'
     assert 'test' in File.read(result.log_file), 'Log file should contains output of the command.'
コード例 #9
0
 def start():
     if Settings.HOST_OS == OSType.WINDOWS:
         docker = os.environ.get("DOCKER_HOME")
         if not Process.is_running_by_name('Docker Desktop'):
             if docker is not None:
                 cmd = '"' + os.path.join(docker,
                                          'Docker Desktop.exe') + '"'
                 run(cmd=cmd, wait=False)
                 Log.info('Starting docker!')
             else:
                 cmd = r'"C:\Program Files\Docker\Docker\Docker Desktop.exe"'
                 run(cmd=cmd, wait=False)
                 Log.info('Starting docker!')
     elif OSUtils.is_catalina():
         if not Process.is_running_by_name('Docker'):
             cmd = 'open --background -a Docker'
             run(cmd=cmd, wait=False)
             Log.info('Starting docker!')
     else:
         Log.info('No need to start docker!')
コード例 #10
0
 def clean(folder):
     if Folder.exists(folder=folder):
         Log.debug("Clean folder: " + folder)
         try:
             shutil.rmtree(folder)
         except OSError as error:
             try:
                 for root, dirs, files in os.walk(folder, topdown=False):
                     for name in files:
                         filename = os.path.join(root, name)
                         if Settings.HOST_OS != OSType.WINDOWS:
                             os.chmod(filename, stat.S_IWUSR)
                         os.remove(filename)
                     for name in dirs:
                         os.rmdir(os.path.join(root, name))
                 os.rmdir(folder)
                 Log.error('Error: %s - %s.' % (error.filename, error.strerror))
             except Exception:
                 Log.info('Kill processes with handle to ' + folder)
                 Process.kill_by_handle(folder)
                 os.system('rm -rf {0}'.format(folder))
コード例 #11
0
 def stop(sim_id='booted'):
     """
     Stop running simulators (by default stop all simulators)
     :param sim_id: Device identifier (Simulator ID)
     """
     if sim_id == 'booted':
         Log.info('Stop all running simulators.')
         Process.kill('Simulator')
         Process.kill('tail')
         Process.kill('launchd_sim')
         Process.kill_by_commandline('CoreSimulator')
     else:
         Log.info('Stop simulator with id ' + sim_id)
         run(cmd='xcrun simctl shutdown {0}'.format(sim_id), timeout=60)
コード例 #12
0
    def tearDown(self):
        # pylint: disable=no-member

        # Kill processes
        Tns.kill()
        Gradle.kill()
        Process.kill_all_in_context()
        TnsTest.restore_files()
        # Analise test result
        if Settings.PYTHON_VERSION < 3:
            # noinspection PyUnresolvedReferences
            result = self._resultForDoCleanups
        else:
            # noinspection PyUnresolvedReferences
            result = self._outcome.result

        outcome = 'FAILED'
        if result.errors == [] and result.failures == []:
            outcome = 'PASSED'
        else:
            self.get_screenshots()
            self.archive_apps()
        Log.test_end(test_name=TestContext.TEST_NAME, outcome=outcome)
コード例 #13
0
 def kill():
     """
     Kill all tns related processes.
     """
     Log.info("Kill tns processes.")
     if Settings.HOST_OS == OSType.WINDOWS:
         Process.kill(proc_name='node')
     else:
         Process.kill(proc_name='node',
                      proc_cmdline=Settings.Executables.TNS)
         Process.kill_by_commandline(cmdline='webpack.js')
コード例 #14
0
        def start(simulator_info):
            # Start iOS Simulator
            Log.info('Booting {0} ...'.format(simulator_info.name))
            simulator_info = Simctl.start(simulator_info=simulator_info)

            # Start GUI
            if Process.get_proc_by_commandline('Simulator.app') is not None:
                Log.debug('Simulator GUI is already running.')
            else:
                Log.info('Start simulator GUI.')
                run(cmd='open -a Simulator')

            # Return result
            device = Device(id=simulator_info.id, name=simulator_info.name, type=DeviceType.SIM,
                            version=simulator_info.sdk)
            TestContext.STARTED_DEVICES.append(device)
            return device
コード例 #15
0
 def kill(self, force=Jenkins.is_ci()):
     """
     Kill Chrome browsers instance(s).
     :param force: If false it will kill only browsers started by driver.
     If true it will force kill all chrome processes.
     By default `force` is set to false on local machines and true on CI (when JENKINS_HOME variable is set).
     """
     if self.driver is not None:
         self.driver.quit()
     if force:
         if Settings.HOST_OS == OSType.OSX:
             Process.kill(proc_name='Google Chrome', proc_cmdline=None)
         else:
             Process.kill(proc_name="chrome", proc_cmdline=None)
         Process.kill(proc_name='chromedriver')
     Log.info('Kill Chrome browser!')
コード例 #16
0
 def tearDown(self):
     Process.kill_all_in_context()
コード例 #17
0
        def stop():
            """
            Stop all running emulators.
            """
            Log.info('Stop all running emulators...')
            Process.kill_by_commandline('qemu')
            Process.kill_by_commandline('emulator64')

            Process.kill('emulator64-arm')
            Process.kill('emulator64-x86')
            Process.kill('emulator-arm')
            Process.kill('emulator-x86')
            Process.kill('qemu-system-arm')
            Process.kill('qemu-system-i386')
            Process.kill('qemu-system-i38')
コード例 #18
0
 def kill():
     """
     Kill ng cli processes.
     """
     Process.kill(proc_name='node', proc_cmdline=Settings.Executables.NG)
     Process.kill_by_port(DEFAULT_PORT)
コード例 #19
0
 def kill():
     """
     Kill all instance of appium server.
     """
     Process.kill(proc_name='node', proc_cmdline='appium')
コード例 #20
0
 def tearDownClass(cls):
     Process.kill(proc_name="adb")
     TnsRunAndroidTest.tearDownClass()
コード例 #21
0
 def stop():
     if OSUtils.is_catalina():
         Process.kill('Docker')
コード例 #22
0
 def restart():
     Log.info("Restart adb.")
     Adb.run_adb_command('kill-server')
     Process.kill(proc_name='adb')
     Adb.run_adb_command('start-server')