2011-09-27 27 views
8

Geçmiş:Koşu paralel selenyum testleri

benim Raylar karşı 3 Uygulama çalışan Capybara entegrasyon testleri bir dizi var. Test paketinin diğer bölümleri için Rspec kullanıyorum.

Mac OSX dev makinemde bir selenyum 2.6.0 bağımsız sunucu hub var.

java -jar selenium-server-standalone-2.6.0.jar -role hub 

ben her bir selenyum düğümü ile göbeğine bağladım birçok sanal makine çalıştırıyorum:

java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS 

Bu iyi çalışır, bu ekran görüntüsünde konsol Bir IE7 ve IE8 bir olduğunu gösterir hub'a bağlı tarayıcı:

The hub console showing connected nodes

Ben selenyum göbeğine karşı aday kurulum Kapibara ettik (yani delege düğümlerine testleri).

Capybara.app_host = "myapp.dev" 
Capybara.default_driver = :selenium 
Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, 
    :browser => :remote, 
    :url => "http://localhost:4444/wd/hub", 
    :desired_capabilities => :internet_explorer) 
end 

Sadece sınama yalnızca bir internet_explorer düğümünde çalışır. "İlk sırada" olanı gibi görünüyor; Eğer kapatırsam, test diğer düğümde başarılı bir şekilde çalışır.

Önerilen şekilde capybara'yı yapılandıran parallel_tests projesini deniyorum, ancak bu yine de yalnızca bir tümleştirme sınaması başlatır.

Entegrasyonumu aynı anda tüm internet_explorer düğümlerinde nasıl çalıştırabilirim?

Bonus soru: i bakılmaksızın tarayıcı özelliği bağımsız olarak tüm düğümlerde benim entegrasyon testleri çalıştırmak istedi Eğer ben bunu nasıl yapardınız?

+0

Daniel, Sizinle aynı sorunu yaşıyorum, bir çözüm bulabildiniz mi? – Farooq

+0

1 Hub ve 3 Düğüm çalışıyorsa ve 3 farklı sekmede aynı anda 3 test çalıştırıyorsanız testlerin tüm düğümlerde çalışacağını anladım. Her düğüm için 1 test. Temel olarak test, bir sonraki boş düğümü sıraya alır ve orada çalışır. – Farooq

cevap

1

IE webdrive için bir fiziksel düğümde en fazla 1 testi çalıştırabilirsiniz! IE webdriver ile paralellik elde etmek istiyorsanız, hub'a daha fazla fiziksel düğüm ekleyerek/kaydeterek deneyebilirsiniz.

Hub konsolunun yukarıdaki ekran görüntüsü ile ilgili olarak, size yalnızca bir IE simgesi gösterir. Mesaj "5'e kadar destekler ...." şeklinde yanlıştır, ancak aşağıda gösterilen ilgili tarayıcı için simge sayısını göz önünde bulundurabilirsiniz.

2

Burada aynı sınamaları farklı tarayıcılar için tetiklemeniz gerekir, böylece iki sınama işlemini başlatmayı deneyebilirsiniz, yani aynı komutu iki kez çalıştırın.

Düğümleri başlatırken, Grid farklı düğümlerdeki yürütmeyi yürütür. Sizin durumunuzda, testi yürütüyorsanız ve sadece Grid ile ilgili olarak paket/süreç üzerinde başlatılmış durumdasınız. Sadece test etmek için Amaç, bu testleri birbiri ardına iki kez ateşlemeyi deneyin. Eğer bu Kullanım Karınca veya benzeri bir şey ile test yürütme kontrol etmek için mümkün değilse.