
在微服务和分布式系统盛行的今天几乎所有系统间的通信都离不开 HTTP 协议。开发者通常会面临两个核心需求需要一个好用的 HTTP 客户端来验证 API 接口的功能是否正确需要压测工具来评估系统在高并发下的表现传统做法往往要切换两套工具日常调试用 curl / Postman / Insomnia压测时再换成 wrk、ab、locust、k6 之类。上下文切换成本很高。而hurley想解决的就是这个问题——它把「日常 HTTP 客户端」和「命令行压测工具」合二为一用一套工具就能完成从单次调试到万级并发压测的全流程极大降低开发和测试中的割裂感。核心功能一作为现代 HTTP 客户端hurley 在客户端模式下基本实现了现代 HTTP 标准需要的大部分能力特别适合 RESTful 接口调试。支持所有常用 MethodGET、POST、PUT、DELETE、PATCH、HEAD常用参数风格跟 curl 非常接近迁移成本很低# 带自定义 header 和 json body 的 POST 请求 hurley -X POST https://api.example.com/v1/users \ -H Content-Type: application/json \ -H Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... \ -d {username:alice,age:28}其他常用能力-H添加任意 header-d直接传字符串 body-f从文件读取 body适合传大文件或复杂 JSON-L自动跟随 301/302 重定向支持超时设置、代理、自定义 CA 等具体参数可查 --help核心功能二一键变成压测工具最有特色的地方在于你写好的单条请求几乎不需要改动就能直接变成压测场景。只需要额外加上两个最关键的参数-cconcurrency并发连接数-nnumber总请求数# 100 并发发 10 万次请求 hurley -c 100 -n 100000 https://api.example.com/health更进一步它还支持基于数据集的随机化压测非常适合模拟真实用户行为避免缓存预热导致的假象。你可以准备一个 JSON 文件格式很简单[ {method: GET, path: /api/users/1001}, {method: GET, path: /api/users/1002}, {method: POST, path: /api/orders, body: {item_id: 55, qty: 2}}, {method: PUT, path: /api/cart/abc123, body: {status: paid}} ]然后运行hurley -c 50 -n 50000 --dataset requests.json https://staging.api.example.comhurley 会从中随机或顺序挑选请求发送能有效打散热点、减少缓存命中率偏差测出更真实的系统表现。压测结果输出不止有平均值hurley 的报告比很多传统工具更关注尾部延迟输出的统计信息对 SLA 敏感型业务非常有参考价值Statistical Summary Total Requests: 100000 Error Rate: 0.12% Requests/sec: 1248.7 RPS Latency Distribution (ms) p50 (median) : 42.3 ms p95 : 118.6 ms p99 : 245.1 ms p99.9 : 781.4 ms StdDev / Jitter : 68.2 ms国内大部分中大型公司对 p99 / p99.9 都非常敏感平均值好看但 p99 爆炸的场景太常见了hurley 把这些关键指标放在显眼位置。底层技术选型为什么快且安全异步运行时tokioHTTP 客户端底层reqwest但做了大量定制高精度延迟统计hdrhistogramHDR Histogram工业级延迟统计库错误处理thiserror Rust 强类型系统这些组合让 hurley 在保持内存安全的前提下性能可以接近甚至部分场景超过用 C/C 写的同类工具。安装方式国内开发者最常用两种推荐直接用 cargo 安装需要已安装 Rust 工具链cargo install hurley从源码编译适合需要改代码或用最新版git clone https://github.com/dursunkoc/hurley.git cd hurley cargo build --release # 二进制文件在 target/release/hurley总结与展望hurley 目前还是一个年轻的开源项目GitHub: https://github.com/dursunkoc/hurley但方向非常清晰用一套工具完成 curl wrk 的全部工作并且用 Rust 的现代异步能力把性能和安全性都做到很高水准。作者在 roadmap 里提到未来会支持分布式压测多机协同HTTP/3 QUIC 支持更丰富的断言和结果校验能力如果你平时既写接口文档、调试联调又需要做一些轻量级 / 中量级的压测不想在终端里来回切工具不妨试试 hurley。它很可能成为你日常工具链里的「瑞士军刀」之一。有兴趣的同学可以直接去 GitHub star 一波支持作者继续迭代