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:倒置断言结果

二、接口测试知识点总结相关推荐

  1. 考研英语二语法知识点

    语法知识点 简单句 简单句的核心变化 主语.宾语.表语的变化 名词.代词 非谓语动词 doing 非谓语动词 to do 并列多个 简单句的扩展 词性角度的扩展 限定词 形容词.副词 形容词.副词做修 ...

  2. 《密码编码学与网络安全》William Stalling著---学习笔记(二)【知识点速过】【数字签名+密钥管理分发+用户认证】

    提示:博文有点长,请保持耐心哦~ 前一篇文章: <密码编码学与网络安全>William Stalling著-学习笔记(一)[知识点速过][传统密码+经典对称加密算法+经典公钥密码算法+密码 ...

  3. 考研英语二语法知识点 1.1简单句的核心构成

    知识点 简单句 简单句的核心构成 语法详解 1. `主谓 = 主语 + 不及物动词(vi.)` 2. `主谓宾 = 主语 + 及物动词(vt.) + 宾语` 3. `主谓双宾 = 主语 + 及物动词( ...

  4. 软件测试-接口测试-知识点

    文章目录 接口测试学习目标 1.基础概念 1.1接口 1.2 Http 1.3 接口测试的流程(重点) 1.4 接口规范 1.5 接口文档 1.5.1接口文档示例-用户登录 1.6 接口用例设计 接口 ...

  5. 百度,一面,二面知识点

    1.css兼容性 2.css可持续动画 3.css两栏布局,左边固定,右边自适应 4.webwork 5.webpack,配置代理 6.jquery源码 7.bind方法实现 8.快排 9.项目经验 ...

  6. 哔哩哔哩2020校园招聘游戏测试笔试卷(二)知识点解析

    题目直达 这里考察的是i++和++i的区别,i++是先使用i的值再执行加1操作,++i是先进行加1操作再使用i的值 public class Test {public static void main ...

  7. 北大陈向群第十二章知识点

    资源分类:  可重用资源:课被多个进程多次使用 分为可抢占资源和不可抢占资源 例如:CPU处理器,I/O部件,内存,文件,数据库,信号量 可消耗资源:只可使用一次,可创建和销毁的资源 例如:信号,中断 ...

  8. PMP二模知识点集锦

    准备商业论证 敏捷项目的沟通工件 三种情况重新识别相关法 仆人与培训 敏捷与专职小组成员,根据个人能力分配工作 涉及基准(范围发生变化)一定要CCB,进度影响到了基准,要CCB.否则一半的PM审批即可 ...

  9. 考研英语二语法知识点 1.2简单句的核心变化

    简单句 简单句的核心变化 谓语动词的变化 谓语动词的时态 时态可以按照两个维度,划分如下 四种时间:过去 现在 将来 过去将来 四种状态:一般 进行 完成 完成进行 四种时间 x 四种状态 = 十六种 ...

最新文章

  1. The road to learning English-Listening
  2. HTTP与HTTPS区别(详细)
  3. NETCore Bootstrap Admin 通用后台管理权限 [1]: 前后台分离系统简介
  4. React JS 组件间沟通的一些方法
  5. 手把手教你入门Git --- Git使用指南(Linux)
  6. IComparable和Icomparer接口
  7. css tips —— 神奇的max-width,min-width, width覆盖规则
  8. 电力行业信息安全等级保护管理办法_信息安全等级保护是什么???
  9. SpringBoot2.0.0启动流程
  10. 【电机控制入门】——电机控制书籍推荐
  11. C语言左移右移操作符详解
  12. VsCode下通过Latex运行计算机学报的模板
  13. XXE漏洞(XML外部实体注入)
  14. win10无限蓝屏_Win10升级系统后蓝屏或无限重启的解决方法
  15. 如何快速查找BUG?
  16. s32k144 isystem linux,S32k144 简易 Bootloader
  17. 微博中如何选中#话题#
  18. 深入理解Java虚拟机(周志明第三版)- 第十三章:线程安全与锁优化
  19. matlab字符模板在哪,新人求助!车牌识别系统里的字符模版存放路径是哪里
  20. java计算机毕业设计云医疗自助就诊平台录屏源码+数据库+lw文档+系统+部署

热门文章

  1. 机器取代程序员?笑话
  2. 消费者支持国产似乎只是口号?越来越多消费者购买iPhone
  3. 9.2 Windows钩子
  4. 【SIMULINK】SIMULINK仿真基础
  5. PickerView 时间/城市联动选择器TimePickerBuilder+OptionsPickerBuilder
  6. JDK9安装及环境变量配置(window)
  7. android TBS预览文件
  8. 5G时代,什么是运营商大数据?
  9. Movavi.Video.Editor.Business.15.5.0 下载安装和激活
  10. java 文本分析 关键词提取_从文本中提取关键字