BeyondVCR帮助您编写执行HTTP调用的代码测试
项目描述
Beyond VCR
BeyondVCR帮助您编写执行HTTP请求的代码测试
它使用自定义HTTP方法与服务器通信来设置模拟请求、重置模拟或检索记录的请求。
简而言之
小巧轻量级的模拟HTTP服务器
使用自定义HTTP方法(MOCK_GET、MOCK_POST等)设置模拟请求
使用自定义HTTP方法MOCK_RESET重置模拟服务器
使用HTTP请求MOCK_RETRIEVE检索发送到服务器的所有记录请求
免费软件:MIT许可协议
使用BeyondVCR
您可以选择使用Docker运行服务器,或者运行Python模块。
运行服务器
选项1:直接运行Python模块
一旦您使用pip install beyondvcr安装了beyondvcr,您可以使用以下命令启动模拟服务器
python -m beyondvcr.server
它将显示类似以下的消息
`在http://0.0.0.0:7777上启动模拟服务器,使用<Ctrl-C>停止`
这意味着服务器已准备好使用。
选项2:使用Docker运行
运行
docker run --rm -p 7777:80 registry.gitlab.com/eliasdorneles/beyondvcr
这将下载Docker镜像并运行它。当您看到类似以下的消息时
在 http://0.0.0.0:80 上启动模拟服务器,使用 <Ctrl-C> 停止
这意味着服务器已准备好使用。
使用模拟服务器
服务器启动后,您可以向服务器发起调用。
默认情况下,如果我们没有告诉模拟服务器应如何回答,它将以 404 错误和类似这样的响应来回答任何常规 HTTP 请求
$ curl -D - https://:7777/hello HTTP/1.0 404 Not Found Server: BaseHTTP/0.6 Python/3.10.4 Date: Mon, 13 Jun 2022 20:18:31 GMT Mock server got unexpected request: { "path": "/hello", "query": "", "method": "GET", "body": "", "headers": { "Host": "localhost:7777", "User-Agent": "curl/7.81.0", "Accept": "*/*" } }
准备固定响应
要设置模拟服务器,使其在您对路径 /hello 进行 GET 请求时发送固定响应,我们将发送类似这样的 MOCK_GET 请求
$ curl -X MOCK_GET -D - https://:7777/hello -d '{"hello": "Elias"}' HTTP/1.0 200 OK Server: BaseHTTP/0.6 Python/3.10.4 Date: Mon, 13 Jun 2022 20:32:14 GMT GET mock recorded
现在,当我们再次进行 GET /hello 请求时,我们将看到我们使用 MOCK_GET 记录的正文
$ curl -D - https://:7777/hello HTTP/1.0 200 OK Server: BaseHTTP/0.6 Python/3.10.4 Date: Mon, 13 Jun 2022 20:32:16 GMT {"hello": "Elias"}
询问服务器有关已发出的请求
模拟服务器在内存中跟踪每个常规 HTTP 请求的信息,直到您将其重置。
您可以使用 MOCK_RETRIEVE 自定义 HTTP 方法来要求服务器发送关于这些请求的信息
$ curl -s -X MOCK_RETRIEVE https://:7777 | python3 -m json.tool [ { "path": "/hello", "query": "", "method": "GET", "body": "", "headers": { "Host": "localhost:7777", "User-Agent": "curl/7.81.0", "Accept": "*/*" } } ]
您可以使用此功能来对测试代码进行断言,以验证正在执行的代码发出的 HTTP 调用。
重置模拟服务器
要使模拟服务器忘记所有已设置的固定响应和所有已记录的请求,请使用 MOCK_RESET HTTP 方法
$ curl -X MOCK_RESET -D - https://:7777 HTTP/1.0 200 OK Server: BaseHTTP/0.6 Python/3.10.4 Date: Mon, 13 Jun 2022 20:37:35 GMT Mock resetted
此时,就像我们刚刚启动服务器一样,如果您发送 MOCK_RETRIEVE,它将返回空
$ curl -s -X MOCK_RETRIEVE https://:7777 []
历史记录
0.1.0a1 (2020-06-09)
首次发布在 PyPI 上。
0.1.1 (2022-06-13)
添加了基本文档。
添加了代码检查器和改进了维护工具。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。