2013-11-15 42 views
4

我已经编写了一个Django(令人难过的1.3版本)管理命令,用于连接到带有Selenium的BrowserStack,并将用于运行集成测试。 (我不得不编写一个自定义管理命令来解决这个事实,即我们在这个站点中使用AskBot,并且它以一些有趣的方式混淆了Django测试框架;否则我会简单地使用测试框架。)初始化驱动程序时硒连接超时

剧本的要点在这里https://gist.github.com/cellofellow/7491221。这是先前脚本的一个端口,它直接在没有任何Django上下文的情况下直接运行unittest。

什么情况是,当跑,我得到一个回溯像这样:

./manage.py browserstack signup 
Browser: IE 
Browser Version: 10.0 
Operating System: Windows 
OS Version: 7 

E 
====================================================================== 
ERROR: runTest (apps.common.management.commands.browserstack.SignUpBasic) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/home/jgardner/izeni/doterra_pro/apps/common/management/commands/browserstack.py", line 46, in setUp 
    desired_capabilities=self.caps) 
    File "/home/jgardner/.virtualenvs/doterra_pro/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 71, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/home/jgardner/.virtualenvs/doterra_pro/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 113, in start_session 
    'desiredCapabilities': desired_capabilities, 
    File "/home/jgardner/.virtualenvs/doterra_pro/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 162, in execute 
    response = self.command_executor.execute(driver_command, params) 
    File "/home/jgardner/.virtualenvs/doterra_pro/local/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 355, in execute 
    return self._request(url, method=command_info[0], data=data) 
    File "/home/jgardner/.virtualenvs/doterra_pro/local/lib/python2.7/site-packages/selenium/webdriver/remote/remote_connection.py", line 402, in _request 
    response = opener.open(request) 
    File "/usr/lib/python2.7/urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 442, in error 
    result = self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 897, in http_error_401 
    url, req, headers) 
    File "/usr/lib/python2.7/urllib2.py", line 872, in http_error_auth_reqed 
    response = self.retry_http_basic_auth(host, req, realm) 
    File "/usr/lib/python2.7/urllib2.py", line 885, in retry_http_basic_auth 
    return self.parent.open(req, timeout=req.timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 404, in open 
    response = self._open(req, data) 
    File "/usr/lib/python2.7/urllib2.py", line 422, in _open 
    '_open', req) 
    File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open 
    return self.do_open(httplib.HTTPConnection, req) 
    File "/usr/lib/python2.7/urllib2.py", line 1187, in do_open 
    r = h.getresponse(buffering=True) 
    File "/usr/lib/python2.7/httplib.py", line 1045, in getresponse 
    response.begin() 
    File "/usr/lib/python2.7/httplib.py", line 409, in begin 
    version, status, reason = self._read_status() 
    File "/usr/lib/python2.7/httplib.py", line 365, in _read_status 
    line = self.fp.readline(_MAXLINE + 1) 
    File "/usr/lib/python2.7/socket.py", line 476, in readline 
    data = self._sock.recv(self._rbufsize) 
timeout: timed out 

---------------------------------------------------------------------- 
Ran 1 test in 5.201s 

FAILED (errors=1) 

在BrowserStack一个实例已启动,但由于未来无论发生什么事不能连接,它只是运行了一分钟左右,然后退出。

它被移植的脚本没有这个问题。什么可能导致它?

回答

1

原来我只是不得不设置socket.setdefaulttimeout(60)在这个代码库中有几十个调用socket.setdefaulttimeout的地方,都在依赖和我们自己的代码中,所以谁知道它实际上是什么设置的。

相关问题