接口基础知识记录

1.接口分类

接口分为两种,一种是程序内部的接口,另一种是系统对外的接口.

外部接口:从别的网站或服务器获取资源信息,调用别人写好的方法,来获取数据,通过引用别人提供的接口,就能使用它写好的方法,从而达到数据贡献的目的,如app调用接口,二手项目调用支付宝接口,调用微信接口等.

程序内部接口:方法与方法直接,模块与模块直接进行交互,程序内部抛出的接口,eg:蜂鸟网论坛发帖,发帖时,必须登录,调用用户登录接口,蜂鸟网的登录接口就是程序内部的接口.

接口分类:webservice&http api(常用)

webservice :走的是soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候通常用工具进行调用测试.

http api :走http协议,通过路径区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法.

报文:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块

通常url的构成方式:域名/路径?参数

json串表达方式{"key":"value"}

*cookie和session:

cookie:通俗理解,就是存在本地的键值对

session:通俗理解,就是存在服务器的键值对


2.接口测试必要性

可以发现很多前台页面发现不到的bug

检查系统的异常处理能力

检查系统的安全,稳定性

前端改动,不影响接测试


3.接口测试流程

接口测试流程同功能测试流程一样:

需求评审,熟悉业务和需求

开发提供接口文档

编写接口测试用例

用例评审

提测后开始测试,提交测试报告


4.接口测试文档包含内容

接口说明

调用url

请求方法(get/post)

请求参数,参数类型,请求参数说明

返回参数说明


如何测试http接口

url?参数1=value&参数2=value

这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接

例如:https://api.douban.com/v2/book/search?q=邹伟伟

还有一种就是入参是json串的,那就不能拼接参数了,需要借助工具来完成比如postman


 

get&post

get请求的话,直接在浏览器里输入后回车,直接请求,只要在浏览器里面直接能请求到的,都是get请求

如果是post的请求的话,就不行了,就得借助工具来发送。

GET请求和POST请求的区别:

1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

2、GET的URL会有长度上的限制,则POST的数据则可以非常大。

3、POST比GET安全,因为数据在地址栏上不可见。

4、一般get请求用来获取数据,post请求用来发送数据。(get 比如打开一个网页,打开蜂鸟论坛,后面都会带有参数,就是一个最基本的get请求.)

其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了


http状态码

1XX:指示信息--表示请求已接受,继续处理.

2XX:成功---表示请求已经被成功,接收,理解,接受

3XX:重定向---要完成请求必须进行更进一步的操作

4XX:客户端错误---请求有语法错误或请求无法实现.

5XX:服务器错误---服务器未能实现合法的请求


接口用例设计

一.通过性验证:首席保证这个接口功能是好用的,也就是正常通过性能测试,按照接口文档上的参数,进行正常传入,是否可以正确的返回参数.

二.参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功

三.接口安全:

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

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

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

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

四.异常验证:

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

接口用例包含的内容

咱们测试接口的话,肯定要写测试用例,写测试用例的话,就要有一个用例模板,那需要有哪些字段呢?

1、项目是哪个项目的

2、模块这个接口是属于哪个功能模块的

3、用例id

4、接口名称

5、用例标题用例是干嘛的

6、请求方式GET/POST

7、请求url,url地址

8、请求参数

9、前置条件有依赖的时候,比如说要测登录失败3次的

10、结果验证预期结果

11、请求报文

12、返回报文

13、测试结果通过/失败

14、测试人员

爱学习的学渣
原文地址:https://www.cnblogs.com/wmm007/p/7513798.html