一.接口 在软件工程中,接口泛指供别人调用的方法或者函数。主要是子模块或者子系统间交互并相互作用的部分。接口测试是指针对模块或系统间接口进行的测试 接口分为程序内部的接口(方法与方法之间,模块与模块之间的交互)何系统对外的接口。 接口的分类: webservice接口, 是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试; http api接口,是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
二.常见协议 tcp/ip协议 http/https、websocket、json、xml webservice(soap/wsdl)、restservice、xmpp、自定义协议 hession、dubbo
三.接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程, 以及系统间的相互逻辑依赖关系等 接口测试分类: 模块之间的接口 系统对外部系统提供的接口 内部子系统的服务之间的接口 接口测试场景: 手机APP 客户端软件 web网站API:微信接口、新浪微博接口等等 公司内部系统API:订单接口需要调用用户资金接口查询余额
四.怎样做接口测试 由于我们的项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
一个接口通常是有输入输出的,输入就是我们常见的入参,输出有时有,有时没有。调用相关接口,接口会执行相关处理逻辑。接口测试的用例设计,主要从输入和接口处理两方面考虑。针对输入,可按照参数类型进行设计;针对接口处理,可按照逻辑进行用例设计;针对输出,可根据结果进行分析设计,接口正常情况下是有返回的,那么如果接口不返回呢?也就是说接口超时后的处理也是测试需要考虑的部分,如果未进行超时处理,导致整个流程阻塞;超时后又收到接口返回,导致逻辑出现错乱。
五. 接口测试发现的典型问题 传入参数处理不当,导致程序crash; 类型溢出,导致数据读出和写入不一致; 因对象权限未进行校验,可以访问其他用户敏感信息; 状态处理不当,导致逻辑出现错乱; 逻辑校验不完善,可利用漏洞获取非正当利益
