Python 使用flask测试客户端测试EVE API服务器时随机404
我有一个使用EVE框架构建的API服务器。 我正在使用py.test框架进行测试。我遇到了一个奇怪的问题 如果我使用flask的Python 使用flask测试客户端测试EVE API服务器时随机404,python,flask,pytest,eve,Python,Flask,Pytest,Eve,我有一个使用EVE框架构建的API服务器。 我正在使用py.test框架进行测试。我遇到了一个奇怪的问题 如果我使用flask的test\u客户端测试我的API,我会得到不可预测的结果。i、 e.如果我连续运行py.test命令3次,从终端背靠背运行(对测试没有任何更改),我会得到不同的结果,例如: 3 passed, 5 failed 5 passed, 3 failed 8 passed, 0 failed URL(资源端点)的404测试失败 如果我使用请求库而不是test\u客户端,则
test\u客户端测试我的API,我会得到不可预测的结果。i、 e.如果我连续运行py.test
命令3次,从终端背靠背运行(对测试没有任何更改),我会得到不同的结果,例如:
3 passed, 5 failed
5 passed, 3 failed
8 passed, 0 failed
URL(资源端点)的404
测试失败
如果我使用请求
库而不是test\u客户端
,则一切正常,即每次运行测试时,8通过
我有一个类似于以下的代码:
client = app.test_client()
# POST_METHOD = client.post
# BASE_URL = '/'
# GET_METHOD = client.get
POST_METHOD = requests.post
BASE_URL = 'http://' + app.config.get('SERVER_NAME') + '/'
GET_METHOD = requests.get
...
...
...
url = BASE_URL + 'resource1'
...
...
r = POST_METHOD(url, data=json.dumps(somedata), headers=headers)
通过简单地从前3行切换注释和未注释的代码,并使用test\u client
而不是requests
我最初认为这与时间有关(test\u client
测试运行速度比请求快),但404
令人困惑。
为什么端点会消失
--
可能相关,但令牌不是我的URL的一部分。它是标题的一部分。当您将app.test\u client()作为client:client.post(…)
使用时,行为是否相同?@Peter我没有尝试过。会让你知道的。@mandar我也面临同样的问题,你是不是在代理背后建立网络server@hemraj不,不是在代理后面。但这不重要。这都是本地测试。服务器和测试客户端都在我的笔记本电脑上。