赞
踩
RESTful WebServices是一个类似jmeter、postman的工具。可以使用纯文本编辑。
在IDEA中的位置Tools->Http client->Test Restful WebService
。点击之后出现如下界面
点击红色部分即可出现文本编辑页面
可以点击Add Request快速生成模板,也可输入gtr生成get请求模板,ptr生成post请求模板,mptr生成multipart/form-data
请求模板。
点击Examples,其中包含很多复杂的http请求集合示例,可以参考,非常全面。
编写HTTP请求时,可以使用variables来参数化其元素 。变量可以保存请求的主机,端口和路径的值,查询参数或值,标头值或在请求主体内部或外部文件中使用的任意值。
要在请求中提供变量,请将其括在双花括号中,如{{variable}}
。变量名称只能包含字母,数字,下划线符号 _或连字符-。
变量的值可以通过以下方式获取:
默认方式动态生成的$uuid
,$timestamp
和$randomInt
预定义的动态变量
通过环境变量为每个环境显式提供
编写响应处理脚本方式定义。即使用 client.global.set
预定义的动态变量
每次您运行请求时,动态变量都会生成一个值:
$uuid
:生成通用的唯一标识符(UUID-v4)
$timestamp
:生成当前的UNIX时间戳
$randomInt
:生成介于0到1000之间的随机整数。
例如:
GET http://localhost/api/get?id={{$uuid}}
环境变量创建
环境变量使您可以在项目内部存储一组环境定义。例如,您可以创建和使用{{host}}
变量,而不是在请求中显式提供主机名。执行请求时,可以在定义的环境之间进行选择,然后将其发送到特定的主机:
定义环境变量
环境变量在环境文件中定义。
在项目内部,创建以下文件:
在rest-client.env.json
(或http-client.env.json
)是包含常见的变量,其目的是要与你的项目一起分发的常规文件。
在rest-client.private.env.json
(或http-client.private.env.json
)是一个 私人 的文件可能包括密码,令牌,证书和其他敏感信息。默认情况下,此文件被添加到VCS忽略文件列表中。在http-client.private.env.json
文件中指定的变量的值将覆盖环境文件中的值。
环境变量示例
http-client.env.json
- {
- "development": {
- "host": "localhost",
- "id-value": 12345,
- "username": "",
- "password": "",
- "my-var": "my-dev-value"
- },
-
- "production": {
- "host": "example.com",
- "id-value": 6789,
- "username": "",
- "password": "",
- "my-var": "my-prod-value"
- }
- }
http-client.private.env.json
- {
- "development": {
- "host": "localhost",
- "id-value": 12345,
- "username": "",
- "password": "",
- "my-var": "my-dev-value"
- },
-
- "production": {
- "host": "example.com",
- "id-value": 6789,
- "username": "",
- "password": "",
- "my-var": "my-prod-value"
- }
- }
示例HTTP请求如下
- GET http://{{host}}/api/json/get?id={{id-value}}&key={{unresolved_var}}
- Authorization: Basic {{username}} {{password}}
- Content-Type: application/json
-
- {
- "key": {{my-var}}
- }
当您执行上述请求时,IntelliJ IDEA会在定义的执行环境之间提供一个选择:
该脚本包含两个对象,分别为client和response。该脚本在http请求完成后执行。
client存储会话元数据,可以在脚本内部对其进行修改。该client直到IntelliJ IDEA关闭存在。
response保存有关接收到的响应的信息:其内容类型,状态,响应正文等。
Client用于存储全局变量,跟随IDEA启动和关闭,重启IDEA变量不会保存。
client属性
名称 | 描述 |
---|---|
global | 用于全局变量存储,用于设置,检索,或删除变量。在HTTP请求中,您可以使用语法{{variable_name}} 访问存储在client.global 中名称为variable_name 的变量。 |
client方法
名称 | 参数 | 描述 |
---|---|---|
test | testName (string) func (function) | 创建名为testName,body 为func的测试。 |
assert | condition (boolean) message (string) | 检查指定的 condition 是true; 否则引发异常。可选message 参数用作异常消息。 |
log | text | 打印text到控制台 |
global全局变量存储对象
该global对象用作变量存储,并用于设置,检索或删除变量。
global方法
名称 | 参数 | 描述 |
---|---|---|
set | varName(String) varValue(String) | 将具有varName名称的变量保存到存储器中,并将其值设置为 varValue。 |
get | varName(String) | 返回varName变量的值。 |
isEmpty | 检查global对象是否未定义变量。 | |
clear | 从变量存储中 删除变量varName。 | |
clearAll | 从变量存储中删除所有变量。 |
HTTP response对象
该response对象保存有关接收到的HTTP响应的信息(响应内容,标头,状态等),并提供对headers和contentType嵌套对象的访问。
responses属性
名称 | 描述 |
---|---|
body | (字符串或者对象) 响应内容,如果响应的内容类型 为application / json,则为字符串或JSON对象 。 |
headers(ResponseHeaders) | 响应报头存储对象 |
status(int) | 响应状态,例如200或404。 |
contentType (ContentType) | contentType对象,用于保存Content-Type响应标头值上的数据。 |
Headers对象
该ResponseHeaders对象用于检索有关响应头值的数据。
方法
名称 | 参数 | 描述 |
---|---|---|
valueOf | headerName (string) | 检索headerName响应头的第一个值,或者 null如果headerName响应头不存在。 |
valuesOf | headerName (string) | 检索包含headerName响应标头的所有值的数组。如果headerName响应头不存在,则返回一个空数组。 |
ContentType对象
用于保存Content-Type
响应标头值上的数据。
属性
名称 | 描述 |
---|---|
mimeType(string) | 响应的MIME类型,例如text / plain, text / xml,application / json |
charset(string) | 响应字符集的字符串表示形式,例如utf-8。 |
检查headers,body和mimeType
- ### Check response status, headers, and content-type
- GET https://httpbin.org/get
-
- > {%
- client.test("Request executed successfully", function() {
- client.assert(response.status === 200, "Response status is not 200");
- });
-
- client.test("Headers option exists", function() {
- client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response");
- });
-
- client.test("Response content-type is json", function() {
- var type = response.contentType.mimeType;
- client.assert(type === "application/json", "Expected 'application/json' but received '" + type + "'");
- });
- %}
设置及使用环境变量
在此示例中,我们将从接收到的响应中捕获一个值到环境变量中,然后将其用于后续请求中。
- POST https://httpbin.org/post
- Content-Type: application/json
-
- {
- "token": "my-secret-token"
- }
-
- //设置环境变量
- > {%
- client.global.set("auth_token", response.body.json.token);
- %}
- //使用上面定义的变量
- GET https://httpbin.org/headers
- Authorization: Bearer {{auth_token}}
- Content-Type: application/json
-
- {
- "token": "my-secret-token"
- }
-
- //设置环境变量
- > {%
- client.global.set("auth_token", response.body.json.token);
- %}
-
-
- //使用上面定义的变量
- GET https://httpbin.org/headers
- Authorization: Bearer {{auth_token}}
作者:M_Q_L_
来源:blog.csdn.net/M_Q_L_/article/
details/104895135
自从用了这款牛逼的 IDEA 插件,团队的代码写得越来越规范了!!!
Vue+SpringBoot,一款企业级的进销存管理系统,星标2.7k
- 最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
- 获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。