2015-03-26 15 views
10

Trong khi chạy thử nghiệm của tôi, tôi cần phải có sự chậm trễ lâu dài (~ 40 giây).Làm thế nào để tăng thời gian chờ của phiên mạng lưới selen?

Và tôi thấy, phiên Selenium đó sẽ bị xóa trong thời gian đó.

Vui lòng trợ giúp: Làm cách nào để định cấu hình thời gian chờ của phiên tăng?

Dưới đây là những gì tôi nhìn thấy trong ít hơn, có khoảng 30 giây, sau khi trì hoãn bắt đầu trong bản ghi nút Selenium:

INFO org.openqa.selenium.remote.server.DriverServlet - phiên 7f5fffec-4882-4c4c -b091-c780c66d379d xóa do thời gian chờ khách hàng

Và sau 40 giây ngủ, tôi nhận được ngoại lệ này trong mã của tôi:

org.openqa.selenium.remo te.SessionNotFoundException

Tôi đã cố gắng tăng tất cả thời gian chờ có thể. Sau đây là cách tôi bắt đầu hub:

java -jar selenium-server-standalone.jar -role hub 
-hubConfig selenium_hub.json 
-nodeTimeout 61 
-remoteControlPollingIntervalInSeconds 180 
-sessionMaxIdleTimeInSeconds 240 
-newSessionMaxWaitTimeInSeconds 250 
-timeout 59 

Và đây là selenium_hub.json:

{ 
    "host": null, 
    "port": 4444, 
    "newSessionWaitTimeout": -1, 
    "servlets": [], 
    "prioritizer": null, 
    "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", 
    "throwOnCapabilityNotPresent": true, 
    "nodePolling": 5000, 
    "cleanUpCycle": 5000, 
    "timeout": 60000, 
    "browserTimeout": 60000, 
    "maxSession": 5, 
    "jettyMaxThreads": -1 
} 

Không bất kỳ timeouts cấu hình trên các nút. Dưới đây là những gì tôi nhìn thấy trong giao diện điều khiển Lưới của tôi:

browserTimeout : 60000 
capabilityMatcher : org.openqa.grid.internal.utils.DefaultCapabilityMatcher 
cleanUpCycle : 5000 
host : null 
hubConfig : /usr/local/selenium/config/selenium_hub.json 
jettyMaxThreads : -1 
maxSession : 5 
newSessionMaxWaitTimeInSeconds : 250 
newSessionWaitTimeout : -1 
nodePolling : 5000 
nodeTimeout : 61 
port : 4444 
prioritizer : null 
remoteControlPollingIntervalInSeconds : 180 
role : hub 
servlets : [] 
sessionMaxIdleTimeInSeconds : 240 
throwOnCapabilityNotPresent : true 
timeout : 59000 

Tôi đang sử dụng Selenium 2,45

+0

Xin chào, tôi có thể hỏi bạn làm cách nào bạn tìm thấy tất cả các thông số này? Tôi không thể thấy nhiều người trong số họ được đề cập trong tài liệu. Cảm ơn! –

+0

Câu hỏi hay. Tôi không nghĩ rằng nó được tài liệu tốt. tôi chỉ sử dụng các file mặc định từ Selenium: https://github.com/SeleniumHQ/selenium/tree/master/java/server/src/org/openqa/grid/common/defaults – Slavik

Trả lời

7

Cuối cùng tôi figured it out!

Giải pháp thực sự rất dễ dàng: các nút cần được khởi động lại sau khi cấu hình được thay đổi trên hub.

Nó không phải là thực sự rõ ràng:

Khi tôi thay đổi cấu hình trên trung tâm, sau đó tôi khởi động lại nó. Nút sẽ tự động đăng ký lại với trung tâm. Sau đó, nhìn vào giao diện điều khiển, tôi có thể thấy các tham số cấu hình mới có hiệu lực. Thậm chí nhiều hơn, khi tôi nhìn vào các cấu hình nút, tôi thấy các thông số tương tự đã thay đổi trên các nút. Đó là sai lầm! Bởi vì mặc dù các nút đăng ký lại, nhưng cấu hình của chúng đã KHÔNG bị thay đổi. Nó chỉ thay đổi, khi nút được khởi động lại, quá. Tôi nghĩ, đây là lỗi của Selenium - nút sẽ được cấu hình lại trong quá trình đăng ký lại.

+1

Tạo báo cáo Selenium lỗi: https : //github.com/SeleniumHQ/selenium/issues/374 – Slavik

+0

@ Slavik, tôi đã sử dụng để khởi động lại nút của mình mỗi ngày ngay cả khi không có thay đổi trong Hub.Mặc dù vậy, việc này bị xóa do khách hàng hết thời gian chờ. Làm thế nào để tiến hành. – Madhu

+0

Tôi khuyên bạn nên đặt câu hỏi đó trong chuỗi riêng biệt. Tôi có thể nghĩ đến việc tăng thời gian chờ. Một giải pháp khác là gửi các sự kiện KeepAlive. – Slavik

0
C# 

driver = new RemoteWebDriver(new Uri("http://host:4444/wd/hub"), capabilities); 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(desired_time)); 

P.S. Tôi đang sử dụng lưới Selenium 2,53 và firefox 46.0

+0

Câu trả lời của bạn liên quan đến thời gian chờ của trình điều khiển thay vì thời gian chờ của mạng Selenium. – Gucu112

Các vấn đề liên quan