Mock服务请求 Mock服务请求可以使用python的 responses 库实现1、安装responses库pip install responses2、Mock服务请求响应内容importrequestsimportresponsesresponses.activatedeftest_with_responses():# 模拟GET请求responses.add(responses.GET,https://api.example.com/users,json{users:[Alice,Bob]},status200)# 模拟POST请求responses.add(responses.POST,https://api.example.com/users,json{id:1,name:Charlie},status201)# 发送真实请求会被重定向到mockresponserequests.get(https://api.example.com/users)#使用模拟的响应数据print(response.status_code)# 输出: 200print(response.json())# 输出: {users: [Alice, Bob]}post_responserequests.post(https://api.example.com/users,json{name:Charlie})#使用模拟的响应数据print(post_response.status_code)# 输出: 2013、参数详解responses.GET - HTTP方法指定要模拟的HTTP请求方法可选值responses.GET-模拟GET请求 responses.POST-模拟POST请求 responses.PUT-模拟PUT请求 responses.DELETE-模拟DELETE请求 responses.PATCH-模拟PATCH请求‘https://api.example.com/users’ - URL 指定要拦截的URL地址只有当代码请求这个精确的URL时才会被拦截可以使用正则表达式匹配多个URL示例re.compile(rhttps://api\.example\.com/users/\d)json{users: [Alice, Bob]}- JSON响应体设置返回的JSON数据会自动设置Content-Type: application/json等价于手动写bodyjson.dumps({users: [Alice, Bob]})可以返回任何JSON可序列化的数据status200 - HTTP状态码 设置响应的HTTP状态码200-成功201-创建成功400-错误请求401-未授权404-未找到500-服务器错误5.responses.activate使用此装饰器激活 responses 库的 mock 环境responses.activate是一个装饰器它的核心作用是激活 responses 库的 mock 环境让所有 HTTP 请求被拦截并路由到你注册的模拟响应。主要作用(1).启用和禁用 mock 环境importresponsesimportrequests# 没有装饰器 - 会发送真实的网络请求defwithout_decorator():responses.add(responses.GET,https://api.example.com/users,json{data:test})responserequests.get(https://api.example.com/users)# 真实请求返回真实数据# 使用装饰器 - 请求被 mock 拦截responses.activatedefwith_decorator():responses.add(responses.GET,https://api.example.com/users,json{data:test})responserequests.get(https://api.example.com/users)# 返回 mock 数据(2).自动清理 mock 状态responses.activatedeftest_multiple_requests():# 每个测试函数开始时responses 状态是干净的responses.add(responses.GET,https://api.example.com/users,json{users:[]})# 测试代码...# 函数结束时自动清理所有注册的 mock 和调用记录