测试中,接口测试的必要性与接口测试的基础用例设计

1、 什么是接口,为什么要做接口测试(接口测试的必要性)
接口:
现在接口一般分为两种,一种程序内接口,另一种是系统对外的接口,程序内接口就是我们开发一个系统或者程序,只供我们程序内使用,而对外接口就是我们需要提供给外部用的接口,比如说我们要的第三方登录(微信登陆,或者微博登陆)或者支付,这种就是我们调取的微信或者微博给我们提供的接口。
为什么要做接口测试呢,因为接口主要是给我们提供数据交换的,而现在呢大多数的程序都是前后端分离的形式,前端出页面,后端出接口,前端调取后端提供的接口,通过接口来做前后端的数据交换,而我们现在只是依靠前端的限制并不能满足我们现在的安全要求,所以后端呢也同样需要作出相应的限制。
举个例子:比如测试用户注册功能,规定用户名为6~18个字符,包含字母(区分大小写)、数字、下划线。首先功能测试时肯定会对用户名规则进行测试,比如输入20个字符、输入特殊字符等,但这些可能只是在前端做了校验,后端可能没做校验,如果有人通过抓包得到接口,绕过前端校验直接发送到后端怎么办呢?试想一下,如果用户名和密码未在后端做校验,而有人又绕过前端校验的话,那用户名和密码不就可以随便输了吗?如果是登录可能会通过SQL注入等手段来随意登录,甚至可以获取管理员权限。这样我们的数据系统的一切就不暴露在人家眼前,毫无隐私可言。所以这时接口测试的重要性就体现出来了。(当然这个只是我的看法)
做接口测试的优点:
①、可以发现很多在页面上操作发现不了的bug
②、检查系统的异常处理能力
③、检查系统的安全性、稳定性
④、前端随便变,接口测好了,后端不用变

2、接口测试的基础用例设计
①、通过性验证:首先要保证这个接口功能是正常可用的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
②、参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品。而商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品。而商品id,是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
③、接口安全:
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,或者我把钱改成负数,是不是我的余额还要增加?
2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
④、异常验证:
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

3、测试工具
接口测试的工具很多,比如 postman、RESTClient、jmeter、SoapUI等,首推的测试工具是postman和jmeter这两款。