HTTP 客户端 CLI
最后修改时间:2023 年 11 月 3 日除了 PyCharm 插件之外,HTTP 客户端也可用作 CLI 工具。它允许您在没有 IDE 的情况下从终端运行 HTTP 请求,或者在 CI 工作流程中包含 HTTP 请求测试。HTTP 客户端 CLI 不需要您拥有专业许可证。
安装 HTTP 客户端 CLI
您可以以Docker 映像或 ZIP 存档的形式获取 HTTP 客户端 CLI 。
要将 HTTP 客户端 CLI 作为 Docker 映像获取,请拉取该映像:
docker pull jetbrains/intellij-http-client
要获取 ZIP 存档,请使用 cURL:
curl -f -L -o ijhttp.zip "https://jb.gg/ijhttp/latest"
提示
ZIP 发行版需要安装 JDK 17 或更高版本。
下载 HTTP 客户端 CLI 后,您可以运行./ijhttp
以获取可用参数的列表。运行./ijhttp --version
以检查 HTTP 客户端 CLI 的版本。
运行 HTTP 请求
创建一个 .http 请求文件。如果您想一次运行所有请求,您的文件可以包含多个 HTTP、WebSocket 和 GraphQL 请求。
提示
HTTP 客户端 CLI 版本 2023.3 中将添加对 gRPC 请求的支持。
运行 HTTP 客户端 CLI:
在主机上在 Docker 中将文件名传递给
./ijhttp
命令,例如:./ijhttp myrequest.http
使用以下文件运行容器
.http
:docker run --rm -i -t -v $PWD:/workdir jetbrains/intellij-http-client run.http
此命令在主机 (
$PWD
) 上的当前工作目录和workdir
容器中的目录之间创建绑定安装。提示
请注意,
/workdir
此命令中需要:所有.http
文件都将在容器中的此目录内运行。
命令输出包含有关已发送的请求、测试状态和环境变量的信息。
更改日志级别
默认情况下,HTTP 客户端 CLI 只输出已发送的请求和环境变量的信息。您可以使用该-L
选项更改日志级别。
用于
-L HEADERS
记录有关请求和响应标头的信息。或者用于
-L VERBOSE
记录有关请求和响应标头和正文的信息。
将响应保存到文件
在 Docker 中解析 localhost
如果您的主机上运行着服务器,并且在 Docker 容器中运行 HTTP 请求,则可能需要解析localhost
为主机的本地主机。
使用该
-D
选项,例如:docker run --rm -i -t -v $PWD:/workdir jetbrains/intellij-http-client -D run.http
提示
--add-host host.docker.internal:host-gateway
如果您使用 Docker-for-Linux 20.10.0+,您还应该在命令中添加该选项:docker run --rm -i -t -v $PWD:/workdir --add-host host.docker.internal:host-gateway jetbrains/intellij-http-client -D run.http
这样,预期的请求localhost
将被发送到主机的本地主机。
环境变量
就像在 PyCharm HTTP 客户端中一样,您可以在 HTTP 请求中使用环境变量。您可以使用 HTTP 环境文件中的变量,也可以直接在 CLI 命令中传递变量值。
使用公共环境变量
使用该
--env-file
选项指定变量文件的路径并--env
指定环境的名称。例如:./ijhttp --env-file http-client.env.json --env dev rest-api.http
或者,在选项中传递变量值
-V
。如果要传递多个变量,请重复该-V
选项:ijhttp -V host=localhost:8080 -V planet=tatooine rest-api.http
您可以结合使用这两个选项:
./ijhttp --env-file http-client.env.json --env dev -V host=localhost:8080 rest-api.http
使用私有环境变量
使用该
--private-env-file
选项指定变量文件的路径并--env
指定环境的名称。例如:./ijhttp --private-env-file http-client.private.env.json --env dev rest-api.http
您还可以在选项中传递变量值
-P
。如果要传递多个变量,请重复该-P
选项:ijhttp -P password=mypassword123 -P user=johndoe rest-api.http
您可以结合使用这两个选项:
./ijhttp --private-env-file http-client.private.env.json --env dev -P password=mypassword123 rest-api.http
测试请求
就像在 HTTP 客户端插件中一样,您的.http
文件可能包含用 JavaScript ES6 编写的响应处理程序脚本。您可以使用它通过client.assert方法测试 HTTP 请求。
使用响应处理程序脚本
在您的
.http
文件中,从请求中跳过一行并编写包含在> {% ... %}
. 例如:GET https://httpbin.org/get > {% client.test("Test status code", function() { client.assert(response.status === 200, "Response status is not 200"); }); %}
笔记
使用 PyCharm 获取响应处理程序脚本的语法突出显示和完成。
您还可以包含来自单独文件的测试。文件的路径可以是绝对路径,也可以是相对于.http
文件的相对路径:
GET https://httpbin.org/get
> /path/to/responseHandler.js
以 JUnit XML 格式保存测试报告
HTTP 客户端可以提供 JUnit XML 格式的输出。
将
--report
参数添加到ijhttp
命令中,例如:./ijhttp test.http --report
HTTP 客户端 CLI 将报告保存在reports目录下的report.xml文件中。
感谢您的反馈意见!