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是什么?
常见问题
- 冲突问题
当有两份的环境的时候会报有冲突,这时候就应该删掉临时文件的