接口知识小结

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、测试人员


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,966评论 25 709
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 10,560评论 0 12
  • 第一章 茫茫宇宙中,万物都带灵性 清晨,第一缕阳光普照大地,晴空万里,万物苏醒如沐浴在温泉中,露珠在小草叶上打滚...
    淑女_2e7d阅读 2,778评论 4 8
  • 可怕的现实,经受不了的诱惑。你想宠爱付出,也许你的退让变成被践踏,无论怎么做都是错的说和不说也是错的。这个社会的衡...
    喝前摇一摇阅读 3,398评论 0 0

友情链接更多精彩内容