2013-06-19 10 views
6

Mamy Jenkinsa bez głowy na wozie centOS i dostęp do niego przez połączenie http na innym komputerze.CentOS, Jenkins, Firefox i Selen GRID - UnableToCreateProfileException

Mam projekt do przeprowadzania testów Selenium UI, wszystkie działają dobrze, z wyjątkiem tych z Firefoxem. narzeka, że ​​profil nie znajduje się w centOS vm, więc może przesłać go do maszyny wirtualnej Windows do testowania. Czy ktoś wie, jak zdobyć najnowszy i najlepszy firefox na centOS, ponieważ yum ma tylko 17 (bezgłowy CentOS VM)? Ponadto, gdzie jest profil FireFox przechowywany w systemie CentOS, jeśli chcę tylko scp aktualny profil firefox na VM? Każde inne rozwiązanie nie myślałem o Daj mi znać, jeśli więcej informacji jest potrzebne, Jenkins błąd poniżej:

org.openqa.selenium.firefox.UnableToCreateProfileException: Given model profile directory does not exist: C:\Users\Selenium\FirefoxDriver Build info: version: '2.31.0', revision: '1bd294d', time: '2013-02-27 20:52:59' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-358.6.1.el6.x86_64', java.version: '1.7.0' Driver info: driver.version: unknown org.openqa.selenium.firefox.FirefoxProfile.verifyModel(FirefoxProfile.java:154) org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:92) org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:79) com.igt.sqes.automation.selenium.factories.WebDriverFactory.createWebDriver(Unknown Source) com.igt.sqes.automation.arcus.setup.ArcusTestSuiteSetup.setUp(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564) org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) org.testng.SuiteRunner.privateRun(SuiteRunner.java:277) org.testng.SuiteRunner.run(SuiteRunner.java:240) org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) org.testng.TestNG.runSuitesSequentially(TestNG.java:1194) org.testng.TestNG.runSuitesLocally(TestNG.java:1123) org.testng.TestNG.run(TestNG.java:1031) org.testng.TestNG.privateMain(TestNG.java:1338) org.testng.TestNG.main(TestNG.java:1307)

to działa dobrze, gdy biegł z pole okien spowodować kierowca jest w tym miejscu i może przekazywać przetestować vm.

Odpowiedz

0

Jednym ze sposobów udostępnienia profilu Firefoksa CentOS VM do użycia na maszynie wirtualnej Windows z uruchomionym węzłem Selnium jest utworzenie udziału w systemie Windows wskazującego profil przeglądarki Firefox, a następnie zamontowanie go na CentOS . Oto kroki używałem do tej pracy:

  1. na Windows, utworzyć udział katalogu profilu Firefoksa znajduje się w domyślnym profilu Firefoksa znajduje się zazwyczaj w coś podobnego. C: \ Users \ nazwa_użytkownika \ AppData \ Local \ Mozilla \ Firefox \ Profiles \ 427nha20.default. Możesz umieścić profil w katalogu z ograniczeniami uprawnień, na przykład z uprawnieniami tylko do odczytu.
  2. Na CentOS utwórz katalog w katalogu/mnt o nazwie, którą nadałeś współużytkowaniu Windows. Nazwy nie muszą być takie same, ale pomagają zachować spójność.
  3. Na CentOS, dodaj następujący wiersz do pliku/etc/fstab: // windowsVMIP/windowsShareName/mnt/windowsShareName cifs nazwa_użytkownika = windowsUser, hasło = windowsPassword, uid = 123, gid = 123, _netdev, ro 0 0
  4. WindowsVMIP to adres IP maszyny wirtualnej z udziałem; windowsShareName to nazwa udziału Windows;/mnt/windowsShareName to nazwa, którą nadałeś udział Windows; nazwa użytkownika i hasło są poświadczeniami dla użytkownika Windows; uid to identyfikator użytkownika w CentOS; gid jest głównym identyfikatorem grupy w CentOS (możesz uzyskać identyfikator Uid i GID, wykonując grep Jenkins/etc/passwd, które są odpowiednio trzecim i czwartym atrybutem);
  5. W CentOS, zamontować system Windows dzielić ręcznie, wykonując następujące czynności: mount -t CIFS -o username = windowsUser, hasło = windowsPassword, uid = 123, gid = 123 // windowsVMIP/windowsShareName/mnt/windowsShareName
  6. cd do/mnt/windowsShare i ls, aby upewnić się, że podłączenie powiodło się
  7. Skonfiguruj sterownik Selenium Firefox, ustawiając opcję FirefoxDriver.PROFILE, aby wskazywała współużytkowany udział CentOS.Następnie przenieś możliwości do Selenium Webdriver podczas tworzenia. Na przykład w Java:

    FirefoxProfile profile = new FirefoxProfile(new File("/mnt/windowsShareName")); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability(FirefoxDriver.PROFILE, profile);
    WebDriver driver = new RemoteWebDriver(new URL(gridHubURL), capabilities);

  8. Profil Firefox będzie pochodzić z udziału CentOS i przekazywane do węzła systemu Windows VM Selen po kierowca Selen jest tworzony.

2

1. Spróbuj zainstalować nowszą wersję Firefoksa

W tym celu można użyć Remi repozytorium

## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ## 
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 

## CentOS 6 and Red Hat (RHEL) 6 ## 
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 

Step by step instruction

2. Spróbuj skopiować istniejący profil i wyraź jednoznacznie:

Zarzut se zobacz następujący wątek: CentOS Selenium - Preparing firefox profile

+0

będzie wyglądać tak szybko, jak będę mógł! –