多测师讲解自动化测试 _接口面试题(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中有值,需要作为下一个接口的使用测试桩:本质就是处理请求的代码;
涉及第三方系统,上线前会有一次联调的机会,真实对接,相当于第三方临时表,模拟资金支付,这就是叫测试数据;
多测师讲解自动化测试 _接口面试题(001)_高级讲师肖sir的更多相关文章
- 多测师讲解jmeter _基本介绍_(001)高级讲师肖sir
jmeter讲课课程 一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. ...
- 多测师讲解自动化selenium___定位元素002___高级讲师肖sir
高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...
- 多测师讲解自动化测试 _RF封装_(三层模式)高级讲师肖sir
rf自动化:分层作用: 1.项目----有重复的流程(借款-登录,出借-登录) 2.借款--登录(8个流程)机器人:案例层(用例)写在机器人中,1个机器人=1条用例 分三个层次: 1.案例层(存放用例 ...
- 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir
讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...
- 多测师讲解自动化测试_rf节课内容_高级讲师肖sir
*** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...
- 多测师讲解第一个月 _综合面试题_高级讲师肖sir
第一个月综合面试题 1. 冒烟测试是什么意思? 对主要的用例测试 2.你们公司的项目流程是什么? 3.你们公司的bug分几个级别? 4个 4.你对外键是怎么理解的? 你会使用外键吗?给一个表添加 ...
- 多测师讲解自动化--rf断言(下)--_高级讲师肖sir
1.Page Should Contain 1.1存在页面上的内容 1.2 不存在页面上的内容, 运行抛异常 1.3 Page Should Not Contain 1.4 1.5 输入页面元素,判断 ...
- 多测师讲解自动化--rf关键字--断言(下)_高级讲师肖sir
断言: 1.1Page Should Contain Maximize Browser Window sleep 2 Comment Page Should Contain hao123 #断言当前页 ...
- 多测师讲解python_模块(导入模块和内置模块)_高级讲师肖sir
#自定义模块# from aaa import * #指定导入某个包中具体的类.函数.方法## A.fun1(2,2) #import +模块名 :# # import +模块名+.+.+# # 导入 ...
- 多测师讲解html _图片标签003_高级讲师肖sir
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>段 ...
随机推荐
- 剑指 Offer 45. 把数组排成最小的数
题目描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: ...
- 09. jenkins配置不同用户显示不同视图
jenkins配置不同用户显示不同视图 一.新建用户 1.1 新建用户 Manage Jenkins -> Manage Users -> 新建用户 1.2 我创建了三个用户,分别 ...
- [Python]在当前目录下创建三个目录
import os os.mkdir("2018-03-16-b018") os.mkdir("2019-03-16-b019") os.mkdir(" ...
- 360浏览器最小字号12的坑 -彻底搞清rem
之前做响应式网站,使用rem作为单位.因为浏览器的默认字号是16px,设置html {font-size: 62.5%; /*10 ÷ 16 × 100% = 62.5%*/},刚好1rem =10p ...
- composer browse 查看包的存储库和主页
composer browse 用于打开或查看包的存储库和主页 1. 使用示例 browse 命令官方手册:https://getcomposer.org/doc/03-cli.md#browse-h ...
- Openstack 调整云主机大小失败解决
Openstack 使用调整openstack云主机大小报错 tailf /var/log/nova/nova-compute.log 2017-02-24 18:21:29.088 28511 ER ...
- 口罩预约管理系统——数据库设计(前端+PHP+MySQL)
目录 一.背景 二.口罩预约管理系统介绍 三.数据库设计 四.MySQL创建数据库以及数据表 五.数据库设计总结 一.背景 2020年的疫情影响了我们的生产生活,政府不断加大力度联防联控,遏制疫情的蔓 ...
- document对象-操作元素的文档结构
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="U ...
- 刷题[RoarCTF 2019]Easy Java
前置知识 WEB-INF/web.xml泄露 java web工程目录结构 Servlet访问URL映射配置 由于客户端是通过URL地址访问Web服务器中的资源,所以Servlet程序若想被外界访问, ...
- pwnable.kr-blackjack-witeup
这是个人对程序逻辑的分析总结. 真的很巧很神奇,理解完程序的逻辑,不知道怎么破解.看了一眼题解,忽然懂了,好神奇哦. 题目说,要获得1000000才能获得flag.经过多次试玩和在分析程序的逻辑,知道 ...