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. Oracle12C配置对外访问

    Oracle12C配置对外访问 第一步: 开放端口或者关闭防火墙 第二步: 配置Oracle net manager打开Net manager 修改为共享服务器 第三步: 配置连接数打开Databas ...

  2. MySql数据库规范与原则

    1.数据库表名命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确,多个单词用下划线'_'分隔; 例如:user_login, user_pro ...

  3. mysql排序的问题与获取第几高的分数的信息

    1:先截图看效果 2:完整的SQl语句 SELECT * FROM studentscore; -- ------------------ SET @maxscore=(SELECT MAX(scor ...

  4. Fliptile(POJ 3279)

    原题如下: Fliptile Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16494   Accepted: 6025 D ...

  5. vue 实现页面跳转

    首先,vue项目文件夹如下: components下有两个.vue文件,HelloWorld为创建时自动建立的,login需要自己创建的,login页面效果如下: 首先实现登录按钮的跳转,先对inde ...

  6. DoS拒绝服务-工具使用hping3、nping等(四)

    Hping3几乎可以定制发送任何tcp/ip数据包,用于测试fw,端口扫描,性能测试 Syn Flood – hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood ...

  7. CTF-BugKu-34-

    2020.09.15 做得好慢,,,心不在焉的,赶紧的啊,还得做别的呢 做题 第三十四题 很普通的数独(ISCCCTF) https://ctf.bugku.com/challenges#很普通的数独 ...

  8. QEMU 虚拟机网卡探究

    前述 我们知道无论是VMware,Virtual Box还是HyperV 都支持 NAT/Bridge/Host-Only 三种上网方式.其中 NAT 是我最常用,最熟悉的. 需要说明的是,无论是NA ...

  9. Burger King使用RayOnSpark进行基于实时情景特征的快餐食品推荐

    作者:Luyang Wang, Kai Huang, Jiao Wang, Shengsheng Huang, Jason Dai 基于深度学习的推荐模型已广泛应用于各种电商平台中,为用户提供推荐.目 ...

  10. Keepalived服务详解

    1. VRRP协议 1.1 VRRP协议概述 VRRP协议的出现是为了解决静态路由的单点故障,它是通过一种竞选机制来将路由任务交给某个vrrp路由器的 在VRRP物理结构中,有多个物理的VRRP路由器 ...