使用IDEA提供的HTTP Client替代Postman
一、背景说明
- 现在主流应用系统都采用前后端分离架构设计了
- 那么后端API接口的测试,你用什么工具?Swagger、Postman是不是?
- 今天我告诉你用日常使用的IDEA,即可获得更好的体验
- swagger2测试是方便:
- 不过每次测试的数据不能复用
- 应该是临时存再浏览器缓存里,一段时间就没了
- 而且不好共享给他人
- Postman功能是强大,确实优秀
- 能保存每次测试的数据和接口配置
- 对比swagger缺点就是,地址、参数结构第一次都要手动写
- 其次个人觉得太重了,早期Postman还挺挺轻量级,现在感觉做的很重,现在安装包都到121M了
- 以上纯属我个人主观感受,不喜勿喷
- 所以使用IDEA HTTP request 工具不香吗?
- 能少一个工具是一个,比如IDEA 中的 Git插件其实就挺好用,替代笨重的 SourceTree
- 适合程序员用,代码都是很透明,语法很简洁
- 可以作为项目文件,通过 Git 提交到仓库,大家共享文件
- 共同维护接口请求数据,自然就不会出现调试别人接口还要导入他人数据
- 这里还多说一点,原则上自己开发的接口,后端应该都需要本地测试通过才可以提交代码
- 所以,用这款工具,还可以作为一个是否自测的检查标准,就是说,必须让开发将该http文件、测试返回值JSON与源代码一并提交
- 总之,就是方便 测试用例、测试参数、测试数据的 共享
二、下面开始体验
- 创建HTTP Client,这里就直接推荐你创建一个.http文件
-
然后来一个hello word
- 返回结果如下
- 是不是超级简单
-
配合restfultoolkit插件
- 如果你还想更懒一点,idea安装下restfultoolkit插件
- 然后在你的Controller方法上点下,就这样:
- 看到这里就问你,香不香?
三、接下来我们来点复杂的
- 上面可能太简单了是吧?一般测试至少要登录对吧?没关系
- 下面演示流程:用户登录,获得token,放入全局变量,其他接口引用
-
### 用户登录
-
POST http://localhost:6800/base/user/login
-
Content-Type: application/json
-
-
{
-
"loginType": 1,
-
"username": "admin",
-
"password": "xxxxxx"
-
}
-
-
> {%
-
client.log("将当前用户登录的token存储到全局变量中");
-
client.assert(response.status===200, "登录失败,用户名或密码错误")
-
client.global.set("token", response.body.data.token);
-
%}
-
-
### 查询用户基本信息
-
-
GET http://localhost:6800/base/user/info
-
Accept: application/json
-
token: {{token}}
- 简单不?爽不爽?什么,还不爽?请求地址能不能全局定义,且支持分环境?当然可以,继续看
- 略加改造,指定环境运行
-
### 查询用户基本信息
-
-
GET {{baseUrl}}/base/user/info
-
Accept: application/json
-
token: {{token}}
轻松搞定,这里我遇到了一个问题提下,就是看我的环境变量名称本来是local、dev、uat,结果dev死活不行,提示找到多个dev,其他名字都行,不知道是不是不过,于是我都加了个前缀,如果你也遇到了,欢迎交流
四、最后总结下(日常够用了)
-
######################## 语法说明 ########################
-
-
### 使用三个 # 来分隔多个请求
-
-
# GET/POST 请求地址(可拼接查询参数)
-
# 请求头键值对
-
-
# 请求体
-
-
# > {% %}
-
-
# 响应处理
-
# 使用 >符号 打头,和 shell 很像,然后用 {% %} 括起来的脚本内容
-
# 在脚本中可以使用 javascript 原生语法
-
# 脚本中有几个内置对象 client 表示当前客户端,response 表示响应结果
-
# 注释 : // 或者 #
-
# 支持 basic / digest 认证,Authorization: Basic|Digest username password
-
# 断言 client.assert()
-
# 脚本日志 client.log()
-
# 存储/获取全局变量 client.global.set/get {{xxx}}
-
# 环境变量文件 配置全局环境参数 http-client.env.json
-
# 学以上这么多够用了
-
# 扩展了解:文件上传怎么弄,我日常用不到,因为都是异步上传
-
# 扩展了解:断言,我觉得用处不大
最后要注意下,创建的.http文件都放在 scratches 下,返回值才可以正常回写到.http文中,如果将文件放在你的其他模块目录下,运行都正常,就是没有回写json结果,具体看你自己需求了。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfjkhi
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01