zoukankan      html  css  js  c++  java
  • 多测师讲解自动化测试 _接口面试题(001)_高级讲师肖sir

    1、为什么要做接口测试(必要性)
    1.可以发现很多在页面上操作发现不了的bug
    2.检查系统的异常处理能力
    3.检查系统的安全性、稳定性
    4.前端随便变,接口测好了,后端不用变
    5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
    6.可以修改请求参数,突破前端页面输入限制(如金额)

    2、当一个接口出现异常时候,你是如何分析异常的?
    1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
    2.查看后端日志,xhell连上服务器,查看日志

    3、如何分析一个bug是前端还是后端的?
    先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对
    请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题

    接口测试:是测试系统组件间接口的一种测试方法
    接口测试的重点:是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系。
    接口测试的意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期

    基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果分析

    查询字符串参数一般用于GET请求,会以url string的形式进行传递
    请求体参数一般用于POST请求,可以使用Content-Type来指定不同参数类型

    4.如何从上一个接口获取相关的响应数据传递到下一个接口?
    先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式or使用JSON解析来提取需要获取的值,
    然后存储在一个变量中,最后在下一个接口中直接引用该变量即可

    5.接口测试用例的编写要点有哪些?
    1必填字段:请求参数必填项、可选项
    2合法性:输入输出合法、非法参数
    3边界:请求参数边界值等
    4容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
    5响应数据校验:断言、数据提取传递到下一级接口...
    6逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
    7性能:对接口模拟并发测试,逐步加压,分析瓶颈点
    8安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)

    6.接口测试的步骤有哪些?
    1发送接口请求
    2测试接口获取返回值
    3断言:判断实际结果是否符合预期

    7.接口测试中依赖登录状态的接口如何测试?
    依赖登路状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的Session或Cookie才能发送成功,
    在构建POST请求时添加必要的Session或Cookie

    8.依赖于第三方数据的接口如何进行测试?
    可以利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回
    可以使用接口工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据
    的接口省份调用正常

    9.接口的加密测试中对称加密与非对称加密有什么区别?
    对称加密是最快速,最简单的一种加密方式,加密与解密用的是同样的密钥,这种
    方法在密码雪种叫做对称加密算法。
    对称加密的一大缺点是秘钥的管理与分配,如何把秘钥发送到需要解密你的消息的人
    手里是一个问题,在发送秘钥的过程中,秘钥有很大的风险会被黑客拦截,现实中
    通常的做法是将对称加密的秘钥进行非对称加密后,如何传送给需要的人。
    非对称加密为数据的加密与解密提供非常安全防范,因为它使用了一对密钥,公钥和私钥
    ,私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人,非对称加密使用
    这对秘钥中的一个进行加密,而解密则需要另一个密钥。


    10.TCP,UDP的区别?
    11.三次握手与四次挥手?
    三次握手 请求连接 -> 服务端确认 -> 客户端确认
    四次挥手 请求断开 -> 服务端同意 -> 服务端释放连接 -> 客户端确认


    11.Cookie和Session的区别?
    Cookie在客户端,可以被篡改
    Session在服务端,不能被篡改


    接口文档中一个接口包含的信息?
    接口的请求方式
    接口个URL地址
    接口的功能描述
    接口的请求参数
    接口的响应参数

    1、get请求参数全部放在URL中,post请求将所有参数放在body中;
    2、Get请求URL长度受限制,post请求他的参数是放在body中长度可以无限放大。3、Get请求安全级别比post请求低;
    4、GET在浏览器回退时是无害的,而POST会再次提交请求。
    5、GET产生的URL地址可以被Bookmark,而POST不可以。
    6、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
    7、GET请求只能进行url编码,而POST支持多种编码方式。
    8、GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    9、GET请求在URL中传送的参数是有长度限制的,而POST么有。
    10、对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
    11、GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
    12、GET参数通过URL传递,POST放在Request body中。
    .
    有做过接口测试吗?接口测试如何做的
    1、 从开发那边获取对应的接口文档;确定接口请求类型,是get还是post;
    2、根据接口文档阅读和分析,组件我们的接口:知道当前接口的基本信息如:url 、请求类型、参数、请求头等

    3、 进行接口测试,根据接口文档设计测试用例,根据接口测试用例利用工具进行接口测试
    4、结果分析
    如果没有接口文档怎么进行处理
    1、谁开发的接口就问对应的开发人员
    2、抓包分析


    怎么分析是前端还是后端问题?
    找出接口文档,fiddler查看请求参数和响应结果。若是调用接口传参有误,导致问题,前端的锅。 若是传参正确,返回结果异常,后端的锅。
    若是返回值异常值前端没做异常处理,前端同时也要背锅。
    这些都可以通过fiddler打断点,修改请求参数、响应参数来测试验证本质是拆分每一步,查证每一步谁有问题,从源头找出问题


    调用第三方接口时,你是怎么进行测试的?
    在和第三方签署协议时,第三方会提供一份接口文档;根据接口文档开发编写一个类似第三方的接口,这个接口将各种表字段存放在本地(数据库),比如银行卡的余额信息表cus_balance_info;在表中模拟用户,在进行接口测试时调用这个模拟的第三方接口,输入银行卡信息,对用户的余额进行校验。

    什么时候做接口测试?
    在UI界面还没形成前,在没有接口文档通过fiddler抓包来测

    注意点:
    接口的互调,这个接口的response中有值,需要作为下一个接口的使用测试桩:本质就是处理请求的代码;
    涉及第三方系统,上线前会有一次联调的机会,真实对接,相当于第三方临时表,模拟资金支付,这就是叫测试数据;

     

  • 相关阅读:
    Oracle基础 07 参数文件 pfile/spfile
    Oracle基础 06 控制文件 controlfile
    Oracle基础 05 联机日志 redolog
    Oracle基础 04 归档日志 archivelog
    Oracle基础 02 临时表空间 temp
    Oracle基础 03 回滚表空间 undo
    Oracle基础 01 表空间 tablespace
    PL/SQL Developer 连接 Oracle
    Windows下卸载Oracle
    Vue:基础语法
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13811436.html
Copyright © 2011-2022 走看看