大家好,我是狂师!
今天给大家推荐一款开源的HTTP测试工具:Hurl,
相比curl、wget功能更强大,且更容易上手、很适用新手使用。
Hurl
是一个使用Rust
语言开发的命令行工具,它允许用户运行以简单纯文本格式定义的HTTP请求。这个工具不仅适用于获取数据,还非常适合用于测试HTTP会话和API。
项目地址:
https://github.com/Orange-OpenSource/hurl
Hurl的主要特性和用途包括但不限:
总的来说,Hurl是一个非常灵活且功能丰富的命令行工具,它不仅可以发送HTTP请求,还可以将这些请求链接在一起,形成请求链。这个特性使得Hurl在模拟复杂的用户交互场景时特别有用。此外,Hurl还能够捕获请求中的特定值,并对响应头部和响应正文中的信息进行查询和评估。无论是对于初学者还是经验丰富的测试人员,Hurl都是一个值得考虑的选择。
Hurl作为一个功能强大的命令行HTTP请求工具,其安装步骤在不同的操作系统上会有所不同。以下是针对各个平台的安装操作步骤:
brew install hurl
https://github.com/Orange-OpenSource/hurl/releases
apt-get install hurl
命令来安装。1、GET请求
# Get home:
GET https://example.org
HTTP 200
[Captures]
csrf_token: xpath "string(//meta[@name='_csrf_token']/@content)"
# Do login!
POST https://example.org/login?user=toto&password=1234
X-CSRF-TOKEN: {{csrf_token}}
HTTP 302
2、POST请求
POST https://example.org/api/tests
{
"id": "4568",
"evaluate": true
}
HTTP 200
[Asserts]
header "X-Frame-Options" == "SAMEORIGIN"
jsonpath "$.status" == "RUNNING" # Check the status code
jsonpath "$.tests" count == 25 # Check the number of items
jsonpath "$.id" matches /\d{4}/ # Check the format of the id
Hurl虽是一个命令行工具,但Hurl的主要使用方式是通过编写Hurl文件,这些文件包含了要发送的HTTP请求的定义。然后,用户可以通过Hurl命令行工具来运行这些文件,发送请求并获取响应。
示例一:发送GET请求并输出响应
1、创建Hurl文件内容 (example1.hurl)
GET https://api.example.com/data
2、执行命令行
hurl example1.hurl
example1.hurl 是包含HTTP请求的Hurl文件。执行此命令后,Hurl会发送一个GET请求到https://api.example.com/data
,并在终端输出服务器的响应。
示例二:发送POST请求并携带JSON数据
1、创建Hurl文件内容 (example2.hurl)
POST https://api.example.com/create
Content-Type: application/json
{
"name": "John Doe",
"age": 30
}
2、执行命令行
hurl example2.hurl
执行命令后,Hurl会发送POST请求到https://api.example.com/create
,并在请求体中携带JSON数据。
示例三:使用变量和链式请求
1、创建Hurl文件内容 (example3.hurl)
GET https://api.example.com/user/123
# 捕获响应中的token
{{token}} = response.headers.get("X-Auth-Token")
GET https://api.example.com/data
Authorization: Bearer {{token}}
2、执行命令行
hurl example3.hurl
3、执行解释:
示例四:包含断言和隐式验证
1、创建Hurl文件内容 (example4.hurl)
GET https://api.example.com/status
# 隐式验证:检查状态码是否为200
HTTP/1.1 200
# 显式断言:检查响应体是否包含特定文本
assert contains(response.body, "OK")
2、执行命令行:hurl example4.hurl
3、执行解释
这些示例展示了Hurl的基本用法和一些高级特性,如变量捕获、链式请求和断言验证。
你可以根据自己的需求,结合Hurl的文档和这些示例,构建更复杂的HTTP测试场景。