Hurl工具使用手册:HTTP请求测试利器详解
hurl Hurl, run and test HTTP requests with plain text. 项目地址: https://gitcode.com/gh_mirrors/hu/hurl
概述
Hurl是一款功能强大的命令行工具,专门用于执行和测试HTTP请求。它采用简洁的纯文本格式定义请求,支持请求链式调用、值捕获以及对响应头和响应体的查询评估。无论是简单的数据获取还是复杂的HTTP会话测试,Hurl都能胜任。
基本用法
执行单个请求文件
hurl session.hurl
从标准输入读取请求
echo GET http://httpbin.org/get | hurl
批量执行目录下的请求文件
Hurl会自动递归查找目录下所有.hurl扩展名的文件
输出重定向
hurl -o output.log input.hurl
核心功能解析
1. 请求链式调用
Hurl支持在一个文件中定义多个HTTP请求,按顺序执行:
GET http://api.example.com/users
GET http://api.example.com/products
2. 值捕获机制
典型应用场景是处理CSRF令牌:
GET https://example.org
HTTP 200
[Captures]
csrf_token: xpath "//meta[@name='_csrf_token']/@content"
POST https://example.org/login
X-CSRF-TOKEN: {{csrf_token}}
3. 断言验证
Hurl提供丰富的断言功能:
基础状态码验证
GET http://example.org
HTTP 301
响应头验证
GET http://example.org
HTTP 301
Location: http://www.example.org
XPath断言
GET http://example.org
HTTP 301
[Asserts]
xpath "string(//title)" == "301 Moved"
高级配置选项
连接控制
--connect-timeout
:设置连接超时时间(支持时间单位)--http1.1/--http2/--http3
:指定HTTP协议版本
安全认证
--aws-sigv4
:生成AWS SigV4签名--cert
:指定客户端证书--insecure
:允许不安全的SSL连接
调试与测试
--test
:启用测试模式输出--interactive
:交互式模式(支持断点调试)--continue-on-error
:出错后继续执行
性能调优
--delay
:设置请求间隔时间--compressed
:启用压缩传输
最佳实践建议
-
环境隔离:使用
--file-root
指定文件根目录,确保测试环境一致性 -
Cookie管理:结合
--cookie
和--cookie-jar
实现会话保持 -
批量测试:利用
--glob
模式匹配批量执行测试用例 -
错误处理:使用
--error-format long
获取详细错误信息 -
CI集成:通过
--test
模式输出适合持续集成的测试报告
技术优势
-
轻量简洁:纯文本格式定义,易于版本控制和团队协作
-
多协议支持:完美适配REST、SOAP、GraphQL等各种API风格
-
灵活断言:支持XPath、JSONPath等多种查询方式
-
生产就绪:丰富的超时重试机制,适合生产环境监控
Hurl将HTTP测试的复杂操作简化为直观的文本指令,是开发者和测试工程师提升API开发效率的利器。无论是简单的接口调试还是复杂的业务场景测试,Hurl都能提供专业级的解决方案。
hurl Hurl, run and test HTTP requests with plain text. 项目地址: https://gitcode.com/gh_mirrors/hu/hurl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考