二、接口测试知识点总结
1.什么是接口测试?
- 接口测试:是测试系统组件间接口的一种测试方法
- 接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系
- 接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期
2.接口自动化测试的流程?
基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果分析
3.GET请求和POST请求区别是什么?
- GET请求:用于信息获取,相对而言是安全和幂等的;在做数据查询时,建议用GET方式,如:商品信息接口、搜索接口、博客访客接口...
- POST请求:表示可能会修改服务器上资源的请求;在做数据添加、修改时,建议用POST方式。如:上传图片接口、登录注册接口...
误区:
“GET是从服务器上获取数据,POST是向服务器传送数据”(该说法有误)
解析:
GET/POST都可以提交数据,GET请求也可以向服务器传递数据,POST请求也需要服务器返回数据
4.接口测试的常用工具有哪些?
Postman、JMeter、SoapUI、Poster、RESTClient、WireMock
5.HTTP接口的请求参数类型有哪些?
- 查询字符串参数(Query String Parameters参数)一般用于GET请求,会以url string的形式进行传递
- 请求体参数(Request Body)一般用于POST请求,可以使用Content-Type来指定不同参数类型
6.如何从上一个接口获取相关的响应数据传递到下一个接口?
先从上一个接口中的响应数据获取对应的返回值,然后使用正则表达式or使用JSON解析来提取需要获取的值,然后存储在一个变量中,最后在下一个接口中直接引用该变量即可
7.接口测试用例的编写要点有哪些?
1)必填字段:请求参数必填项、可选项
2)合法性:输入输出合法、非法参数
3)边界:请求参数边界值等
4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5)响应数据校验:断言、数据提取传递到下一级接口...
6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)
8.接口测试的步骤有哪些?
1)发送接口请求
2)测试接口获取返回值
3)断言:判断实际结果是否符合预期
9.接口测试中依赖登录状态的接口如何测试?
依赖登最状态的接口,本质上是在每次发送请求时需要带上存储有账户有效信息的Session或Cookie才能发送成功,在构建POST请求时添加必要的Session或Cookie
10.依赖于第三方数据的接口如何进行测试?
可以利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依
11.当一个接口出现异常时候,你是如何分析异常的?
1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
2.查看后端日志,xhell连上服务器,查看日志
12. 如何模拟弱网测试
fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试
13.如何分析一个bug是前端还是后端的?
平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug 这种情况很容易判断,先抓包看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对 请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题。
14.cookie和session的区别
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。
(2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie
(4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
(5)可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie。
15. 在手工接口测试或者自动化接口测试过程中,上下游接口有数据依赖如何处理?
答:在工具中可以使用全局变量等方式将需要的数据进行传送
16.依赖第三方数据的接口如何进行测试?
答:可以使用SoapUI等工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据的接口是否调用正常
也可以利用一些MOCK的工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖
17. 接口测试中,依赖登录状态的接口如何测试?
答:依赖登录状态的接口的本质上是在每次发送请求时需要带上session或者cookie才能发送成功,在构建POST请求时添加必要的session或者cookie
18.什么是API?
API是(Application Programming Interface)首字母缩略词,即应用程序编程接口。 API是一组用于构建软件应用程序的规程,协议和工具。API充当软件应用程序之间的接口,并允许两个软件应用程序相互通信。 API是一组软件功能,可以由其他软件执行.
19.列举一些最常用的HTTP方法?
GET:从服务器检索数据
POST:将数据添加到服务器中的现有文件或资源
PUT:它允许您替换服务器中的现有文件或资源
DELETE:它允许您从服务器中删除数据
PATCH:用于对资源进行部分修改
选项:用于描述目标资源的通信选项
HEAD:它要求响应与GET请求相同,但没有响应正文
20.接口测试能发现哪些问题,你平常做接口测试的过程中发现过哪些bug?
这个问题其实回到起来很简单,只要做过接口测试的,总能发现几个BUG吧,把你平常发现的bug说2-3个就可以了。
面试官出这个题,主要是想知道你是不是真的做过接口测试,毕竟现在很多小伙伴简历都是写的假的(你要不写估计面试机会都没有,没办法,为了生存,能理解)
比如上面说的,提现输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。
(假设服务端没做提现金额数据判断)
余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了.
21.对于接口测试中产生的垃圾数据如何处理?对于不可逆操作,比如删除订单,如何保证数据可用性?
这个问题考察的是你,能否在接口测试过程中动态的去处理测试数据。具体来说就是:在需要测试数据的时候,能够自动生成。在测试完毕后,能清除测试过程产生的垃圾数据(尤其对于生成环境)。
接口的请求数据,很多都是需要依赖前面一个状态的 比如工作流这种,流向不同的人状态不一样,操作权限不一样,测试的时候,每种状态都要测到,就需要自己会造数据了。 平常手工测试造数据,直接在数据库改字段状态。那么自动化也是一样,造数据可以用python连数据库做增删改查的操作。如果没有数据库的直接操作权限,可以间接的调用其他接口(比如下单接口)生成数据。在自动化测试中测试用例前置操作,setUp做数据准备。
对于垃圾数据的处理,和上面说到的生成数据的方式一样,调用相关接口(比如删除订单接口)或直接链接数据库进行数据删除。在自动化测试中使用后置操作,tearDown做数据清理。对于非生产环境,如果不想造成数据污染也可以切换影子数据库或者使用mock服务,不真实生成数据。
22.说一说你所知道的接口安全测试?
安全这个问题,所有的团队都很看重。接口的安全测试主要有以下几个方面:
接口对于请求参数篡改的预防
引入签名、参数MD5加密等
关于接口身份认证存在的漏洞
cookie仿冒、session劫持、平行和垂直越权
完善接口的防刷机制
比如暴力破解短信验证码、找回密码功能的枚举破解安全问题
竞争条件—利用线程并发漏洞
超过限制下单、同时申请多笔退款
注入类攻击
sql注入、sqlmap 接口注入检查
23. 你用过哪些测试工具,它们的特点分别是什么?
回答提示:
① Jmeter: 是一个100%的纯java桌面应用,能够对HTTP和FTP服务器进行压力和性能测试, 它原先用于Web应用测试,后来扩展到其他测试领域;另外Jmeter一般用于接口测试,验证接口的输入值请求是否返回了期望输出的结果。
② JUnit:是一个Java语言的单元测试框架,用于编写和运行可重复的测试。Junit测试即所谓的白盒测试,它包括以下特性:用于测试期望结果的断言(Assertion);用于共享共同测试数据的测试工具;用于方便的组织和运行测试的测试套件;图形和文本的测试运行器。
③ TestLink: TestLink 是基于web的测试用例管理系统,主要功能包括有测试需求管理、 测试用例管理、测试用例对测试需求的覆盖管理、测试计划的制定、测试用例的执行、大量测试数据的度量和统计功能。目前在XLS导入上存在缺陷,但可以使用第三方的“Testlink Convert”工具实现XLS/TXT/XML导入导出。
24.接口测试是目前最主流的自动化测试手段,它向服务器发送请求,接收和解析响应结果,通过验证响应报文是否满足需求规约来验证系统逻辑正确性。接口的响应类型通过Content-Type指定,常见的响应类型有:
• text/html : HTML格式
• text/plain :纯文本格式
• text/xml : XML格式
• application/xml : XML数据格式
• application/json : JSON数据格式
25.接口测试汇总响应断言:模式匹配
• 包括:支持纯文本和正则,验证返回包括指定的内容
• 匹配:支持纯文本和正则,正则需全匹配(正则必须匹配全部返回,而非部分返回)
• Equals:字符串相等,纯文本匹配,验证返回结果和指定结果完全一致
• SubString:字符串包含,纯文本匹配,验证返回结果包含指定结果
• 否:结合上述条件取反,若上述断言结果为false,取否后,最终断言结果为true
Json断言
Json断言是针对Json报文的断言方式,通Json Path提取出Json响应报文中的字段,再采用纯文本或者正则去验证Json Path的提取结果,Json结合了Json Path和正则表达式,有如下选项:
• Additionally assert value:文本验证,此处是完全匹配,勾选上此选项后再勾选Match as regular expression,可以触发正则匹配。
• Match as regular expression:支持正则表达式匹配
• Expect null:判定返回为null
• Invert assertion:倒置断言结果
二、接口测试知识点总结相关推荐
- 考研英语二语法知识点
语法知识点 简单句 简单句的核心变化 主语.宾语.表语的变化 名词.代词 非谓语动词 doing 非谓语动词 to do 并列多个 简单句的扩展 词性角度的扩展 限定词 形容词.副词 形容词.副词做修 ...
- 《密码编码学与网络安全》William Stalling著---学习笔记(二)【知识点速过】【数字签名+密钥管理分发+用户认证】
提示:博文有点长,请保持耐心哦~ 前一篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...
- 考研英语二语法知识点 1.1简单句的核心构成
知识点 简单句 简单句的核心构成 语法详解 1. `主谓 = 主语 + 不及物动词(vi.)` 2. `主谓宾 = 主语 + 及物动词(vt.) + 宾语` 3. `主谓双宾 = 主语 + 及物动词( ...
- 软件测试-接口测试-知识点
文章目录 接口测试学习目标 1.基础概念 1.1接口 1.2 Http 1.3 接口测试的流程(重点) 1.4 接口规范 1.5 接口文档 1.5.1接口文档示例-用户登录 1.6 接口用例设计 接口 ...
- 百度,一面,二面知识点
1.css兼容性 2.css可持续动画 3.css两栏布局,左边固定,右边自适应 4.webwork 5.webpack,配置代理 6.jquery源码 7.bind方法实现 8.快排 9.项目经验 ...
- 哔哩哔哩2020校园招聘游戏测试笔试卷(二)知识点解析
题目直达 这里考察的是i++和++i的区别,i++是先使用i的值再执行加1操作,++i是先进行加1操作再使用i的值 public class Test {public static void main ...
- 北大陈向群第十二章知识点
资源分类: 可重用资源:课被多个进程多次使用 分为可抢占资源和不可抢占资源 例如:CPU处理器,I/O部件,内存,文件,数据库,信号量 可消耗资源:只可使用一次,可创建和销毁的资源 例如:信号,中断 ...
- PMP二模知识点集锦
准备商业论证 敏捷项目的沟通工件 三种情况重新识别相关法 仆人与培训 敏捷与专职小组成员,根据个人能力分配工作 涉及基准(范围发生变化)一定要CCB,进度影响到了基准,要CCB.否则一半的PM审批即可 ...
- 考研英语二语法知识点 1.2简单句的核心变化
简单句 简单句的核心变化 谓语动词的变化 谓语动词的时态 时态可以按照两个维度,划分如下 四种时间:过去 现在 将来 过去将来 四种状态:一般 进行 完成 完成进行 四种时间 x 四种状态 = 十六种 ...
最新文章
- The road to learning English-Listening
- HTTP与HTTPS区别(详细)
- NETCore Bootstrap Admin 通用后台管理权限 [1]: 前后台分离系统简介
- React JS 组件间沟通的一些方法
- 手把手教你入门Git --- Git使用指南(Linux)
- IComparable和Icomparer接口
- css tips —— 神奇的max-width,min-width, width覆盖规则
- 电力行业信息安全等级保护管理办法_信息安全等级保护是什么???
- SpringBoot2.0.0启动流程
- 【电机控制入门】——电机控制书籍推荐
- C语言左移右移操作符详解
- VsCode下通过Latex运行计算机学报的模板
- XXE漏洞(XML外部实体注入)
- win10无限蓝屏_Win10升级系统后蓝屏或无限重启的解决方法
- 如何快速查找BUG?
- s32k144 isystem linux,S32k144 简易 Bootloader
- 微博中如何选中#话题#
- 深入理解Java虚拟机(周志明第三版)- 第十三章:线程安全与锁优化
- matlab字符模板在哪,新人求助!车牌识别系统里的字符模版存放路径是哪里
- java计算机毕业设计云医疗自助就诊平台录屏源码+数据库+lw文档+系统+部署
热门文章
- 机器取代程序员?笑话
- 消费者支持国产似乎只是口号?越来越多消费者购买iPhone
- 9.2 Windows钩子
- 【SIMULINK】SIMULINK仿真基础
- PickerView 时间/城市联动选择器TimePickerBuilder+OptionsPickerBuilder
- JDK9安装及环境变量配置(window)
- android TBS预览文件
- 5G时代,什么是运营商大数据?
- Movavi.Video.Editor.Business.15.5.0 下载安装和激活
- java 文本分析 关键词提取_从文本中提取关键字