【idea插件】之http client

  |   0 评论   |   1,996 浏览

介绍

支持组合、执行和存储HTTP请求。它可以用于测试RESTful Web服务,可以发送multipart/form-data请求或者只执行http请求。如果你在你的idea里面没有找到这个插件。说明你的idea版本太低了。
image.png

如何创建文件

你可以直接在idea代码编辑器里面直接来测试你的RESTful web服务。创建image.png这样的文件。
你可以创建临时文件,也可以创建物理文件。也可以使用(选择Refactor或者Move菜单,按F6按钮)把临时文件变为物理文件。当然这里推荐使用物理文件。如果是临时文件那只有你本机有,其他同事想要测试你的接口,还需要自己在写一个文件。

组合请求

你可以在一个文件里面,组合多个请求。这样你可以对一个接口列举各种不同场景,每个场景写一个请求,下次有代码修改回归的时候,可以直接一个一个的测试了。
可以使用模板来快速创建get/post请求。
使用gtr来快速创建get请求。

GET http://localhost:80/api/item
Accept: application/json
###

使用gtrp来快速创建get带参数请求。

GET http://localhost:80/api/item?id=99
Accept: application/json
###

使用mptr来快速创建multipart/form-data的POST请求。

POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name"
field-value
--WebAppBoundary--
###

使用fptr来快速创建上传文件请求。

POST http://localhost:80/api/item
Content-Type: multipart/form-data; boundary=WebAppBoundary
--WebAppBoundary
Content-Disposition: form-data; name="field-name" filename="file.txt"
< ./relative/path/to/local_file.txt
--WebAppBoundary--
###

使用ptr来快速创建简单的post请求

POST http://localhost:80/api/item
Content-Type: application/json
{}
###

使用ptrp来快速创建post请求

POST http://localhost:80/api/item
Content-Type: application/x-www-form-urlencoded
id=99&content=new-element
###

设置环境变量

你可能需要区分不同的环境,测试环境一个地址,开发环境又是一个地址,还有不同环境有些变量也不同,那么如何来满足这个需求呢?http client也支持使用环境变量。你可以使用类似{{host}}这样的占位符,设置了变量之后,你可以在执行请求的时候选择环境。如图
image.png
需要在项目中创建http-client.env.json文件。文件里面的内容为:

{
  "development": {
    "host": "127.0.0.1:8090",
    "authorization": ""
  },
  "test": {
    "host": "127.0.0.1:8011",
    "authorization": ""
  },
  "yace": {
    "host": "127.0.0.1:8099",
    "authorization": ""
  }
}

可以创建http-client.private.env.json文件,来设置一些隐式数据,如用户名、密码等

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

设置变量的示例:

GET http://{{host}}/api/item?id=99&token={{authorization}}

Accept: application/json

###

用脚本处理返回值

这里可以使用一些脚本来对返回值进行特殊处理,比如比较结果等。可以直接把脚本写到方法体里面,也可以引入js文件。

GET http://localhost:80/api/test
>  {% 
// Response Handler Script 
... 
%}

引入文件

GET http://localhost:80/api/test

> scripts/my-script.js

返回值脚本是使用 ECMAScript 5.1编写的。你需要启动 HTTP Response Handler类库。打开my-script.js,在菜单中选择Use JavaScript Library 或者 HTTP Response Handler。
具体示例:

GET https://localhost:80/status/200

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

执行http请求

点击每个请求左侧按钮,如图
image.png
选择好相应的环境之后,就会执行这个http请求。执行过一次之后,可以在image.png工具类上面直接看到,后面直接在这里执行就可以了。
执行完之后可以在这里看到结果:
image.png

使用ctrl+左键 点击url,可以在浏览器中打开这个地址。

执行历史结果

每次执行都会存历史执行结果,会在.idea/httpRequests/下面生成历史文件。
image.png
可以对历史执行结果进行比较,选择两个文件,按快捷键ctrl+D,查看文件之间的不同。
image.png

查看历史请求

idea会保留最近50个执行请求,他们都被存储在.idea/httpRequests/下面,在http-requests-log.http会存在50个执行,你可以看到之前的执行请求。你也可以在这个文件里面执行之前的请求。

也可以关注我的公众号:程序之声
图片
关注公众号,领取更多资源

本文为博主原创文章,未经博主允许不得转载。

评论

发表评论