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

多测师讲解自动化测试 _接口面试题(001)_高级讲师肖sir的更多相关文章

  1. 多测师讲解jmeter _基本介绍_(001)高级讲师肖sir

    jmeter讲课课程 一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. ...

  2. 多测师讲解自动化selenium___定位元素002___高级讲师肖sir

    高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...

  3. 多测师讲解自动化测试 _RF封装_(三层模式)高级讲师肖sir

    rf自动化:分层作用: 1.项目----有重复的流程(借款-登录,出借-登录) 2.借款--登录(8个流程)机器人:案例层(用例)写在机器人中,1个机器人=1条用例 分三个层次: 1.案例层(存放用例 ...

  4. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  5. 多测师讲解自动化测试_rf节课内容_高级讲师肖sir

    *** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...

  6. 多测师讲解第一个月 _综合面试题_高级讲师肖sir

    第一个月综合面试题 1.  冒烟测试是什么意思?  对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别?  4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...

  7. 多测师讲解自动化--rf断言(下)--_高级讲师肖sir

    1.Page Should Contain 1.1存在页面上的内容 1.2 不存在页面上的内容, 运行抛异常 1.3 Page Should Not Contain 1.4 1.5 输入页面元素,判断 ...

  8. 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir

    断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...

  9. 多测师讲解python_模块(导入模块和内置模块)_高级讲师肖sir

    #自定义模块# from aaa import * #指定导入某个包中具体的类.函数.方法## A.fun1(2,2) #import +模块名 :# # import +模块名+.+.+# # 导入 ...

  10. 多测师讲解html _图片标签003_高级讲师肖sir

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>段 ...

随机推荐

  1. ZT:如果有来生,要做一棵树

    出处:https://zhidao.baidu.com/question/393644025.html 原以为是三毛所作,想不到还有争议. 如果有来生,要做一棵树, 站成永恒.没有悲欢的姿势, 一半在 ...

  2. 跨年夜问题:一句并不复杂的delete竟然在delete statement处cost飙升,在数据量上升的十万级就像进入了死循环,执行后久久没有结果

    笔者使用的环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi ...

  3. 在Oracle中快速创建一张百万级别的表,一张十万级别的表 并修改两表中1%的数据 全部运行时间66秒

    万以下小表做性能优化没有多大意义,因此我需要创建大表: 创建大表有三种方法,一种是insert into table selec..connect by.的方式,它最快但是数据要么是连续值,要么是随机 ...

  4. Python数据类型方法整理

      前言:主要是对Python数据类型做一个整理,部分知识点源于<python3程序开发指南(第二版)>   一.Python的关键要素 1.1 要素1:数据类型  int类型 str类型 ...

  5. [06] 优化C#服务器的思路和工具的使用

    优化C#服务器的思路和工具的使用 优化服务器之前, 需要先对问题的规模做合理的预估, 然后对关键的数据做采样, 做对比, 看和自己的预估是否一致, 误差大在什么地方, 是预估的不对, 还是系统实现有问 ...

  6. Spring学习(八)AOP详解

    文章更新时间:2020/04/06 一.一个例子 在上面的例子中,包租婆的核心业务就是签合同,收房租,那么这就够了,灰色框起来的部分都是重复且边缘的事,交给中介商就好了,这就是 AOP 的一个思想:让 ...

  7. 2020 CiGA Game Jam活动总结

    CiGA Game Jam 总结 今年8月14.15.16号,48小时游戏开发--Game Jam开始了.蠢新第一次参加Game Jam,今年还是线上开展,情绪复杂= = 还有一个坏消息,晓航旅游缺席 ...

  8. Linux 文件系统之入门必看!

    在 Linux 中,最直观.最可见的部分就是 文件系统(file system).下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想.这些思想中有一些来 ...

  9. Go 分支流程

    if/else 基本使用 if/else应该是每个编程语言中都具备的基本分支结构. 需要注意的是if||else与{要放在同一行上,否则会抛出异常. 另外,当多个else if出现时,不同分支只会执行 ...

  10. java调用Oracle中的存储过程与存储函数

    1 //调用存储过程 2 public static void testPro(){ 3 String driver = "oracle.jdbc.OracleDriver"; 4 ...