接口面试问题汇总

题1、接口测试能发现哪些问题呢?
  1、可以发现很多页面上操作发现不了的bug
  2、检查系统的异常处理能力
  3、检查系统的安全性和稳定性
  4、后端接口做好规范,前端不管怎么改动,都不会被影响(除非自己不按文档瞎搞)
  5、可以测试一些并发的情况,比如一个账号对某个商品的最后一件同时下单,或者不同账号对商品最后一件同时下单
  6、可以突破前端限制,做一些前端无法实现的操作

题2、接口测试怎么测?
  1、通过性验证:首先保证接口功能是有用的,对照接口文档正常传入参数,查看返回结果是否正确
  2、参数组合验证:有些接口参数根据type值的不同来配合其它不同参数完成不同操作时,比如 type=1时,其它值只传入一个或者多个是否有效
  3、接口安全验证:
      绕过校验,例如:当修改name,字数限制8个字,修改name时,传入9个字,是否成功修改
      绕过身份授权验证:例如 修改个人信息是需要登录之后拿到自己的用户id才能修改,那我登录之后拿别人的用户id是否能修改成功
      参数是否加密验证:例如 登录接口密码,一般都是会进行加密处理的
  4、异常验证:对一些参数的必填校验,长度,字符类型等进行验证,以及对异常情况是否返回正确提示
  5、接口性能验证:
      检查接口响应时间以及并发情况,例如一个接口多方同时请求是否能正常处理

题3、平常用什么工具测试接口?
  1、Postman
  2、Jmeter
  3、Python+Request 撸代码

题4、webservice接口如何测试?
  1、SoapUI测试工具
  2、python

题5、没有接口文档如何做接口测试?
  1、通过抓包获取接口以及对应参数,通过询问开发了解参数信息之后,自己整理一份文档

题6、在手动接口测试和自动接口测试时,怎么处理上下游数据依赖?
  比如token,登录之后的后续接口都需要token,可以登录之后把token提取出来做全局变量,后续接口引用即可

题7、依赖第三方数据的接口该怎么处理?
  mock,搭建mock服务

题8、当一个接口出现异常时,如何分析异常?
  1、通过抓包工具抓取接口,查看请求参数和返回参数是否异常
  2、查看后端日志

题9、如何进行弱网测试?
  fiddler可以模拟弱网测试,Ctrl+R打开配置文件,可以修改上传速度和下载速度

题10、分析bug是前端还是后端?
  抓取接口,请求参数有问题就是前端问题,返回结果有问题就是后端问题

题11、session和cookie的区别?
  session是存放在服务器中,cookie存放在客户浏览器中
  session的运行依赖session id,session id又存在cookie中,如果cookie被禁用,session也是会失效
  session存在服务器中,没有啥限制,但是访问增多时,存储就会越多,从而影响服务性能
  cookie存在浏览器中,但是单个cookie保存的数据有限制,很多浏览器也是对cookie做了限制


题12、Get和Post的区别?
  Get请求常作用于查询方面,因为Get请求的参数都是Url后面,
  Post请求常作用与增删改或者是涉及个人信息,Post请求参数放在Body中
  安全方面Post比Get安全


题13、自动化框架的理解?
  为解决一些问题,配套了一些解决问题的组件工具
  解决哪些问题:Pytest+request接口自动化测试、pytest+seleniumUI自动化测试
  解决办法:脚本语言+模块
  构成框架:接口:api接口、testcaes用例、data数据、log日志、report报告、email通知
  特点:可扩展性,灵活性强

题14、为什么要进行自动化测试?
  手动测试回归时效率低
  手动测试回归率不足,往往都会有遗漏
  系统越复杂问题越多
  交付的产品有数据支持

题15、自动化测试能解决什么问题?
  降低人工回归成本
  提高测试覆盖率
  提高回归效率
  提高发现问题后的响应速度
  提高发下问题的速度,人休息脚本不会休息

题16、自动化测试的不足?
  自动化适用于回归测试和冒烟测试
  实施自动化不是所有的系统都合适
  成本投入无法减少,但能提交测试质量

题17、pytest.ini的作用?
  能更改pytets的一些默认操作,例如pytest脚本执行时,命令 pytest -v -s --pytest-html=./reports/report.html 时
  每次输入pytest后面的命令都很麻烦,将后面这些执行写进pyetst.ini配置文件中后,命令只需要输入pytest即可,执行时会默认去查找配置文件中的信息

题18、pytest前后置操作的作用?
  前后置操作可以做一些接口之外的数据处理,例如:签名、加密、数据清理等
  案例:比如注册时,一个账号注册之后不能再重复注册,再次注册会提示账号已注册,两种方案
  一、将注册的用户名跟随机值拼接,使其每次注册的都是不同的账号(问题就是,注册的数据会越来越多)
  二、再注册之前或者注册之后,执行前置、后置操作将注册的数据清除,如果注销接口可执行注销接口,如能删除数据库数据,则删除数据库数据(删除数据库谨慎处理)

 

 

自动化测试框架本身并不能完成一套自动化执行过程,它是管理工具。能够管理用例,导出日志,自动生成测试报告,而关键的执行部分是通过一个个组件来完成的,例如需要测试“微信”应用,那么它应该分为两个部分,一部分为基础业务逻辑,也就是我们所说的功能,一部分为应用性能,及内存泄漏常驻等代码层面的性能。

 

自动化测试框架定义:为了解决某些特定问题约束测试边界,找到解决问题方案,从而开发解决问题的组件

 

 

我们为什么要自动化,为什么需要搭建自动化测试框架?

 

1、目前业务大部分为客户在我们的定制基础上再定制,虽然版本分支众多,但核心功能没有改变,仍然是我们的定制系统加上客户的一些小定制,验收反复,测试人员技术无根本上的增长,同时也增加公司成本

 

2、对于测试中产生的随机性BUG(非用例集、非必现、测试手法冷门)没有有效反馈

 

3、搭建自动化测试框架管理测试用例集,保存测试日志及报告,使用组件分模块跑通主要测试业务,使测试更加高效专业

posted @ 2021-12-29 23:04  小哈别闹  阅读(377)  评论(0编辑  收藏  举报