强!10.6K star,一款开源HTTP测试工具,适合新手,简单、容易上手!
大家好,我是狂师!
今天给大家推荐一款开源的HTTP测试工具:Hurl,相比curl、wget功能更强大,且更容易上手、很适用新手使用。
1、项目介绍
Hurl是一个使用Rust语言开发的命令行工具,它允许用户运行以简单纯文本格式定义的HTTP请求。这个工具不仅适用于获取数据,还非常适合用于测试HTTP会话和API。
项目地址:
https://github.com/Orange-OpenSource/hurl
Hurl的主要特性和用途包括但不限:
- 请求发送与捕获:Hurl可以发送HTTP请求,并捕获响应中的值。这使得用户可以方便地执行各种HTTP操作,并收集所需的响应数据。
- 查询与评估:Hurl支持对标头和正文响应进行查询和评估。用户可以使用XPath和JSONPath等多种查询方式,以满足不同的测试需求。
- 链式调用:Hurl支持多个请求的链式调用,这使得用户可以方便地构建复杂的测试用例,从而更全面地测试HTTP会话或API。
- 集成与报告:Hurl易于集成到CI/CD(持续集成/持续部署)流程中,支持生成多种格式的报告,如文本报告、JUnit报告和HTML报告,这有助于用户分析和理解测试结果。
- 适用于多种场景:Hurl不仅适用于REST/JSON API的测试,还适用于HTML内容、GraphQL以及SOAP API等多种场景。
总的来说,Hurl是一个非常灵活且功能丰富的命令行工具,它不仅可以发送HTTP请求,还可以将这些请求链接在一起,形成请求链。这个特性使得Hurl在模拟复杂的用户交互场景时特别有用。此外,Hurl还能够捕获请求中的特定值,并对响应头部和响应正文中的信息进行查询和评估。
无论是对于初学者还是经验丰富的测试人员,Hurl都是一个值得考虑的选择。
2、不同平台安装下载
Hurl作为一个功能强大的命令行HTTP请求工具,其安装步骤在不同的操作系统上会有所不同。以下是针对各个平台的安装操作步骤:
- Mac用户:可以通过Homebrew来安装Hurl。在终端中输入命令,按照提示完成安装过程。
brew install hurl
- Windows用户:可以访问Hurl的GitHub发布页面,下载最新版本的安装包,然后按照提示进行安装。
https://github.com/Orange-OpenSource/hurl/releases

