0


x-cmd pkg | hurl - 强力的 HTTP 请求测试工具,让 API 测试更加简洁和高效

目录

简介

hurl

是 [github.com/Orange-OpenSource] 用 Rust 开发的 HTTP 请求处理和测试工具,专注于简化 HTTP 请求的创建、执行以及自动化测试流程,能以简单的纯文本格式定义的 HTTP 请求,特别适用于测试和调试 HTTP 服务。

hurl 这个名字是对

curl

的致敬。该项目在底层采用 libcurl,而上层设计则专注于 HTTP 领域的应用。此外,hurl 在

curl

的基础上主要拓展了两个功能:链接多个请求(Chain several requests)、测试 HTTP 响应(Test HTTP responses)。

在这里插入图片描述

快速上手

安装 hurl

eval"$(curl https://get.x-cmd.com)"# 安装 x-cmd
x env use hurl                              # 使用 x-cmd 安装 hurl

发送 HTTP 请求

  1. 从 stdin 读取 HTTP 请求。echo GET http://httpbin.org/get | hurl
  2. 从指定文件或目录中读取 HTTP 请求。hurl 支持在同一个文件中定义多个 HTTP 请求,且在以目录为目标时,hurl 将递归搜索扩展名为 .hurl 的文件。echo GET http://httpbin.org/get > test.hurlhurl test.hurl # hurl <file>hurl ./ # hurl <dir>
  3. 使用测试模式,如执行当前目录下所有 .hurl 文件的 HTTP 请求并统计结果。hurl --test *.hurl

Hurl 文件格式

hurl 考虑到了 HTTP 请求的绝大部分场景,在有限的篇幅中笔者无法一一道来,只能简要说明部分内容:

  1. .hurl 文件是一份条目(entry)列表,每个条目包含请求(request)和响应(response)两部分内容,其中请求部分是必需的,而响应部分是可选内容。
  2. 请求(request):指一个 HTTP 请求,包含处理请求方法(method)、URL、标头(headers)、请求配置(如查询字符串、表单参数、cookies 等)和正文(body),其中请求方法和 URL 是必需的。更详细的说明请参考hurl 官方提供的图例。
  3. 捕获响应(Capturing Response):从 HTTP 响应中提取或存储所需的数据,并注入到后续的请求中。这对于在一个请求中使用来自另一个请求数据的场景非常有用。结构如下:# 提取或存储数据[Captures]<variable>: <query># 在另一个请求中使用上述提取的数据{{variable}}
  4. 断言(Asserts):用于测试 HTTP 响应的各种属性。它可以是隐式的(例如版本、状态、标头),也可以是 [Asserts]部分 中显式标识的。结构如下:GET https://api/example.org/catsHTTP 200Content-Type: application/json; charset=utf-8 # 隐式断言[Asserts] # 显示断言bytes count == 120header "Content-Type" contains "utf-8"jsonpath "$.cats" count == 49jsonpath "$.cats[0].name" == "Felix"jsonpath "$.cats[0].lives" == 9

功能特点

  1. 文件格式简单易懂:hurl 提供的格式简单易懂,方便维护,既可用于测试和调试 HTTP 服务,也可以作为文档非技术人员阅读或编写。
  2. 支持捕获响应(Capturing Response):支持从 HTTP 响应中提取或存储所需的数据,并注入到后续的请求中。
  3. 内置响应断言(Asserting Response):提供一系列断言(assertion)功能,允许你定义期望的 HTTP 响应状态码、头信息以及响应体内容,从而自动化地验证 HTTP 请求的响应。

竞品和相关项目

  1. curl:一款非常流行且功能强大的命令行工具,用于从命令行处理 HTTP、HTTPS 等多种协议的请求,支持文件传输、身份认证、代理等,适用于自动化脚本、调试 API、下载文件等多种场景。
  2. httpie:用 Python 实现的命令行 HTTP 客户端,专注于简化与 HTTP/HTTPS 服务的交互,设计更加直观和友好,特别适合开发人员、系统管理员和测试人员使用。
  3. Postman: Postman 是一款图形化的 API 测试工具,提供了丰富的功能管理 HTTP 请求。Postman 主要面提供了可视化的界面和协作功能。

进一步探索

  • hurl 源代码 - hurl 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 hurl 和参与社区贡献。
  • hurl 官方文档 - 学习和使用 hurl 的官方网站,提供了 hurl 的文档、教程和社区资源。

更多内容请查阅 : pkg/hurl

转载请标明原文链接https://www.x-cmd.com/pkg/hurl


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法


本文转载自: https://blog.csdn.net/edwinjhlee/article/details/142479543
版权归原作者 x-cmd 所有, 如有侵权,请联系我们删除。

“x-cmd pkg | hurl - 强力的 HTTP 请求测试工具,让 API 测试更加简洁和高效”的评论:

还没有评论