00:00
啊,Hello,大家好啊,今天给大家演示一下这个测试框架是怎么啊,发送和解析get请求的,然后这个get请求呢,我找了一圈啊,只找到一个比较合适的就是这个啊,腾讯天气的一个啊,大家可以打开腾讯天气的首页,然后打开这个控制台,这个network这个地方会有显示,呃,有一个接口就是这个weather common的这个接口,大家看这个接口地址啊呃,我稍微放大一下。哦,这个好像放大不了这块,呃大家可以看一下,就是这个接口,然后这这是一长串,大家不用管那个问号后面的,只需要把问号前面的这就是啊,把这个复制下来啊,这就请求到URL,然后我们看后面这些,呃请求的参数,这个south,然后这是北京市,北京市呃这个country这个地方没有,然后这个call back和这个呃是前前端用的,然后我们请求的时候经过我尝试啊这个呃参数可以不传的,呃后面这个是一个时间戳啊也呃这个时间戳是我本来以为它是一个校验值的,其实它应该是没什么多大用处的,应该就是给一个时间,然后获取一下,呃,这个当前时间点的前,呃未来几天或者说是未来七天这样的一个数据的,这个也是可以不传的,应该会有默认值啊,前面呢,就这个source weather type,还有一个。
01:38
呃,Province,还有这个city country啊,这这几个是必传的,然后我们就以腾讯的这个接口呃为例,然后讲一下这个测试框架是怎么做那个get接口请求的啊,因为呢,我们肯定拿不到腾讯的那个接口文档了,就是这个文档就是我自己看了一下,尝试了一下,做了一个啊简单的口头表述啊,应该比较简单,如果我们可以把这个呃,URL复制出来的话,我们直接复制到分地址栏里面,它其实是可以用的啊,说明这个接口啊,也没有做什么cookie,呃,应该是没有做什么cookie校验啊,经过我验证也是没有做cookie校验的啊,所以说就以这个接口为例啊,做一下那个get请求的接口测试,然后呃,回到我们代代码里面,然后我们去呃创建一个Java的,嗯。
02:38
这个内见的最外层我们放到这个里面,呃我让他继承一下,为什么要继承呢?因为呃调那个静态方法的时候,省的写那么多代码,然后我们这个一定要把这个test over,这个资源回收,这个一定要写上,因为呃单机测试的时候是没问题的,但是如果你可能涉及到一个呃服务状态下的就是它有时候需要回收,有时候不需要回收的时候一定要呃可能会有出现问题,所以说我习惯性的就把那个呃,Testover给写上去了,嗯大家看我刚复制的地址是这个,呃这就是请求的URL,这是然后我们去拼接一个接对象。
03:38
去把那个刚才几个重要的参数都给写上去,然后现在我用比较基础的。这个JA创建接的parents,然后我们第一个要put的是那个source s,然后看那个木PC,这个我们就可以先不管它,然后第二个是。
04:04
我这个英语不太好啊,然后。在这个地方。然后下面一个参数是city city下面是。CT也是北京市,然后。这什么鬼?我们再回去头看一下,呃,SOS啊,最重要的这个weather tap啊,这个里面应该是最重最最最最重要的,但是我我也不太清楚它具体的每个词都是什么意思,所以说我就把它抄过来就可以了。然后诶,这个我把它参数写上北京市,北京市西餐去,OK,然后我们现在这个呃,健身对象参数都已经放进去了,然后我们用那个我们的方法get get传进去,这是因为获取get就一种方法,呃其实就是呃两种方法啊,这鬼地方报错了啊对这个地方。
05:33
嗯,因为那个项目里面用到了一些,那用到了double的东西,好像它会单位里面会依呃有个依赖传递的问题,然后也会引入一些一个别的接这个接调对了就对了,OK,这是一个get请求啊,现在我们现在是呃请求已经呃封装完了,然后我们现在去呃,Get http get,然后它返回的是一个接对象。
06:02
然后我们现在可以把这个接听对象打印出来。现在写到这儿啊,这个get请求的,呃创建呃组装数据。发送请求、解析响应、打印响应,这一套我们都已经写完了,那我们先看一下这个测试结果。啊,这个地方可能会有点儿慢,因为这个我也不太清楚,他有时候为什么会这么慢,我看那个网页请求也是六七百毫秒那里,诶大家看看这个URL啊。你看这里面URL这个地方,呃,这个省份啊,北京市都已经呃转码成这个这个鬼鬼东西了,然后city,还有这个country也是转成这个鬼东西了,然后大家看到没有,就是这个weather tap这个地方,它有一个。呃,竖线然后被转换成这个,这个在接呃get请求里面会非常的多的会用到,呃,但是我们再看我们浏呃浏览器里面这个这个它其实是可以,你看它其实已经转过来了,但是这个北京市呢,他没转,然后我们可以呃呃记住这一点就是浏览器它会自动的帮我们转一些它,呃就是那个在HTTP里面进行的特殊字符。
07:29
嗯,你包括就刚才那个汉字,还有这些啊竖线啊,在这个地方我是怎么做的呢,我给大家看一下。在这个get接口拼接的时候有一个这个。我是统一的用这个,呃,把它的K是不管它的没没有处理K,然后是把它的value,然后那个呃,相当于转码了一下,然后再去拼接的,所以我这儿打印的URL啊,它就是一个就转之后的,那有可能跟跟这个咱们的地址栏里看到的不太一样,但其实他发的服务器是一样的,嗯,这就是一个响应,响应的好多啊。
08:16
啊,这么多。这个date就表示它的数据。这是。啊,是应该是24小时了吧。24小时啊,24小时,这么快就完了。啊,这七天吗。啊,这个我没太注意啊,这应该是。哎,这个这个24小时的这个你看这都是已经第四集了,然后第三集回到第三集,我们找下一个第二集的它的参数这个没有。这个线行。不限行。然后啊啊,这个可能就是这些信息,你看那个什么化妆的鬼样子,还有这个什么太阳镜。
09:01
啊,这种可能是提前条件给前台展示用的,我看后面的这个是什么一小时。啊,这个不管他了,我也不知道他具体什么意思,好多。啊,这还有一个啊这啊这个乱应该就是呃日太阳升起和太阳落下的时间吧,然后后面那个time是那个2020年,呃,2020年3月21日这样的,呃,然后这个是这啥,这个可能是当天的吧,这个单词好像是当天的意思。然后这个tap标题,这个就是你说安和变的情天就这个,然后它的message和这个呃sta这个这个这个200大家不要被呃不要看的跟那个HTT2的百不一样,这自定义的,这完全可以自己改,然后这个message OK,然后我们这个现在这个就是盖的请求的,呃创建组装,数据发送,解析响应都已经做完了,完了之后多完了之后那个我们现在可以,呃用我们上一期讲到的那个东西,嗯,从监里面拿数据校验,然后做一些别的事情,然后呢,我们首先可以get in它。
10:35
这个。等不等于200,好久不用这个,不用这个东西有点啊,算了就不写断言,反正我自己我个人是不怎么喜欢写断言的,而且也很少写断言,呃,加法的断言更是。
11:16
然后。我们这样吧。状态。可以,我们现在校验一下这个响应状态码,我就获取一下,然后我们下面呢,啊,可以验证那个,呃,响应信息嘛,响应信息这个就是get。这个message这个我们都拿到了,然后这里就不写断言了,太难了,然后我们先看一下结果啊,比如说我一般就是肯定是除了HTTP扣的呃,框架会自动校验之外,呃,这个业务的扣的都需要自己去校验的。
12:17
看吧,就是有点慢。OK,大家看好,前面有一个超时异常啊,前期发生错误烧K的超时异常。然后。还有一些这些。乱七八糟的异常,然后重新重试了,然后啊调,然后重试完了,结果是响应的时间是13秒多一点,相近14秒啊,所以说就是大家在呃,特别是在做性能测试的时候,这个re出的时间一定要。呃,那个呃呃,稍微注意,一定要注意一下,因为那个我我看了最近,呃,前两天看那个杰美特。
13:08
他们是就是就不。所以说他请求,比如你超时时间是十秒,请求不到十秒直接就报错了,你看我这里面虽然说报错,但是这个错误已经被我捕捉到了,然后我还会对他进行re return,然后但他的时间是把从是从第一次请求到。得到响应,这个时间是累计的,所以说在使用框架做性能测试的时候,这个一定要注意,有可能是呃,比如说服务端的正常响应时间在呃两秒,你的超时时间是一秒,你请求发过去之后。等了一秒之后,服务端还没有给你响应,然后你又发了一次请求,所以说然后但是你本地计时,计时的话,会把两次请求的时间算作一个,但是服务端呃已经得到了两个请求,这样这个呃大家稍微记一下,这个很重要的,然后啊,大家比如说嗯啊就获取他的吧,Data,因为他所有的你看一第一级的第一级的信息,然后就希望贝是一个,后面跟的是一个大括号嘛,就是就是节省信息,等下我看一下这个这个响应里面好像是没有没有还没有数主没有响应数度,它全是呃全是接神。
14:34
啊是没有数的,是全是全是接省,然后我们看看它的K是什么呢?就是对的,然后我们可以继续写,然后get介绍,然后再获取它,然后如果把这个当做一个。
15:03
然后就获取到,呃,第一个就是这个对象里面的信息了,嗯,比如说我们,嗯,我们获取一个最高气温吧,可能是这个01234,我觉得会不会代表星期天啊最高气温。啊,我们来遍历一下这个就是啊,便利的话比较简,呃简单一点啊,就就就给大家写负循环了。点啊,这个地方你看大家他是01231直到七啊。一直到七,嗯,如果一般来说便利接肾的话,呃呃,不不会采用这种获循环形式,但是我这个接是比较例外嘛,然后我就啊可可以这么说吧,呃,算了,还是用,还是这正经,正经一点就是。
16:41
然后我们破解到K之后,然后就点get,因为它里面还是一个减守进get,然后点get,你看虽然说他是用引号引起来的,我们也可以用get引泰泰这个获取它最高气温。
17:13
嗯,我看有没有时间啊,有个time time啊,这个可能是或当周的,然后看的时间啊,最高气温。然后get straight。我们就弄完了,然后我们再用那个把它输出出来就说。呃,Time,这个是时间,然后加上。
18:05
最高气温。加3X等于二。这样就OK了,我们再看一下打印结果。啊诶,然后我们就看到了这个获取他的状态码啊,这些乱七八糟的信息啊,这都是前面的接是然后后面这是我们打印的,从19号到26号,然后最高气温多少多少摄十度,最高气温多少多少40度,然后就这样就完了,然后如果去做校验的话,呃,我们比如说我做什么校验的话,嗯,就是现在校验,校验这个是不是,呃,当然他规定200就是成功的,就是OK200,然后这个是OK,然后嗯,比如说他这个时间是呃一周的吧,然后你再获取他这个时间,呃这里面这个什么FOCUS24小时,这个时间是不是当当前时间所在周的周一到周日的时间,然后呃,这些字段全部全呢,呃大家可以用那个,呃杰森杰森那个K可以去校验一下。
19:33
然后后面的看一看什么业务吧,呃,比如说这这些这些其实啊这没有文档还是挺麻烦的,呃这个我这个风力啊这些信息都可以去校验,就是看你嗯这个业务,呃这个接口的呃业务是什么样子的,就在功能验证点为基础以后,然后再去做一些拓展的验证,然后这些是业务验证了,还有一个呃比较呃非就是非常非常基础的就是参数验证,嗯由于这个我看,因为那个公众号只能发30分钟以内的视频,挺尴尬的,然后我给大家呃这个地方就嗯不管了,然后给大家演示一下,就是我怎么做那个呃参数验证。
20:25
嗯,首先嗯,我需要把这个东西给注释掉,然后呢,哎,我就我只我只要验证它这个状态码就可以了,假如说我比如说我要验证它这个sources啊,除了PC可能有安卓iOS,然后给他下传一个,比如说我用力就是传一个不存在的这个SS类型,如果他后面有啊,不是他如果他服务端有校验的话。啊,这个就是500,哎,这个对的就是一个。呃,非法的不合适的,非法的那个。
21:02
来源,然后这就就传完了,然后呃,比如说我我校验这个参数不传。点错了啊。点不传的话是什么结果?还是500。诶,诶,那个。还是一个非法的S传,他SS里面是空,他会把你的传的那个,呃,那个参数会那个传再返给你。然后我们回到原来的。啊PC,然后我们看一下,嗯,比如说嗯,这个我tap我tap这个是其实是挺挺挺挺那个什么的,跟那个应该是嗯,因为我不太不太懂他这几个参数里面具体什么意思啊,就先不不不扯它了,然后就是比如说我在CTRL里面,我西城,我看看他西城跟西城区有没有什么,它是必须得传区呢,还是不不用传这个区这个字呢?我们可以验证一下,比如说验证一下这个功能啊。
22:05
证明它是,呃,不传也是可以的,呃,那我们就传一个C,看它是不是有匹配的功能啊,因为北京一共就那么多区,西开头的也不多啊,说明他没有啊。这样啊,这就些比较简单的参数验证,呃,刚才呃,如果到代码里面的话,去做的是那个业务验证,然后首先要做的就是参数验证,参数验证OK之后,然后我们再去做业务验证,业务验证之后啊,功能测试差不多就这么多了,然后再根据我们的呃,参数验证还有功能验证里面比较有呃。选一些用例吧,然后尽量的以更少的用例覆盖更大的测试范围,这么一个,呃,指导理论指导,然后去选一些功能用例,然后再去写那个啊,测试脚本啊,完成自动化啊,性能的话以后再说,我先把功能还有自动化这一块的使用给讲完,然后再去讲这个,呃,性能测试框架是怎么使用的,好OK啊,今天的视频就讲到这里了。
23:11
啊,欢迎大家。嗯,多多转发,关注我的公众号。
我来说两句