看到这篇文章的同窗们必定在各类地方看到过“接口测试”这个词,那么到底接口测试是测什么?每一个人可能都有本身的答案;以前跟一个同为测试的朋友聊天,内容是他的一次面试经历,面试官问他是否作过接口测试,他给了否认的答案,最后offer的评级没有给到他的预期;当时我在想,若是是我,会怎样回答呢?
先跟你们分享下我对接口测试的理解
接口测试是一种测试类型,又是一种测试方法,它是不少个领域测试工做的一部分,同时它又能够经过不一样方式来执行;
功能测试
功能测试即咱们常说的黑盒测试,传统意义上的黑盒测试即验证开发出来的产品是否知足产品提出的产品需求说明书,而接口实际上也是产品需求的一部分;
例如:
产品需求:客户端输入一个词,点击按钮,即按时间倒叙展现这个词相关的新闻;
功能实现:客户端将用户输入的词拼成http请求,发往服务端接口,接口查找了这个词有关的新闻,而且按时间倒叙拼接成json,回复给客户端,客户端按顺序展现。
这个例子里,中心需求 ≈ 接口功能面试
安全测试
常常据说的安全测试很大程度上也属于接口测试的一部分,由于接口至关于内部服务器和外界的桥梁,若是桥上没有警卫,那任何人均可以进到内部服务器,这里说的警卫其实就是接口的安全校验;
举个已经烂了的例子:
接口功能:接收用户输入的词,到数据库查询这个词的解释;
这里涉及到将用户输入的词拼成sql的过程,接口要作的不只仅只拼接sql并执行,更重要的是过滤用户输入的异常字符串;sql
自动化测试
传统意义上的自动化是客户端经过框架自动执行黑盒case的过程,但接口测试一样能够自动化,看看下面的例子:
测试需求:服务端实现接收客户端输入的各类词语、句子、符号、单词等等信息,查询判断输入的类型、解释语句、或者判断这是个非法查询,客户端依据服务端返回的json展现结果。
这个需求须要很是多的输入case,好比各种短语、字符、全角、半角、空格、繁体、简体、韩语、日语等等,然而这些case有一些共同的检查点,好比:返回值要是json格式,必定要有类型字段、是否合法的bool值、若是合法的话要有解释语句内容;那么这个需求,咱们就能够经过自动化来验证需求;咱们只须要写好入参的case就行了;数据库
性能测试
通常来讲,性能测试即服务端接口的性能测试,这也是一个需求可否正常上线的重要关注点。
这里说的接口性能测试最重要的是下面两部分:
一、服务端能承受的最大压力;
二、正常负载时的稳定性;json
单元测试
这个理由很简单,服务端接口也是码代码,也有不一样的模块、类、函数,能够经过单测来保证那些服务端接口代码的底层函数的功能正确性,例如:解析json的函数、处理请求参数的函数、链接db的函数等等;安全
如今咱们回过头想一想上面那个面试官的问题:你作过接口测试吗?答案应该能讲很久。。。
本文分享自微信公众号 - 搜狗测试(SogouQA)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。服务器