如何在HTTPX库中检查接口调用次数(call_count)
如何在HTTPX中检查请求调用次数
如果你是使用pytest-httpx插件(HTTPX官方推荐的测试Mock工具),可以直接通过httpx_mock对象的call_count属性获取总调用次数,或者通过get_requests()方法过滤特定请求后统计数量,用法和requests_mock类似:
def test_foo(httpx_mock): # 执行触发HTTP请求的业务逻辑 your_service_call_that_makes_request() # 检查总请求调用次数 assert httpx_mock.call_count == 1 # 更精确:检查针对特定URL的请求次数 assert len(httpx_mock.get_requests(url="https://your-target-api.com/endpoint")) == 1
如果是手动使用httpx.MockTransport而不依赖pytest插件,可以通过transport.requests列表的长度来统计调用次数:
import httpx def test_foo(): transport = httpx.MockTransport() # 将transport绑定到HTTPX客户端 with httpx.Client(transport=transport) as client: # 触发请求 client.post("https://your-target-api.com/endpoint", json={"key": "value"}) # 通过requests列表长度判断调用次数 assert len(transport.requests) == 1
两种方式都能实现和requests_mock中call_count相同的校验效果,其中pytest-httpx的方式更适配pytest测试环境,支持更灵活的请求过滤和断言。
内容的提问来源于stack exchange,提问作者Tony
相关产品推荐
相关产品推荐