- Linux用户:可以使用包管理器来安装Hurl。例如,在基于Debian的系统上,可以使用
apt-get install hurl命令来安装。
3、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、执行解释:
- 第一个GET请求用于获取用户的认证token。
{{token}} = response.headers.get("X-Auth-Token") 这行代码捕获响应头中的X-Auth-Token值,并将其存储在token变量中。 - 第二个GET请求使用了前面捕获的token变量作为Authorization头的值,用于后续的认证。
- 执行命令后,Hurl会按照顺序执行两个请求,并在第二个请求中使用第一个请求的响应数据。
示例四:包含断言和隐式验证
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、执行解释
- 发送GET请求到https://api.example.com/status。
- 隐式验证是通过在Hurl文件中直接指定期望的HTTP状态码(这里是200)来完成的。如果服务器的响应状态码与指定的不同,Hurl会报错。
- 显式断言使用assert关键字来检查响应体是否包含"OK"文本。如果不包含,测试将失败。
这些示例展示了Hurl的基本用法和一些高级特性,如变量捕获、链式请求和断言验证。
你可以根据自己的需求,结合Hurl的文档和这些示例,构建更复杂的HTTP测试场景。
强!10.6K star,一款开源HTTP测试工具,适合新手,简单、容易上手!的更多相关文章
- 几款开源的ETL工具及ELT初探
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的过程.ETL 是构建数据仓 ...
- 2014 非常好用的开源 Android 测试工具
http://www.php100.com/html/it/mobile/2014/1015/7495.html 当前有很大的趋势是转向移动应用平台,Android 是最广泛使用的移动操作系统,201 ...
- 开源负载测试工具k6比JMeter更容易的5件事
k6是GitHub上提供的开源负载测试工具.它是用Go编写的,并运行用JavaScript编写的测试脚本.它受到了开发人员,测试人员和DevOps团队的强烈兴趣,并拥有超过4400名GitHub明星. ...
- 开源API测试工具 Hitchhiker v0.10 - 中文版
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到
Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...
- 开源API测试工具 Hitchhiker v0.5更新 - 完善细节
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Ap ...
- 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...
- 开源API测试工具 Hitchhiker v0.7更新 - Schedule的对比diff
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Ap ...
- 开源API测试工具 Hitchhiker v0.8 - 自动化测试结果统计
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持自动化测试, 数据对比,压力测试,支持脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试Api. ...
- 开源Web测试工具介绍
HtmlUnitHtmlUnit 是 JUnit 的扩展测试框架之一.HtmlUnit 将返回文档模拟成 HTML,这样您便可以直接处理这些文档了.HtmlUnit 使用例如 table.form 等 ...
随机推荐
- win32 - 使用CreateRemoteThread调用dll上的函数(建立管道)
Dll: // dllmain.cpp : Defines the entry point for the DLL application. #include "pch.h" #i ...
- maven引入本地jar不能打入部署包的问题解决
引入的三方依赖 jar 包, scope 为 system 的包 maven 默认是不打包进去的,需要加这个配置 在pom.xml文件中找到spring-boot-maven-plugin插件,添加如 ...
- django时区相关说明
# naive time 从字面意思上理解,这是个"幼稚的时间",所以可以理解为它是个本地时间,不带时区信息,不能直接用于存储,如下 import datetime datetim ...
- c# rdkafka 设置偏移量(offset)
参考资料: librdkafka: 如何设置Kafka消费者订阅消息的起始偏移位置 领导要求kafka消费者端消费最新的数据. 不知道怎么设置偏移量,查了资料. 用惯了封装好的东西,都不知道怎么设置了 ...
- 【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
当在Azure 中部署Java应用时候,通常会遇见下列的问题: 如何部署一个Java的项目呢? 部署成功后,怎么来查看Tomcat的服务器信息呢? 如果Azure提供的默认Tomcat版本的配置跟应用 ...
- Vue3学习(二十一)- 文档管理页面布局修改
写在前面 按照国际惯例,要先聊下生活,吐槽一番,今天是2月14日,也是下午听老妈说,我才知道! 现在真的是对日期节日已经毫无概念可言,只知道星期几. 现在已经觉得写博客也好,学习文章也罢,和写日记一样 ...
- Codeforces Round 303 (Div. 2)C. Kefa and Park(DFS、实现)
@ 目录 题面 链接 题意 题解 代码 总结 题面 链接 C. Kefa and Park 题意 求叶节点数量,叶节点满足,从根节点到叶节点的路径上最长连续1的长度小于m 题解 这道题目主要是实现,当 ...
- MSYS2使用记录——win10系统64位安装msys2最新版(msys2-x86_64-20190524.exe)
MSYS2使用记录--win10系统64位安装msys2最新版(msys2-x86_64-20190524.exe) 安装 测试系统: windows 10 首先需要msys2的安装包,可以去官网下载 ...
- 2.4G无线音频传输方案市场调研分析
基本概念 所谓的2.4G音频传输,不是使用标准的wifi和蓝牙协议传输,而是使用私有的2.4G通信协议来实现点对点,一对多和多对一的音频传输.2.4G私有协议音频传输,有这低延时,距离远,声音高清 ...
- python元组(tuple)循环遍历实例分析
一 概念: 元组是有序且不可更改的集合.在 Python 中,元组是用圆括号编写的. 二 使用方法: 1 基本创建: thistuple = ("apple", "ba ...