IDEA REST Client
基本技术
官网文档:英语ok,而且不嫌繁琐的直接来看
这是一个idea的插件工具功能类似postman,其最大的好处就是可以写一些js代码来辅助调试
- 路径:tools>httpclient>test restful web service
- 详细窗口
上边也写了说这个工具已经废弃,建议编写http文件来使用http client,
其实就是创建.http或者.rest文件,在文件里写一些代码逻辑来测试
基础使用
- 请求的格式
// 使用三个#号来定义一个请求 ### // 请求接口 Method Request-URI HTTP-Version // 头信息 Header-field: Header-value // 空一行写参数 Request-Body
- 具体的实例在编辑器右上角
在图中位置有示例代码
注意:支持curl的转换
进阶使用
-
使用环境变量
当你项目部署在多个环境的时候环境变量就尤为重要,最典型的就是名称 含义 dev 开发环境 uat 测试环境 pro 正式环境
-
使用也很简单,在和http文件同目录下创建两个文件(值得注意的是,这两个文件如果在idea的scratches(临时文件)里需要把他拷贝出去一份,在任何地方)
http-client.env.json和http-client.private.env.json(这个文件是不提交到版本控制的,当然也可以没有,就是说这是一些私密信息)
当用的是.rest的时候就是rest-client.env.json和rest-client.private.env.json文件 -
具体使用方式
在http或rest文件里使用{{}}来取到具体的变量值,下边是一个参考例子http-client.env.json、
在这个文件里私密信息不写如loginname和password{ "?dev": "开发环境", "dev": { "baseUrl": "*****", "loginname": "", "password": "" }, "?uat": "测试环境", "uat": { "baseUrl": "*****", "loginname": "", "password": "" }, "?pro": "正式环境", "pro": { "baseUrl": "*****", "loginname": "", "password": "" } }
http-client.private.env.json
在这个文件里定义私密信息{ "?dev": "开发环境", "dev": { "loginname": "***", "password": "***" }, "?uat": "测试环境", "uat": { "loginname": "***", "password": "***" }, "?pro": "正式环境", "pro": { "loginname": "***", "password": "***" } }
使用效果
- 使用脚本来测试与设置全局变量
-
格式
GET host/api/test > {% // Response Handler Script ... %}
-
测试使用
测试重要使用client的三个方法- 测试方法
client.test(testName, function) - 断言方法
client.assert(condition, message) - 打印日志方法
client.log(message)
示例代码
> {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); // 打印msg client.log(response.body.msg); }); %}
- 测试方法
-
设置一个全局变量
一般来说我们总是需要一个token来使用接口,之前都是复制,现在我们使用全局变量来处理
使用到的方法就是client.global.set方法
示例代码> {% client.global.set("token", response.body.token); client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); client.log(response.body.msg); client.log(client.global.get("token")); }); %}
上边就是显示的就是设置和使用全局变量
效果如下
其他拓展问题
- 请求头一般需要改哪些信息
- idea的临时文件
- curl是什么?
常见问题
- 冲突问题
当有两份的环境的时候会报有冲突,这时候就应该删掉临时文件的