Hurl工具使用指南:HTTP请求测试与运行利器

Hurl工具使用指南:HTTP请求测试与运行利器

hurl Hurl, run and test HTTP requests with plain text. hurl 项目地址: https://gitcode.com/gh_mirrors/hu/hurl

什么是Hurl

Hurl是一款命令行工具,用于运行和测试以简单纯文本格式定义的HTTP请求。它能够实现请求链式调用、捕获响应值以及对响应头和响应体进行查询评估。Hurl功能强大且用途广泛,既可用于获取数据,也可用于测试HTTP会话,包括HTML内容、REST/SOAP/GraphQL API,以及任何基于XML/JSON的API。

基本使用方式

Hurl的基本使用语法非常简单:

hurl [选项] [文件...]

如果未指定输入文件,Hurl会从标准输入读取内容:

echo GET http://httpbin.org/get | hurl

Hurl支持处理单个文件或整个目录。当输入为目录时,Hurl会递归查找所有扩展名为.hurl的文件。

Hurl文件格式详解

Hurl文件由一个或多个HTTP请求组成,格式简洁明了:

GET http://example.org/endpoint1
GET http://example.org/endpoint2

值捕获功能

Hurl的一个强大特性是能够从HTTP响应中捕获值,并在后续请求中重用。这在处理安全令牌等场景时特别有用:

GET https://example.org
HTTP 200
# 从HTML正文中捕获安全令牌值
[Captures]
security_token: xpath "normalize-space(//meta[@name='_security_token']/@content)"

# 执行登录操作
POST https://example.org/login?user=toto&password=1234
X-SECURITY-TOKEN: {{security_token}}

断言机制

Hurl文件中的HTTP响应定义可用于进行断言。响应部分至少包含对HTTP状态码的断言:

GET http://example.org
HTTP 301

还可以包含对响应头的断言:

GET http://example.org
HTTP 301
Location: http://www.example.org

通过组合查询和谓词,可以包含显式断言:

GET http://example.org
HTTP 301
[Asserts]
xpath "string(//title)" == "301 Moved"

借助断言功能,Hurl可以作为一个测试工具来运行各种场景。

核心功能选项

Hurl提供了丰富的选项来满足不同场景的需求,其中许多选项与curl工具保持相同的语义。

连接与超时控制

  • --connect-timeout:设置连接超时时间
  • --max-time:设置请求/响应的最大处理时间
  • --retry:设置最大重试次数
  • --retry-interval:设置重试间隔时间

安全与认证

  • --aws-sigv4:生成AWS SigV4签名认证头
  • --cert:指定客户端证书文件
  • --key:指定私钥文件
  • --insecure:允许不安全的SSL连接
  • --user:添加基本认证头

输出控制

  • --output:将输出写入文件而非标准输出
  • --test:激活测试模式
  • --json:以JSON格式输出结果
  • --no-output:抑制输出

网络设置

  • --proxy:使用指定网络中间件
  • --noproxy:指定不使用网络中间件的主机列表

调试与日志

  • --verbose:开启详细输出
  • --very-verbose:开启更详细的输出
  • --interactive:在请求间暂停(类似断点)

环境变量配置

Hurl支持通过环境变量进行配置,这些变量只能使用小写形式:

  • http_proxy:设置HTTP网络中间件
  • https_proxy:设置HTTPS网络中间件
  • all_proxy:设置通用网络中间件
  • no_proxy:设置不使用网络中间件的主机列表
  • HURL_name:定义模板变量
  • NO_COLOR:禁用彩色输出

实际应用场景

Hurl特别适合以下场景:

  1. API测试:对REST、SOAP或GraphQL API进行自动化测试
  2. Web抓取:通过链式请求获取网页内容
  3. 安全测试:验证安全防护等机制
  4. 回归测试:确保API行为符合预期
  5. 性能测试:结合重试和超时选项进行简单性能验证

总结

Hurl作为一个轻量级但功能强大的HTTP工具,结合了请求执行和测试验证的双重能力。其简洁的文本格式使得测试用例易于编写和维护,而丰富的选项则满足了各种复杂场景的需求。无论是开发过程中的API调试,还是持续集成中的自动化测试,Hurl都能提供高效可靠的解决方案。

通过掌握Hurl的核心功能和选项,开发者可以构建出灵活、可靠的HTTP测试流程,显著提升API开发和测试的效率。

hurl Hurl, run and test HTTP requests with plain text. hurl 项目地址: https://gitcode.com/gh_mirrors/hu/hurl

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙爽知Kody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值