面试题:你是如何做接口测试的
一般会考虑三个方面,分别是,请求,响应,数据库
请求的部分,一般需要根据接口文档,将url,参数,请求方式,如果有的话还要添加cookie或header 这些内容填写到postman中,然后模拟请求的发送
响应的部分,一般会将发送请求得到的返回内容来和接口文档进行对比。比如说,这个接口状态码是不是接口文档写的200,比如这个返回值的json格式,是不是和接口文档一致
还有就是数据的部分,比如我们这个xx商城的项目,我要调用下单的接口,理论上来讲,数据库也应该多一条数据。此时,我会使用mysql语句,去数据库查一下是不是增加了一条数据。
面试题:你是如何做接口的关联的(接口依赖)
它的核心是取到第一个接口返回值的一部分在第二个接口中使用
jemter:
第一个接口返回数据之后,可以通过后置处理器的的xpath或json或者正则提取器来取想要的数据,当然,具体也要看返回数据的类型,如果返回的是json可以使用json或正则,如果返回的是xml或html可以使用xpath或正则。
第二个接口直接使用 ${变量名} 就可以了
postman:
第一个接口返回数据之后,可以通过postman中的tests模块中使用 pm.globals.set这个方法来设置全局变量名,变量名根据业务取即可,值的话可以使用pm.response.json()下面的数据。
第二个接口想要使用的时候,直接使用 {{变量名}} 就可以了
面试题:你是如何使用抓包工具的
我们使用抓包工具一般做三个方面。
判断前后bug,造假数据,模拟弱网。
面试题:你是如何判断前后端bug的
我们会使用抓包工具来判断前后端的bug。
如果前端的数据发送的不正确,比如url地址错了,或者参数错了,这些就是前端的问题。
如果前端的数据发送的是正确的,但是返回值是错误的,那么就是后端的问题
如果前端的数据发送的是正确的,返回值也是正确的。功能还有问题的话,就是前端的问题
面试题:你是如何造假数据的
我会使用charles的断点、重写、map local、map remote这四个功能来造假数据
比如现在有一个接口返回的是订单的状态,如果这个返回值为1,那么前端就显示已送达,如果返回值为0,则显示配送中。
但是我目前这个接口返回的永远都是1,也就是已送达的状态。我现在想要测试一下,前端显示配送中的效果是否正确。此时我就可以使用造假数据的功能,我更多的可能会使用map local。
map local 以文件的形式重写数据
1先将接口返回的请求或响应的数据保存到本地的一个文件中,再修改文件中需要mock的数据后保存,2 选择charles中的Tool——map local settings, 添加需要mock的url及文件路径即可。
面试题:你是如何模拟弱网的
在charles中有一个叫做throttle的功能,这个功能可以去模拟2g,3g等网络,在proxy下选择throttle settings 进入后勾选,enable throttling 就可以设置了。也可以自己去设置上下行(xing)的速度。也可以设置丢包率,稳定性能内容
面试题:用jmeter做性能测试
-
你是如何做接口的性能测试的?
-
我会将一部分接口做压力测试,比如说我们之前电商的项目会搞双十一会有秒杀活动,这时候需要对下订单的接口做压测。我们当时的需求是要达到1000个人同时请求并且没问题。会通过jmeter的同步定时器也就是集合点来做压力测试,模拟1000个人同时访问。我们模拟完成之后会查看聚合报告中的错误率,QPS(吞吐量)和平均响应时间,同时我们还需要去看一下服务器的性能,比如 cpu、内存、磁盘读写有没有突然飙升的情况。
-
-
你会看哪些指标?
-
聚合报告:吞吐量,错误率,平均响应时间
-
服务器:cpu、内存、磁盘读写
-
-
你是如何查看服务器(linux服务器)性能?
-
我们通过一个叫做 nmon 来查看
-
可以用 yum install nmon 下载
-
-
cpu、内存、磁盘读写在百分之多少算过或者不过?
-
cpu达到百分之85以上
-
内存达到百分之90以上
-
磁盘读写达到百分之90以上
-
-
如果遇到了瓶颈,你是如何处理的?
-
我们增加了服务器的数量
-
-
服务器是自己公司的么?
-
我们用的是阿里云
-