IDEA REST Client 初体验

前言

接口调试是每个软件开发从业者必不可少的一项技能,一个项目的的完成,可能接口测试调试的时间比真正开发写代码的时间还要多,目前市面上比较好用的接口测试工具有很多,例如postman(一款谷歌的插件)或他的情侣款postwoman。

在没有使用IDEA REST 之前本人一直使用的是postman,但是当使用了IDEA REST之后,果断放弃了postman,因为IDEA REST Client具有postman所有功能,而且还有postman没有的功能

官网文档:英语ok,而且不嫌繁琐的直接来看,里面有非常详细的demo

  • 一、选择IDEA REST Client 原因

  1. 可以在同一个工具里面开发并测试接口
  2. 支持多环境配置区分,接口响脚本化处理进行辅助测试
  3. 接口请求配置可以和项目存放一起方便起来小伙伴一起共享
  • 二、IDEA REST Client控制台

打开路径:Tools -> HTTP Client -> Test RESTful Web Service 打开后长这样
在这里插入图片描述
可以看到上面提示 这块软件已经废弃,建议编写http文件来使用HTTP CLIENT
控制台有postman都有的功能可以选择请求类型,拼写请求参数等简单功能

  • 三、创建HTTP请求脚本

1. 创建一个HTTP请求暂存文件

临时文件可用于在开发过程中测试HTTP请求。临时文件未存储在项目中,因此IntelliJ IDEA可以修改它们并添加有关请求的其他信息。当从头文件执行HTTP请求时,到响应输出文件的链接将添加到请求下方和请求历史记录文件顶部 。
按,Ctrl+Shift+Alt+Insert然后选择HTTP Request

2. 创建一个物理HTTP请求文件

物理文件 可用于记录,测试和验证HTTP请求。物理文件存储在您的项目中,并且IntelliJ IDEA不会修改它们。从物理文件执行HTTP请求时,不会修改此文件。带有响应输出文件链接的有关已执行请求的信息将添加到请求历史记录文件的顶部 。
在“ 文件”菜单中,指向“ 新建”,然后单击“ HTTP请求(HTTP Request)”。

3.基础使用
### 演示POST请求
GET {{baseUrl}}demo1
Accept: application/json

{
   "name":"a"
}

### 演示GET请求
GET {{baseUrl}}/demo2
Content-Type: application/x-www-form-urlencoded

id=999&value=content
###

首先通过###三个井号键来分开每个请求体,然后请求url和header参数是紧紧挨着的,请求参数不管是POST的body传参还是GET的parameter传参,都是要换行的

4. 环境区分

细心的你可能发现了上面示例的代码,没有真实的请求地址,取而代之的,是一个{{baseUrl}}的占位符,这个就是IDEA REST Client真香的地方,支持从指定的配置文件中获取到环境相关的配置参数,不仅baseUrl可以通过占位符替换,一些请求的参数如果和接口环境相关的都可以通过配置文件来区分。

1.首先在.http的脚本同目录下创建一个名为 http-client.env.json文件。该文件可以包含公用变量,例如主机名,端口或查询参数,并且应与您的项目一起分享
2.私有将创建http-client.private.env.json文件。该文件可能包含密码,令牌,证书和其他敏感信息默认情况下,它将添加到VCS忽略文件列表中。在变量中指定的变量值http-client.private.env.json 文件会覆盖常规环境文件中的值。

http-client.env.json

{
  "dev": {
    "baseUrl": "http://localhost:8080/",
    "username": "",
    "password": ""
  },
  "test": {
    "baseUrl": "http://test/url/",
    "username": "",
    "password": ""
  }
}

http-client.private.env.json

{
    "dev": {
        "username": "dev-user",
        "password": "dev-password"
    },

    "test": {
        "username": "user",
        "password": "password"
    }
}

那么在选择执行请求的时候,IDEA就会让你选执行那个环境的配置,如:
在这里插入图片描述

5. 动态变量

每次您运行请求时,动态变量都会生成一个值:

  • $uuid:生成通用的唯一标识符(UUID-v4)
  • $timestamp:生成当前的UNIX时间戳
  • $randomInt:生成介于0和1000之间的随机整数。
  • 例如:GET http://localhost/api/get?id={{$uuid}}
6. 响应处理 结果断言

响应处理程序脚本可以包含测试,该测试使您可以将HTTP客户端用作测试框架。要创建测试,请调用client.test(testName, function)方法。在测试内部,您可以通过调用client.assert(condition, message)方法来断言一个条件 ,例如:

### 演示GET请求
GET https://httpbin.org/status/200

> {%
    client.test("Request executed successfully", function() {
        client.assert(response.status === 200, "Response status is not 200");
    });
%}
###
7. 历史请求记录

IntelliJ IDEA自动将最近执行的50个请求保存到.idea/httpRequests/http-requests-log.http 文件中,使用请求历史记录导航到相应的文件,可以快速导航到特定响应并再次发出请求。
可以在请求前添加带有@no-log标签的注释行,设置不打印请求日志

通过响应收到的Cookie会自动保存到专用 http-client.cookies 文件在 .idea / httpRequests /目录。可以保存的Cookie数量限制为300个。如果未到到期日期,则在对URL的每个后续请求中都会自动包含cookie 的名称和值,该URL与为cookie指定的域和路径相匹配。
可以在请求前添加带有@no-cookie-jar标签的注释行,设置不写入cookie

8. 结果值暂存

试想下这样的场景,当一个系统需要通过认证才能访问的时候,如果用postman的时候,是不是先访问登录接口,然后获得token后,手动粘贴复制到新的调试接口的header参数里面去,这太麻烦了,IDEA REST Client还有一个真香的功能,可以完美解决这个问题,请看下面的脚本:

### 演示POST请求
POST https://httpbin.org/post
Content-Type: application/json

{
  "user": "admin",
  "password": "123456"
}

> {%
client.test("Request executed successfully", function() {
  client.assert(response.status === 200, "Response status is not 200");
  client.global.set("auth_token", response.body.token);
});
%}

### 演示GET请求
GET https://httpbin.org/headers
Authorization: Bearer {{auth_token}}

在第一个认证的请求结束后,可以在response里拿到返回的token信息,然后我们通过脚本设置到了全局变量里,那么在接下来的接口请求中,就可以直接使用双大括号占位符的方式获取到这个token了

9. 配置代理设置

在 在“设置/首选项”对话框中 Ctrl+Alt+S,在“ 外观和行为”下选择“ 系统设置”,然后选择“ HTTP代理”。在打开的“ 代理”对话框中,选择“ 手动代理配置” 并指定以下内容:
在主机名和 端口号 字段中输入代理主机名和端口号。要启用授权,请选中“ 代理身份验证”复选框,然后在相应的字段中键入用户名和密码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值