00:00
嗯,哈喽,大家好,那个前两期的视频,我演示了一下怎么用这个测试框架去做get和POS的一些简单的接口测试,呃,然后呢,今天我们讲一下,那分享一下那个,呃,如何处理请求,还有那个响应的head,还有就是着重的会说一下情客里面的cookie啊首先呢啊,这个是我刚才演示的这个代码,就是这个是我们之前去做的一个。呃,Post请求的一个DEMO啊,我们就以这个DEMO为基础,去讲一下这个框架里面是如何处理尔,然后我们看这个啊,Print header这个方法是做什么的呢?大家可以从这个呃控制台能看出来。就request header respond header就是把请求嗯和响应的header信息打印出来的,嗯,在这里面呢,我们可以看它一下,你看它就会把he key设设置为true he key是在。
01:11
在这里,在这个解析响应的时候,会这里会做一个判断啊,如果是出的话,然后就会把这个海带里面打印出来,然后在解析完,然后计算完响应时间之后,然后再会把相应的海带全都打印出来。然后我们回过来,这个是一次性的啊,就是它只打印下一次的请求的和响应的header和response。呃,Request和respond header。嗯,这然后如果是你接继续请求的话,它其实是不会打印的,我们给再演示一下,这个方法主要用来调试用的啊,一般就是时候传的值,因为可能嗯,我们在写项目的时候,Head或者cookie是不会说啊,我我我要传一个什么样的cookie啊,我要传一个什么header,然后就把它放进去,一般都不会这样的,一般有用的都是通过一些逻辑,比如说嗯,一般的登录的token啊,全部都是用登录接口会自动返回回来set cookie这个字段,然后我们拿到这个字段之后会自动处理的,所以说不会有显示的,把呃,一个值放到cook里面,除非例子呃非就是短期项目,就是根本就不当做一个真正的自动化项目去做的时候才会这么做,你看我们打印了一次海完了之后。
02:50
只有第一个的海带会不会打印,然后我们看这里面,这里面是什么,呃这个什么东西呢?因为我们这是呃传的是那个那个那个表单形式的,所以说我那个框架里面会把表单的head带会放进去,呃还有这个user这个哦一下好,这个是默认的,这个我这个项目默认的通常是用这个,嗯呃主要原因是呃这个呃有有些的接口,有些的呃服务的接口,它需要一个什么呃用户的标记,然后有些就不要,但是有这个会好一点,然后最主要的还有一个原因就是啊这个值啊就呃方便有时候去呃做统计服务商去做统计的时候可能会用到U。
03:50
成这个值,然后嗯在这个地方只有呃,我遇到的只有一种情况,就是在呃有些是APP端上发的请求的话,因为agent他必须是OK,呃好像是okttp,然后这个嗯,这是那个,然后这是那个,可能可能这个一般是比较通用的,然后呢,嗯再做那个呃接口测试,网页端的接口测试的话,它有可能会要求一个好像是axl request的一个head。
04:34
这个到时候大家可以根据不同的项目,然后去设置每个项目公共的header,然后包括这个UA的,如果是你是呃端上的项目的话,我们就需要把端上项目的那个KTTP的header扩到这里面,这里面有一个小小的问题,就是说header它本身它是。嗯,我们我们可以看到之前那个展示过的一个请求,网页端的请求,它黑带是一行一行的,呃,每一行是以KY6的形式去展示数据的,完了之后呢,如果呃,我们head里面的值是重复的啊,比如说我呃不是带里面值重复的,就是我黑带里面有两行,两行数据是K是一样的,它展示的时候是按照我们如果是手动呃艾特进去的话,它是按顺序,就是第一次先展示你先艾特好的,但是在请求发送到服务端,服务端解析的时候啊,据我查资料啊,这个是不确定的。
05:42
就什么意思呢,就是说呃,你比如说你黑带里面传了一个呃case,呃,Case name等于123,然后第二个你又传了一个内等于1234。这个时候呢,服务端收到如需要解析这个name这个字段的黑段的话,它有可能会解析到123,也有可能会解析到1234,我查到资料它是呃,不是说有规律的,是随机的,所以说这在这个时候大家如果是呃做一些切换场景的话,比如说呃,如果呃呃怎么说呢?就是说如果你的黑带要切换成另外一个黑ER的话,最好先把这个header清除掉,或者说把这个header里面某一个具体的K清除掉,然后我们再看那个respond。
06:35
还啊这个里面,呃,其实没没多大这个接口,这里面其实没多大用处啊,你看哎就这个啊,这个这个有有的有的是服务,有些框架,它是必须要求request的,有这个的啊,然后这面这后面是一些啊,大家可以去看那个呃图解HTTP协议那本书啊,非常非常非常推荐这本书,这里面就是可以看到这是什么啊,可允许的控制允许的,这是所有的允许,这是可接受的控制和卖方法。
07:12
呃,然后这是这些方法,然后这是呃,最大keep alive的时间,然后这是。需要这些黑带这个啊,不知道为什么这个没有,呃,这个接口没有做这个东西的这个黑带的校验,然后我们可以搜一下,我记得我写过这个公公用的啊,就在这里面这个海胆。其实就是这个l http request,就差就差一个这个就可以了,然后这些是一些check data,这些东西其实都不用太在意,我们看如我如何去把这一个,呃,比如说我要在这个request,这个HTDB,呃,Po的这个请求里面,我要添加一个header,我怎么去添加呢?就http post at header。
08:07
对吧,然后我们刚才是有一个,呃,好,应该是HTTP使用。C contest第二。看谁的位,诶大家看一下这个海带,这个海带是我呃定义好的。然后调用的是这个get的方法。这是一个new basic,呃,Basic header啊,就这么用的,这个比cookie稍微简单一点啊,就是直接去,大家可以直接调用到海方法就可以了。呃,这是加了一个,然后我如果还想再加一个我自定义的post at header,然后get header,比如说呃,Token吧,To token不太合适,内幕,内幕等于开始了,哎,这样,然后我我是这是我家的自定义的孩子,然后我们看一下,打印一下。
09:15
OK,我们不请求第二个,先把第二个注释掉,把这个放大。嗯,大家看这个地方就是。这个还是我们传参的类型,这是这个,哎,我们这这就有了,有了这个了。呃,这个这个海带,然后name等于这个fan,然后后面的还是那些公共的海带,呃,这就是如何向呃一个请求里面去添加一个head带。呃,如果你的公共参数里面,嗯,呃不是你一个项目里面有公共的head,而且是必传的,而且是指定的,就像呃,就像这个request with,还有这个user agent,还有那个keep connection,这个如果都是指定的话,你可以在呃自己项目的自定义的过程中,呃自定义的一些配置文件里面把这些写死。
10:16
写或者做成可配置的,然后在这个在这个地方,然后把呃,比如比如说你有一个header的list,就可以把那个list里面head全都放到这里面,全都放到这个request每一个request里面,因为你的请求方法也是封装好,这样就避免呃,就不用再每呃就用那种显示的方式去把这些值全部添加到head里面,封装一次之后,所有的方法,只要所有的请求,只要调我项目封装好的请求方法都会加上这么一些head胆。包括就是用户的验证的啊,等接下来我们讲那个,呃,做接口自动化项目的时候,我再跟大家分享一下,我就是我们项目里面我是怎么操作这个黑带的。
11:07
11分,然后我们再看一下cookie啊,之前也讲过cookie,其实它解释head里面的。一个呃,一个K也是以k value形式的,但它那个value呢有些特殊,嗯,Value它里面里面的数据值,嗯按照呃,ATP cook那个对象的值的话,它有很多属性,但是其实我们用到的测试来说,用到的呃,Cook属性就是K。因为后面那些属性只是啊,有些过期时间,有些域名啊,还有一些,呃,就是显示的那个读面啊什么的,乱七八糟的,之前给大家讲过就是呃对测试来说意义不大,呃可以说就毫无用处,它主要是为了呃域放在浏览器,比如说我向某一个域名发送一个请求,我看这个域名下有没有cookie,它的呃,Cookie的到期时间是不是到,符不符合那个一定的规则,我需不需要在发信息的时候把这个cookie给带上去,是这样的,然后我们在浏览器里面实际去看到cookie的话,其实它就是K,呃,K是COOKIEY6,是一大堆,呃,也是KY6形式的数据,然后我给大家演示一下这个框架里面是怎么做那个k value6的,呃,不是那个cookie的。呃首先说一下这个cookie我设置,呃,设置的就是忽略所有的自动处理cookie的功能,完全的手动处理,然后呃,我们还是。
12:38
用这个方法。嗯,这个方法的话,有一个get cookie get cookie啊,大家看一下这个方法,这个方法get cookie返回的是一个。啊,就是我,呃,因为cookie呃的value数据,它本身也是一个k value的形式,但是它不同的用不同的形式去把这些数据组装起来,变成一个对,可以理解为string,然后这这个里面是我啊大家看一下这个是组装,嗯,把这个Jason的数据组装成header的value,呃,Header里面cookie的value的这个方法,所以说它获取到了呃返回的对象就是一个header,嗯,然后呢,我们需要创建一个接身对象,然后当做我们的cookie,然后往里面cookie里面呃放它put一些值,说name还用name台。
13:44
然后检查完了,然后。我们在这里面去放一些pwd word p word,然后A级。22个。然后就像这样,然后我们把这个cookie放到这个方法里面,然后返回回来是一个head,然后我们的http post的ADD header,然后把这个cookie放进去啊就可以了,这样的话我们就把这个呃,这个cookie这三个KY6值放到海里面,然后我们再发送这个请求。
14:25
我看一下那个打印出来的结果,打印出来的结果就这个啊在这啊,Cookie等于得得得NN啊得等得等啊拼到这完事,嗯,在我们那个。那个那个呃,看浏览器里面的,就你数据的时候,这它这里都在每个KY6我找一个试试。嗯,临时的。我看一下他有没有裤腿。
15:02
Head。啊,这里面还没有cookie。嗯,要不就来知乎吧,知乎里面肯定是有福利的,随便找一个借口。啊,大家看这个request里面啊,字好多啊,Cookie字在哪里。因为他你看他这个U热agent就是在这,呃,大家可能啊,这个控制台没法放大。诶,这里面没有cookie。我看有个个人中心呢。啊,大家看一下它会有这这这会有一个set图片。我看看清cookie啊,就在这里面,我把它复制出来。
16:07
嗯,复制出来,大家看一下它的cookie在浏览器控制台打印出来的cookie是什么样子的。大家看它复制出来,它也是,这是他的K,这是他的video,然后。K value,但是大家请注意一下,它每个k value中间会有,呃,后面会跟一个空格。大家注意到没有,这会儿有个空格。所有的这地方都会有一个空格。他。这都会有个空格啊,所以如果是有,呃呃,我们直接复制浏览器的某些库,然后当着呃,比如说我们复制这些,呃,复制这个嗯。嗯,因为我们可能有些公共的铺片会比较像这种,就是铺片特别多,然后比较麻烦的时候,我们就会用直接去浏览器啊,或者是抓包啊,去获取这些cookie,然后我们先把这个cookie注射掉。
17:18
刚才我试过啊,就在这里。然后如果是这种的话,我们怎么办呢?我们就直接在那个直接在post里面把这条直接填进去就可以,哎,这样就可以了,大家其实没必要太注意这个呃,Value的形式,因为它这个弄完之后,它只是一种就是把啊cook里面k value那种形式的数据拼成一个字符串的一种格式,其这空格是不怎么影响的,然后如果是你要把它转成接再去呃在接S里面再去put一些东西的话,大家一定大家要注意这个空格,先要把这个空格干掉。
18:21
然后再用它这个呃分号分隔符,然后去取里面的KPI6,再去呃修改或者添加这样的操作,如果是直接用的话,我们就直接用这个就可以了,直接艾特head里,然后我们看一下结果。嗯,没点上。大家看一下这个。黑带啊,这这一下子好多啊,有点多了cookie,然后cookie,然后一到这儿全都他的cookie内容,这个cookie就传过去了,然后这是几种我们用到的一些传cookie的方式。
19:11
然后。刚才我们看到一个。它会有一个set cookie嘛,这个呃,暂时我没太呃set cookie好像不是这个接口啊。不啊,算了,不管它了,嗯,Set cookie是什么意思呢?就是一般是响应的截,响应的那个头会有set cookie,而且它是可以重复出现的,就是说我一般就登录接头吧,或者访问第一次访问某个呃域名下的某些接口或者地址的时候,它都会set一个cookie过来,然后set cookie就告诉浏览器要把它当做cookie存到自己的cookie里面,然后它那个cookie也包括了呃,Name,呃,Name value,然后和那个do面,然后那个a time这些乱七八糟的参数,然后我的框架里面呢,嗯,因为我没有找到相应的接口,除了我们自己项目的S库接口之外,我没有找到啊,所以说我就给看一给大家看一下,再重新呃讲一下我们那个我的框架里面是怎么做的,就是。
20:27
在解析响应的过时候呢,我在有一个after,嗯在这里面,然后大家看我在这里面去获取到所有的呃这个kid就set cooked这个K所有的value值啊value值呢,嗯,它呃也是以实形式的,但是它呃可以呃映射到呃如果是用别的解析方式的话,它应该是可以拿到一个呃cookie对象,就是拿到呃那里面的cookie里面有cookie对象,Cookie对象就是也是各种属性都有的,这里面我是直接拿它的string字符串啊拼出来呃拼出去不是或是拼出来就是把它那个K和value拿出来,然后put到一个cookie里面,呃接S对象里面,然后用这个接对象去存cookie值,下载cookie值。
21:26
然后大家看我爸在接任对象返回回来,然后诶。After之后啊,这就set cookie,然后在在这个地方里面,你看啊这个cookie。如果这个返回对象不是空的,然后我就帮你把我的,大家请注意,这个就是我最终返回的健身对象。就是解析响应的健身对象,这个接身对象里面我会放一个K为cookie的,然后value是一个接身对象的这么一个数据,我就会把它放到里面,然后我在嗯写项目的时候,我就会处理一下,就接口响应里面这个接身,嗯对象里面如果有。
22:16
呃K等于cookie的话,我就把它后面的呃跟的呃节省对象的数据当做呃cookie然后记录到当前项目里面去,这个都是需要程序自动处理的,这样的话我们就省去了,嗯就不用,根本就不用管什么用户校验,什么乱七八糟的,就只一旦用户呃请求的时候,用户不在不登录,然后就自动把登录自动自动登录完之后就自动把cookie当做呃。那个当前用户对象的一个属性,然后请求的时候,把用户对象里面的属性的cookie,然后带上去就OK了,然后这这就是把这个cookie拿到了,然后一般我们去怎么去,一般来说我们只是对呃请求对象的head和cookie进行操作,然后响应的话,呃一般也都是呃自动处理,只有那个set cookie。
23:18
呃,会自动处理,然后别的也用不到啊,很从来没有遇到过啊,还要处理嗯响应的黑里面的内容的啊,这这个大家可以呃记一下,其实所以说就是这是讲也只是嗯,大多数时间还是讲那个有快速的cook处理,然后。呃,Respond head或cookie呢?啊,只有一个set cookie需要我们注意的,别的就没什么东西了。然后啊,今天的分享就到这里了,比较短啊,欢迎大家关注自己的,关注我的公众号啊。
24:02
点,再看转发。
我来说两句