运行Robot Framework测试用例时出现“打开文件过多”错误
我有一个测试套件,里面大约有300个测试用例。这些测试用例都是HTTP API调用,全部是“GET”请求。一开始这些测试用例运行得很好。但到了执行的后面,出现了一个错误:“错误:[Errno 24] 打开的文件太多了”。这个错误导致测试用例失败,尽管我们测试的系统本身没有任何功能上的问题。
这个问题怎么解决呢?
报告中的错误是:
error: [Errno 24] Too many open files
08:55:00.484 DEBUG Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/HttpLibrary/__init__.py", line 229, in GET
self.app.get(path, {}, self.context.request_headers)
File "/Library/Python/2.7/site-packages/webtest/app.py", line 286, in get
File "/Library/Python/2.7/site-packages/HttpLibrary/livetest.py", line 153, in do_request
File "/Library/Python/2.7/site-packages/HttpLibrary/livetest.py", line 126, in _do_httplib_request
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 973, in request
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1007, in _send_request
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 969, in endheaders
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 829, in _send_output
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 791, in send
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 772, in connect
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection
2 个回答
1
增加最大打开文件数(就像Hinata提到的那样)确实是个短期解决办法,但我很惊讶你居然会碰到这个限制。我不明白为什么连续的GET请求会打开这么多文件。
我建议你试试其他的库,看看这个问题是否还存在。你可以试试Robot Framework Requests,或者直接使用Requests这个Python库。你可能还想看看我写的关于这个主题的短博客。