接口测试面试题<二>

1.接口(API)文档包含哪些部分?
答:包含请求方法,请求地址,请求参数,参数说明,预期结果;

2.请你简述一下接口用例是什么?
接口测试用例主要包含两个部分:接口脚本和数据用例。
接口脚本就是 请求方法,请求地址,请求参数,请求body等
数据用例就是 用例标题,请求数据,预期结果 三个部分,请求数据就是通过等价类和边界值设计出来的多组测试数据。

3.你平时工作中都使用fiddler做哪些工作?
答:1.抓包。fiddler最大的作用就是抓包,通过捕获所有的HTTP请求和响应数据,分析请求和响应,由此定位缺陷是前端BUG还是后端BUG;fiddler抓包可以导出 jmx 文件,给JMeter做接口自动化和性能测试。
2.通过打断点实现篡改请求。检查服务器对特殊数据(篡改后的数据)的处理结果,从而实现绕过界面,验证后台业务容错的能力。
3.用fiddler实现弱网测试。如果页面能够在弱网模式下正常打开,则说明弱网测试通过,否则前端需要对页面进行压缩。【规则 - 性能 - 模拟调制解调器速度】
在这里插入图片描述
4.什么是关联,在JMeter中如何实现关联?
什么是关联:某请求的请求数据需要用到前面请求的响应数据,需要把前面请求的响应数据关联到后面请求的请求数据中来。
前面响应数据的提取:通过添加后置处理器创建正则表达式提取器。可以先提前获取要关联的数据及其左右边界,然后将数据使用(.*?)来替代。
后面请求数据的关联:把需要关联的请求数据使用${}正则表达式的引用名称即参数替代即可。

5.为什么要做接口测试?
答:如果前端界面对输入框做了限制【提现金额不能小于或等于0】,但我测试时不通过页面来测而是直接将数据存入数据库呢?【输入金额为负数依然能执行】是前端的错吗?显然不是。这时候就体现了接口测试的重要性。

6.接口测试能发现哪些问题?
①检查系统的异常处理能力;
②检查系统的安全性和稳定性;
③修改请求参数,突破前端页面的限制;
④测试除页面操作外的其他问题;

7.接口测试怎么测?
1)通过性验证:首先要保证这个接口的功能是能用的,能按照接口文档上的参数,路径,请求方法返回正确的结果;
2)参数组合,异常验证:使用等价法和边界值,少传,多传,不传 分别会造成怎样的结果,是否符合需求和业务逻辑;
3)接口安全:数据验证,身份授权,敏感参数是否加密(密码,身份证号等),密码安全复杂度校验;
4)接口性能:响应时间;并发情况,不同账号同时执行下单操作,或是同一账号执行多个请求。

8.你们以前公司的接口测试流程是怎样的?
1)首先从开发那里拿到API接口文档,了解接口业务,包括接口地址,请求方式,请求参数,返回格式,预期结果等;
2)使用工具进行测试。一般使用JMeter的步骤是这样的:
新建一个线程组;
新建一个HTTP请求的默认值(IP地址和端口号);
新建很多HTTP请求,一个请求对应一个用例(请求的方式不同,参数不同);
创建断言和结果树;
3)执行用例,编写接口测试报告;

9.请简述一下cookie,session以及token的区别。
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。而token是接口测试时的鉴权码,一般情况下登陆后才可以获取到token,然后在每次请求接口时需要带上token参数。
(2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session,session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie。

10.接口测试如何设计测试用例?
接口业务逻辑测试?(正例)
接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

模块接口测试?(反例)
模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。
模块接口测试的主要包括以下几个方面:
1)鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
2)其他参数异常。
1、必填项检查
2、参数的长度、类型、格式异常:
常规参数:(数字、字符串、日期)
参数长度:6-18位。或身份证、电话的长度。
参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。
日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。
3)错误码异常覆盖。
4)接口测试其他的关注点
接口有翻页时,页码与页数的异常值测试
数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致
接口返回的图片地址能否打开,图片尺寸是否符合需求
当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。
所有列表页接口必须考虑排序值
所有功能都要考虑兼容旧版本

11.接口测试执行中比对数据库吗?
答:肯定的。因为接口返回值的数据来源于数据库,接口对数据的操作还要进行深层次的数据库检查。

12.谈谈你对HTTP协议的了解。
答:超文本传输协议,端口为80,特点(无记忆功能、快速)是由请求和响应两部分组成请求由请求头、请求行、请求正文组成;响应是由响应头、响应行、响应正文组成。
https http+ssl协议是端口443 面向安全的超文本传输协议。

猜你喜欢

转载自blog.csdn.net/qq_43096786/article/details/111831196