00:01
哈喽,大家好,今天呢,给大家分享一个idea自带的非常实用的工具,而且呢,很多人都不知道有这么一款神奇的存在,它就是idea http clint。那么它是用来干嘛的呢?简单来讲,它就是一个调试工具,专门用来测试我们的接口的。那相信大家都应该用过postman这个工具,对不对?那么idea http它的功能呢,和postman是一样的,但是如果说你真的用过idea httplin之后,那postman你就可以卸载了,因为确实idea http clint它更加好用。为什么这么说呢?首先第一点啊,Postman它所有的功能呢,Idea http口令都有,比如说我们的控制台,包括这个历史记录这些功能它都是有的,第二一点的话呢,是这个。Idea http,它可以支持多环境配置,在测试接口的时候可以非常方便的去切换不同的环境。第三一点呢,是idea htplin,它的请求配置呢,可以用文件来描述啊,方便我们团队成员之间的一个共享啊,第四点就是我们开发是不是在点里边去进行的,如果说我们调试的话,也在同一个工具里边去进行,是不是就更加方便了,对吧?所以呢,基于以上几点啊,强烈推荐大家。
01:17
使用这个idea http clin,那接下来就带大家一起来学习如何去使用idea htv c,首先我们来看这个工具它的入口在哪。打开idea界面,然后选择这个工具。Tos最下面有一个HTP,然后我们点击第一个叫test rest for web service。啊,因为我们这个接口都是基于rest的啊,所以说打开之后我们可以看到这个界面呢,跟postman是不是很像。对吧,你看波斯曼这边是他的请求类型,这边是URL啊,这边是它的啊,参数信息等等啊,然后这边的话是不是也是一样的,这边是它的请求的类型,这边是它的URL,但是它这个URL有个特点什么呢?它是分成两段,前面的话呢,是它的IP加端口,后面是它的UR,对吧?拼起来之后是urll,然后破速慢里边,这边是直接拼到一起的,这边就等于你拆开了。
02:09
啊,这么一个结构,然后这边是它的请求,这边是cookies,包括response,包括response header,是不是这些东西都有啊,然后这边的话,如果说你要给请求加一些头设置的话呢,是不是在这里去添加就可以了,如果说要加参数,在这个request perters里边去添加啊,如果说你是Jason格式数据就在request body里边去添加,对不对?这样一个基本的界面啊,基本上跟跟这个posman很像,但是呢,它是不是看起来要比posman更加简洁一些啊。对不对,更加简洁的一个操作啊好。那接下来的话,我们就来测试一个接口吧,那个接口的话,我们这边已经写好了,对吧,我们来测一下啊啊,我们先从浏览器去测。对不对,你看这个接口是可以调通的,然后的话,如果说我们要在Co特曼里边去测,怎么测呢?把这个东西复制过来。给这一粘贴,然后请求类型改成get走你对不对,这边就可以看到结果了。
03:04
啊,然后在我们这个工具里边怎么预测呢?这边好,首先还是选择get请求啊,然后这边的话,我们把这个URL复制过来啊,然后其他东西都不用去点,直接点击这个运行按钮。对不对,诶大家可以看到这个结果就出来了,同时它会自动的把这个uil给它拆分,拆成两部分,前半部分呢是IP加端口,后半部分呢是它的UI,这两个一拼是不是就完整的URL,对不对,但是我们可以看到这边有个缺点是什么呢?就是它的这个结果呢,它不会做一个格式化的处理,它是直接一行一行去输出的啊,它不像这样可以做一个结构化的一个处理。对不对啊,这是它一个缺点,OK。啊,它的使用是不是非常简单呀,对不对?嗯,那接下来的话,我们再来看一个带参数的一个调用啊,如果要传参数怎么办呢?啊,我们现在这个参数呢,都是,呃,我们这个接口的话,都是基于这个rest for的啊,所以说我们传参的话也是这样去传的。我要找一个啊。
04:01
咱们来测这个例子的方法啊,然后它的URL的话呢,是这边是order改掉。改掉啊,然后list list的话,这边我们要传三个参数,看到没有一个bear ID,一个配置,一个set,这个是一个分页的一个操作,所以说我首先呢,给它复制一个它的。All the。复制一个它的ID复制过来放到这,OK,然后分页,比如说第一页我们来取三条记录吧,对吧,这样就写啊,这后面这三个都是参数,对应的是我们这个接口。对应咱们这个接口OK,直接运行对吧,这边我们可以看到结果,这个数据咱们就查出来了,对不对,这是一个带参数的啊。那如果说我们要传一个对象怎么办呢?我要传一个摘测对象,怎么去传呢?对,比如我们再来测一个接口啊,来这边这边有一个商品的一个添加啊,我们来调这个方法I的方法,OK,这边怎么测呢?首先你把它类型改成post,因为我们这边是一个post mapping对不对,然后这边改掉啊,它的端口的话呢,是。
05:04
8081端口好,嗯,然后这边的话呢,是。Cell product。把这个东西复制过来。Sell product把这边又换。Set product完了之后,最后呢,是一个I的方法,对对,这样去写啊好,那接下来这个参数怎么去传呢,对不对,他现在参数呢,是一个Jason格式的数据,我们说过Jason格式数据我们就直接在这儿。在这个request body里边去写对不对,我们这边的话empty是空啊,然后这边我们现在要写,写的话呢,把这个选中,然后呢,点击右边这个按钮,它会自动弹一个对话框出来,你就把你的Jason格式数据给他粘到这就OK了啊,Jason数据我们来复制一个啊,这是我的一个Jason数据啊好。我先把数据库这边。这是之前的测试数据文件,给它清掉啊。给它清掉,OK,把它复制过来,复制过来之后。粘过去。
06:01
点就OK,这样的话呢,这个Jason数据就粘进去了,粘进去之后的话,我们这边直接来运行,首先来检查一下post没问题,URL没问题,然后呢,这个数据是OK的啊没问题,点击测试走你诶这个时候我们会发现他报一个错误,什么错误呢?类型不匹配,它不支持这种类型,对吧?这是为什么呢?因为我们现在传的是这个Jason格式参数,所以Jason格式参数的话,你就必须在这个heads里边去添加一个配置才可以。添加一个。Content type。它的类型呢,是application。Jason啊,把这个东西加上去之后,它就能识别这个Jason格式了,要不然的话呢,它传不过去啊,这时候再来点击OK,我们看到是不是已经成功了,成功之后的话,我们数据库里边验证一下啊,来刷新。看到没有,这个最新的数据是不是已经加进去了。对吧,那这样的话呢,我们就实现了一个。啊,格式参数的一个传递,OK。
07:01
那么我们说过HTTP可令呢,它支持将测试代码直接写到文件里边啊,这是它非常好用的一个特性,这样的话团团队协作开发的时候就可以更加方便了,同时呢,这个idea尔也会自动保存我们的测试记录,并且呢把它的结果记录下来,就是咱们刚才在这个呃工具当中去进行各种测试,Idea它就已经把它记录下来,记录到一个文件里边了,那这个文件在哪呢?这个文件在这啊,大家可以打开看一下,这边有一个点idea这样一个文件夹,打开之后呢,它里边有一个叫http requests。这么一个文件夹打开之后,诶,大家可以看到这里边有一些文件对吧?上面的话呢,是四个Jason格式的Jason后缀的一个文件,这里边存的都是数据,这些数据啥意思呢?这些数据就是我们刚才测试的数据的一个测试接口调用的一个结果,它全部存到这个JS文件里边了啊然后的话,我们刚才这个测试接口这些记录在哪呢?它是在这儿,在这个后缀是HTTP这个文件里边打开看一下。对吧,你可以看到。
08:01
你看到这里边儿是不是我们发了各种请求,这是我们刚才。它是倒序排列的啊,这是我们刚才最后一次发那个请求,咱们是不是要给它添加一个数据,然后给它设置一个content type,这个是咱们的参数,对不对,这是URL,这是类型,这是参数,然后这个啥呢?这个就是结果,结果它就存到了这个文件里边。对吧,存到这个文件里边,你对应去找一下嘛,这个文件打开,你看是不是就最终的一个结果,就是咱们刚才在这儿看到结果。明白意思吧,就等于哎,它是把咱们的这个它是一一对应的啊,它是把咱们刚才这个操作全部用文件记录下来了,请求类型post post,然后URL这两个一组合,是不是就它。对吧,然后我们这边还有什么呢?还有header里边呢,去添加了一个content type是不是在这去显示的啊,然后这个是我们的参数,参数的话是不是在咱们那个啊request body边显示的对不对,然后的话呢,结果看。这两个啊,这两个是不是对应这。以及这是不是对应这儿,然后结果是不是在response这里边,对吧,那结果怎么办呢?它结果是记录到这个JS文件里边,你看这两个是不是对应起来了。
09:06
明白意思吧,所以说就是通过这种方式,他会把我们刚才这个测试的这个整个记录全部给你记下来啊,然后放到这个文件里边,放到这个文件里边,然后他的结果放在一个Jason文件里边,Jason是独立的,然后呢,这个呃,请求的记录呢,它是放在一个文件里边的。对吧。同时的话,我们这些记录是可以直接去运行的啊,比如咱们再来运行一个测试来点击啊,直接在这儿点击运行。哎,这边是不是就运行成功了,这边数据库已刷新。是不是又加了一个过来了,对不对,可以直接去运行的啊,比如说咱们在测试一个查询吧。有这个查询来点击。这边是不是可以看到结果,同时我们刚才这个记录啊,刚才做这个操作,它同样会再一次被记录到这个HTP文件当中,同样的它的结果也会在生成一个新的这样一个Jason文件,我们就可以看到。对吧,这是新的结果啊,所以说你注意注意看这边,比如说我们再来运行一次,你注意看啊,这边只要运行这边就会多一个Jason文件的来。
10:08
看到秒数多了一个,同时它上面是不是又把这个东西记录下来了,就每一次测试它都会记录一个啊,他都会把最新的一次测试记录到我们这个头部。对吧,就这样一种方式啊。那这个呢,就是我们所说的,它会把呃调试接口的工作文件化,像运行测后脚本一样,直接对接口进行测试,这些呢是A点自动生成的,同样的话,我们也可以自定义自己去生成这个文件。怎么生种呢?来这边的话,我们比如说在这儿啊,新建一个文件夹,这个文件夹没有要求名字可以自定义,比如我就叫test。后面叫test。好,现在的话我们就来手动写一个接口调试啊,呃,怎么去写呢,我们在这儿呢,新建一个文件,这个文件它的文件名可以自定义,比如说咱们叫。Arrest a。
11:00
点j.HTP啊,它这个后缀必须是HTTP类型的啊。然后的话,你就可以把你要测试的这个接口的一些信息写到这里边儿啊,更加方便,更加灵活啊。比如说咱们先来测一个接口吧,测一个get请求对吧,它这边是有代码提示的啊,Http lo host,比如说呃,8081。Sell product。List。OK,现在的话,这就是一个是不是一个URL对不对,直接点击运行啊,怎么运行呢?它这边是左边有一个绿色箭头点击运行,哎,这边咱们是不是就看到结果了。对不对,哎,他就可以看到结果了,然后的话,这个结果,哎,他是不是同样会被记录到我们这个。这个文件里边了,对不对,同样你刚才这次测试它也会被记录到这个log里边了,对吧,咱们可以看到啊,所以说你就可以把这个文件呢,单独给他拿出去,然后写你自己的一些的一些测试接口的一些调用了啊。
12:05
那同时的话呢,如果说我要在这边测很多个怎么办呢?多个测试我们用三个井号去分割啊,跟这边是一样的,你看它用三个井号去分割的啊,然后你这边写三个井号之后再另起一行就可以写下一次测试了,比如说咱们再来测一个post OK。HD。测测一个添加的一个操作啊,比如说叫8081。ADDOK,好,我就来测试一个添加商品一个操作啊,还是给这个数据库里边再添加一个测试数据,OK,那接下来的话,我们把那个数据呢,给它复制过来。参数嘛,把这个东西直接复制。来给这一粘就行了,对不对,给这一张啊,这是参数,现在我们直接来运行。对吧,他是不是又报了一个这个不支持的一个错误类型,不支持的一个错误,这个是不是跟咱们刚才这边是一样的,你是不是需要去添加一个count type吧,对不对,必须加这么一个东西,怎么加呢?直接在这去写content type等于application Jason OK这样写,写完之后直接来运行。
13:11
处理。看到没有,是不是添加成功了,这边一刷新。对吧,这个数据是不是就加进来了。对不对啊,这样的话呢。我们这个,呃,Jason格式数据是不是也可以传了。对吧,同时呢,我们说HTP它也可以支持多环境的一个测试,并且用占位符的方式来完成接口的调,呃,接口的调试非常方便,什么意思呢?就比如说咱们现在有两个服务啊,有两个微服务。比如这是一个,然后再来一个。对吧,我们可以看到现在咱们是不是有两个接口都可以去去调,一个叫order的,一个叫product,这两个都可以去调,然后我们最后这个UI是不是都是list。
14:06
对不对,这个都是例子的,那既然说最后这两个一样,那么前面这东西是不是我们就可以给他公共的部分给他提出来了啊,这也不能叫公共,公共部分就是前面这个这些东西咱们可以提出来,就只留最后这个list。明白意思吧,只留最后这个list,这样的话呢,我们就属于是一个多环境的配置,就是我有可能去测这个product里边list,也有可能去测order里边list,那这边我们怎么去写呢?咱们就可以给他配一个多环境来我这边写一下。我们在这个test里边,我们再来创建一个文件,这个文件的话呢,叫做HTTP。点对吧,它一个环境在这里边,我们就可以定义两个环境,比如说一个叫product。然后product里边呢,我们来定义它的一个叫base URL就是它的一个基础的一个接口啊,基础接口,基础的URL就是这个东西。
15:03
把这个东西复制过来。OK,再来一个。再来一个base ul。同样的,它是一个基础的一个UI。前面这东西复制过来OK。对不对,这样的话呢,是不是就等于把这个东西提出来了,提出来之后。我们在测试的时候就可以直接去访问这个多环境里边这些配置了来。来get请求对吧,这边咱们怎么访问呢?啊,咱们就可以用障位符用这个base URL对吧,直接去读这个base URL就可以了,然后现在就Basel有两个,一个是product,一个是order的,对不对,然后咱们给它拼一下。拼一个list啊好对不对,这样去拼,现在的话咱们来直接运行对吧,大家看啊,这是我们点运行这边是不是弹出三个选项啊,一个就是运行你这边写的base ul,另外一个是不是运行product,还有一个是运行order,对不对,因为我们现在是不是写了一个配置文件,然后这个配置文件里边是不是有两个base URL,一个是product,一个是order的。
16:16
对不对,那么你这边在运行的时候就可以直接选择啊,你到底这个base URL,它指的是order这个还是order还是product的这个随便去选,比如说我们要执行order,你就直接点第一个。对吧,这边我们是不是可以看到这个order这个接口就被调用了,然后你看这个URL是不是product。啊,这边是普的这个接口就被调用了,对不对,这边可以看到啊,然后如果说你要测order的话呢,直接点第二个点order,哎,这边我们测的就是order这个接口。看到没有,这边是变成order了啊,所以说这个的话呢,就是它的一个多环境的配置,我们把一些环境呢给它全部配好,接下来我们在测试的时候,只需要通过站位服的方式就可以来选择到底要执行哪个环境,这样的话调试起来就非常方便啊,这样就可以实现一套代码多环境配置了,方非常的方便,那以上呢,就是idea http一个基本使用啊,感谢大家的观看。
我来说两句