接口测试

1.什么是接口测试?

:是测试系统组件间接口的一种测试方法
:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系
:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期

2.接口自动化测试的流程?

基本的接口功能自动化测试流程为:需求分析–>用例设计–>脚本开发–>测试执行–>结果分析

3.GET请求和POST请求区别是什么?

:用于信息获取,相对而言是安全和幂等的;在做数据查询时,建议用GET方式,如:商品信息接口、搜索接口、博客访客接口…
:表示可能会修改服务器上资源的请求;在做数据添加、修改时,建议用POST方式。如:上传图片接口、登录注册接口…
误区:

“GET是从服务器上获取数据,POST是向服务器传送数据”(该说法有误)

解析:

GET/POST都可以提交数据,GET请求也可以向服务器传递数据,POST请求也需要服务器返回数据

4.接口测试的常用工具有哪些?

Postman
JMeter
SoapUI

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

为什么要做接口测试?

到底什么是接口测试,我们为什么要做接口测试?这是很多初入行的小伙伴的一个疑问,讲理论的你可能看不进去,接下来讲个实际案例,如下图一个提现功能

比如这个输入框,平常拿到这个web页面,会对输入框做用例设计:

-100),点提交
0(如:0),点提交
0-100的数(如:20),点提交
100(如:100),点提交
100(如:108),点提交
1位小数(如:10.1),点提交
2位小数(如:10.12),点提交
3位小数(如:10.123),点提交
按照这个等价类,边界值用例测完,页面上不能输入负数和大于3位数小数点,然后就可以上线了。

然而。。。突然有一天数据库里面插入了一个提现金额为负数(-100),于是整个部门炸锅了,首先找到测试(背锅)去复现问题,测试在页面上反复输入负数,无法提交,认为没问题啊!

首先前端开发对输入框是做了限制的,前端的web开发肯定没问题,这个锅前端开发MM不背。那么如果别人用户不通过你的web页面,直接发请求提

接口测试能发现哪些问题

面试题1:你平常做接口测试的过程中发现过哪些bug?

比如上面说的,提现输入框,在页面上输入负数,肯定是无法提交过去(前端页面会判断金额),如果我不走前端,直接用接口工具发请求,输入一个负数过去。

(假设服务端没做提现金额数据判断)

余额=当前余额(100)-提现金额(-100),那么提现-100,余额就变成200了,也就是越提现,余额越大了

可以用接口工具去直接请求接口,也可以fiddler抓包,抓到接口后修改金额为负数

所以,接口测试的必要性就体现出来了:

1.可以发现很多在页面上操作发现不了的bug

2.检查系统的异常处理能力

3.检查系统的安全性、稳定性

4.前端随便变,接口测好了,后端不用变

5.可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单

6.可以修改请求参数,突破前端页面输入限制(如金额)

接口测试怎么测

面试题2:平常你是怎么测试接口的?

type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,
商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?

2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功

3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。

4、密码安全规则,密码的复杂程度校验

所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单

接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别

用什么工具测

面试题3:平常用什么工具测接口的

接口测试工具很多,首先postman 其次用jmeter

webService接口

面试题4:webService接口是如何测试的

webService接口用SoapUI

没有接口文档如何做接口测试

面试题5:没有接口文档,如果做接口测试?(这是个送命题)

没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,如果接口文档都没有,是无法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每个字段代表什么意思,那还测啥呢?

–当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间

1.没有接口文档,那就需要先跟开发沟通,然后整理接口文档(本来是开发写的,没办法,为了唬住面试官,先说自己整理了)

2.没有接口文档,可以抓包看接口请求参数,然后不懂的跟开发沟通

本题主要靠情商,通俗来说就是忽悠能力,先唬住面试官了再说,进去了也是瞎测测,随时做好背锅的准备

数据依赖

面试题6:在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?

用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

依赖第三方

面试题7:依赖于第三方数据的接口如何进行测试?

这个标准答案是:mock

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值