2017-03-20 4 views
0

임 로컬 호스트에 연결하는 데 실패합니다. 지금은 내가 셀레늄 내 고정 표시기 - compose.yml 설정 한게Behat 셀레늄 환경에서 설정 내 behat 테스트를 시도

, 부두 노동자로 시작있어 :

hub: 
    image: selenium/hub 
    ports: 
    - "4444:4444" 

chrome: 
    image: selenium/node-chrome 
    links: 
    - hub 

그리고 난 내 behat.yml는 컨피그있어 :

default: 
    suites: 
     default: 
      paths: 
       features: 'tests/features' 
       bootstrap: 'tests/features/bootstrap' 
      contexts: 
       - FeatureContext: ~ 
    extensions: 
     Behat\Symfony2Extension: ~ 
     Behat\MinkExtension: 
      base_url: http://localhost 
      selenium2: ~ 

을 그리고 난 내를 시작할 때 @ javascript로 테스트 (나는이 셀런 env를 시작한다고 가정) 오류가 발생합니다.

Could not open connection: Curl error thrown for http POST to http://localhost:4444/wd/hub/session with params: {"desiredCapabilities":{"tags":["cli","PHP 7.0.15-1+deb.sury.org~trusty+1"],"browser":"firefox","ignoreZoomSetting":false,"name":"Behat feature suite","browserName":"firefox"}}

Failed to connect to localhost port 4444: Connection refused (Behat\Mink\Exception\DriverException)

메신저 단지 behat와 셀레늄을 사용하기 시작하기 때문에,

{"status":13,"value":{"message":"Session [(null externalkey)] not available and is not among the last 1000 terminated sessions.\nActive sessions are[]","class":"org.openqa.grid.common.exception.GridException","stackTrace":[{"fileName":"ActiveTestSessions.java","className":"org.openqa.grid.internal.ActiveTestSessions","methodName":"getExistingSession","lineNumber":110},{"fileName":"Registry.java","className":"org.openqa.grid.internal.Registry","methodName":"getExistingSession","lineNumber":404},{"fileName":"RequestHandler.java","className":"org.openqa.grid.web.servlet.handler.RequestHandler","methodName":"getSession","lineNumber":232},{"fileName":"RequestHandler.java","className":"org.openqa.grid.web.servlet.handler.RequestHandler","methodName":"process","lineNumber":117},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"process","lineNumber":83},{"fileName":"DriverServlet.java","className":"org.openqa.grid.web.servlet.DriverServlet","methodName":"doGet","lineNumber":61},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":687},{"fileName":"HttpServlet.java","className":"javax.servlet.http.HttpServlet","methodName":"service","lineNumber":790},{"fileName":"ServletHolder.java","className":"org.seleniumhq.jetty9.servlet.ServletHolder","methodName":"handle","lineNumber":808},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doHandle","lineNumber":587},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doHandle","lineNumber":221},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doHandle","lineNumber":1127},{"fileName":"ServletHandler.java","className":"org.seleniumhq.jetty9.servlet.ServletHandler","methodName":"doScope","lineNumber":515},{"fileName":"SessionHandler.java","className":"org.seleniumhq.jetty9.server.session.SessionHandler","methodName":"doScope","lineNumber":185},{"fileName":"ContextHandler.java","className":"org.seleniumhq.jetty9.server.handler.ContextHandler","methodName":"doScope","lineNumber":1061},{"fileName":"ScopedHandler.java","className":"org.seleniumhq.jetty9.server.handler.ScopedHandler","methodName":"handle","lineNumber":141},{"fileName":"HandlerWrapper.java","className":"org.seleniumhq.jetty9.server.handler.HandlerWrapper","methodName":"handle","lineNumber":97},{"fileName":"Server.java","className":"org.seleniumhq.jetty9.server.Server","methodName":"handle","lineNumber":499},{"fileName":"HttpChannel.java","className":"org.seleniumhq.jetty9.server.HttpChannel","methodName":"handle","lineNumber":310},{"fileName":"HttpConnection.java","className":"org.seleniumhq.jetty9.server.HttpConnection","methodName":"onFillable","lineNumber":257},{"fileName":"AbstractConnection.java","className":"org.seleniumhq.jetty9.io.AbstractConnection$2","methodName":"run","lineNumber":540},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool","methodName":"runJob","lineNumber":635},{"fileName":"QueuedThreadPool.java","className":"org.seleniumhq.jetty9.util.thread.QueuedThreadPool$3","methodName":"run","lineNumber":555},{"fileName":"Thread.java","className":"java.lang.Thread","methodName":"run","lineNumber":745}]}}

내가 behat의 구성과의 문제를 생각하지만, 확실하지 메신저 : 64,762,299,912,726,033,210 내가 얻을. 누군가가 무엇이 잘못되었다는 생각이 들게되면 나는 약간의 도움을 얻게되어 매우 기쁩니다.

+0

관련 : ([가능하지 세션은 지난 1000 세션을 종료 있지 않기] https://stackoverflow.com/q/24446745 테스트 ENV의 예는, 당신은 당신 behat.yml 같은 뭔가를 할 수/55075) – kenorb

답변

0

당신은 wd_hostcapabilities 옵션을 같은

시도 뭔가 누락 :

또한
default: 
    suites: 
     default: 
      paths: 
       features: 'tests/features' 
       bootstrap: 'tests/features/bootstrap' 
      contexts: 
       - FeatureContext: ~ 
    extensions: 
     Behat\Symfony2Extension: ~ 
     Behat\MinkExtension: 
      selenium2: 
       browser: "chrome" 
       wd_host: http://hub:4444/wd/hub 

허브를, 테스트가 실행중인 로컬 호스트를 .....에 액세스 할 수 있어야합니다.

먼저, 모든 액세스 셀레늄 시스템에서/방문을 받고 있는지, 서버의 아파치/nginx를 등을 체크 아웃하려고합니다.

뭔가 tail -f /var/log/apache/access.log

하거나 파일을 저장하는 곳은 아무 것도 얻을 수없는 경우 ... 다음 분명 셀레늄은 다른 접근 방법이 될 것이다

컴퓨터를위한 코드를 배포하는 접근하지 않는 등

Behat\MinkExtension: 
     base_url: http://my_test_host.com 
+0

글쎄, 나는 첫 번째 접근 방식을 사용했습니다. 그것이 효과가있는 것처럼 보인다. 하지만 여전히 충분하지, 지금은 점점 오류 메신저 : '열 수 없습니다 연결 : 오류 [설정 기능에 대한 VM의 새로운 세션 빈 풀을 전달 {브라우저 = 파이어 폭스, 이름 = 기능 완비, browserName = 크롬, ignoreZoomSetting = 거짓 Behat, 태그 = [CLI, PHP 7.0.15-1 + deb.sury.org ~ 믿음직한 + 1]}] (Behat \ 밍크 \ 예외 \의 DriverException) 내 게시물을 편집 한' – Megami

+0

... 당신에 셀레늄에서 어떤 안타를받을 수 있나요 너의 서버? HTTP : 그렇지 않으면'BASE_URL에 behat.yml''에 base_url''의 값을 편집하려고 내가 로그를 확인 // whtaeverr_your_php_container_is_called_indocker_compose' – Confidence

+0

, 내 테스트 셀레늄 안타도 나던처럼 보인다. 내'behat.yml'에 // localhost' : HTTP : 나는'BASE_URL을 추가했습니다. 그러나 여전히 같은 오류가 있습니다. – Megami