* 戳上方蓝字「 开源先锋 」关注我
推荐阅读:
大家好,我是开源君!
传统的 HTTP 客户端,比如 curl 和 wget,虽然功能强大,可使用起来就有点麻烦了。需要用户手动设置各种参数,像是请求方式、目标网址、请求头、请求体等等。对于刚入门的小伙伴来说,可能会觉得一头雾水。
今天开源君分享一个更适合新手的项目 -
Hurl
。
项目简介
Hurl
是一个使用 Rust 语言开发的命令行工具,可以运行用简单纯文本格式定义的HTTP请求。既可以用于获取数据,也可以用于测试HTTP会话。
Hurl是基于curl的,相当于在curl上层进行了一层封装,可以很方便的在请求里面添加cooki json等等各种数据,对新手来说非常的友好和人性化。
curl和Hurl代码请求对比
项目特性
链式调用: 支持多个请求的链式调用,方便构建复杂的测试用例。
查询和断言: 支持多种类型的查询和断言,包括 XPath 和 JSONPath 等,可以满足不同测试需求。
适用场景: 适用于 REST/JSON API、HTML 内容、GraphQL 甚至 SOAP API 等多种场景。
CI/CD 集成: 方便集成到 CI/CD 中,支持生成文本报告、JUnit 报告和 HTML 报告,方便测试结果分析。
项目安装
linux二进制安装
INSTALL_DIR=/tmp
VERSION=4.2.0
curl --silent --location https://github.com/Orange-OpenSource/hurl/releases/download/$VERSION/hurl-$VERSION-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C $INSTALL_DIR
export PATH=$INSTALL_DIR/hurl-$VERSION:$PATH
MacOS
brew install hurl
windows,在项目release页面进行zip或者exe文件下载安装即可。
项目展示
简单的get请求
GET https://example.org
带请求头的get请求
GET https://example.org/news
User-Agent: Mozilla/5.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Post请求,带json数据
POST https://example.org/api/tests
{
"id": "456",
"evaluate": true
}
也可以直接使用本地的json文件。
POST https://example.org/api/tests
Content-Type: application/json
file,data.json;
整体功能上有和Curl相近的地方,但是在curl的基础上,Hurl做了最两个最主要的增强功能:
1、链接多个请求:通过其捕获功能,可以将接收到的数据注入到后续请求中。在标准的网络会话中,CSRF令牌是典型的示例。
2、测试HTTP响应:通过其断言功能,可以轻松测试响应内容。
更多的项目的细节功能,感兴趣的小伙伴自行到项目地址进行查看:
项目地址:
https://github.com/Orange-OpenSource/hurl