如何模拟超时响应
How to simulate timeout response
我正在创建一个 Python 脚本,该脚本始终检查 Web 应用程序是否正常,因为通常会向多个请求发送超时响应。
此脚本使用 httplib:
conn = httplib.HTTPConnection("10.255.255.1")
conn.request("HEAD", "/")
ping = conn.getresponse()
然后简单分析http代码returned。
我不控制 webapp,所以我无法创建一个端点 return 任何我想要的,所以我的问题是:我如何模拟我已经收到超时?
您可以通过在 here 查找一些异常来模拟一些 httplib 错误(具体来说,查看 异常 )。
非常令人惊讶,我注意到它抛出的超时是 socket.timeout
;来自不同的包。实际上,我是通过给 httplib.HTTPConnection
0.0001 秒的参数提供一个不切实际的小超时来发现这一点的。
因此,您可以通过提高 socket.timeout:
来模拟错误
def requestResultingInTimeout():
# Pretend to request
raise socket.timeout
不过别忘了import socket
。
你可以这样处理:
from socket import timeout
try:
requestResultingInTimeout()
except timeout:
print("Now that I got a timeout, I'll print this message instead")
我正在创建一个 Python 脚本,该脚本始终检查 Web 应用程序是否正常,因为通常会向多个请求发送超时响应。
此脚本使用 httplib:
conn = httplib.HTTPConnection("10.255.255.1")
conn.request("HEAD", "/")
ping = conn.getresponse()
然后简单分析http代码returned。
我不控制 webapp,所以我无法创建一个端点 return 任何我想要的,所以我的问题是:我如何模拟我已经收到超时?
您可以通过在 here 查找一些异常来模拟一些 httplib 错误(具体来说,查看 异常 )。
非常令人惊讶,我注意到它抛出的超时是 socket.timeout
;来自不同的包。实际上,我是通过给 httplib.HTTPConnection
0.0001 秒的参数提供一个不切实际的小超时来发现这一点的。
因此,您可以通过提高 socket.timeout:
来模拟错误def requestResultingInTimeout():
# Pretend to request
raise socket.timeout
不过别忘了import socket
。
你可以这样处理:
from socket import timeout
try:
requestResultingInTimeout()
except timeout:
print("Now that I got a timeout, I'll print this message instead")