kerrigan  
          
              
                08.Апрель.2013 05:20:34
               
              #1 
           
         
        
          Такая проблема:
Если тест падает сам либо проходит полностью то хромдрайвер убивается нормально и в процессах не висит.
Если же руками стопаю тест - то хромдрайвер висит в процессах и его приходится убивать вручную
Это конечно не критикал проблема - но возникла такая ситуация что на билд агентах при запуске remote run'ом скопились очень много висящих процессов.
Как это можно обойти и сталкивался ли с этим кто-нибудь?
Спасибо!
 
         
        
           
         
            
       
      
        
          
          
            polusok  
          
              
                08.Апрель.2013 06:56:08
               
              #2 
           
         
        
          ну понятно что он будет висеть, так как вы убили процесс, который отвечает за его открыие и закрытие
ну тут надо думать, я бы сделал внешнюю программу, которая убивает chrome процессы
или же стартовал chromedriverserver до выполенния тестов и закрывал после выполнения, а само выполнение запускал бы как отдельный процесс
а как вы запускаете chromedriver server на CI?
         
        
           1 лайк 
         
         
            
       
      
        
          
          
            rpwheeler  
          
              
                08.Апрель.2013 17:56:18
               
              #3 
           
         
        
          Сталкивался.  
         
        
           
         
            
       
      
        
          
          
            vmaximv  
          
              
                09.Апрель.2013 05:46:08
               
              #4 
           
         
        
          а чем "родные" taskkill/pstools не устраивали?
         
        
           
         
            
       
      
        
          
          
            qaleader  
          
              
                09.Апрель.2013 07:53:48
               
              #5 
           
         
        
          На каком языке вы автоматизируете? В C# можно убить процесс сразу из теста без использования каких-то вспомогательных и не нужных действий.
         
        
           
         
            
       
      
        
          
          
            rpwheeler  
          
              
                09.Апрель.2013 10:26:17
               
              #6 
           
         
        
          Так оно в жизни получилось, что NirCmd дошел до меня раньше, чем информация о taskkill , "ну и вот так и живем".
         
        
           
         
            
       
      
        
          
          
            taralezh  
          
              
                19.Ноябрь.2013 08:55:48
               
              #7 
           
         
        
          А можно более конкретно, как это сделать!
         
        
           
         
            
       
      
        
          
          
            polusok  
          
              
                19.Ноябрь.2013 17:16:34
               
              #8 
           
         
        
          
Я скажу за python, тут или можно использовать os модуль
import os
os.system("taskkill /im chromedriver.exe")
или сторонний, например psutil Google Code Archive - Long-term storage for Google Code Project Hosting. 
import psutil
PROCNAME = "chromedriver.exe"
for proc in psutil.process_iter():
    if proc.name == PROCNAME:
        proc.kill()
 
        
           1 лайк 
         
         
            
       
      
        
          
          
            klysak07  
          
              
                20.Ноябрь.2013 10:14:15
               
              #9 
           
         
        
          А если срабатывает Exception, разве не срабатывает после него tearDown() в котором можно сделать например driver.quit()?
         
        
           
         
            
       
      
        
          
          
            polusok  
          
              
                20.Ноябрь.2013 10:20:24
               
              #10 
           
         
        
          Ну тут смотря как завершается процесс прогона тестов. Просто если java процесс убивают напрямую руками, то никакие методы не вызовутся.
@kerrigan  Конечно я бы уточнил, как именно руками стопается тест? Я так понимаю, вы просто не дожидаетесь завершения выполнения тестов на CI останавливаете прогон тестов. Верно?
         
        
           
         
            
       
      
        
        
          напишите, пожалуйста, где можно почитать более детально или может у вас есть пример решения этого вопроса на с#
         
        
           
         
            
       
      
        
          
          
            madvlaydin  
          
              
                26.Апрель.2020 04:28:21
               
              #12 
           
         
        
          в гугле есть ответ на всё, это раз
  
  
    Всем привет! 
Хочу вам рассказать, как мне удалось решить проблему запуска автотестов в следующем сценарии: 
у меня есть набор тестовых AD-учетных записей;
этим учетным записям сопоставлены пользователи в тестируемой системе 1-к-1;
при входе в систему проверяется токен, который браузер получает от винды, и по которому система аутентифицирует пользователя;
в соответствии с учетной записью AD мы авторизуемся в системе с нужными правами.
В чем проблема? 
Запуск браузера руками от имени другого пользователя осуществляется легко: 
с зажатой клавишей Shift правой кнопкой мыши жмем по ярлыку, например, хрома, там запуск от имени другого пользователя, домен-логин-пароль, всё, браузер зап…
   
 
вот здесь в конце есть ответ, как искать процессы и уничтожать их