1、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2、接口组成
接口都有那些部分组成呢?
首先,接口文档应该包含以下内容:
1、接口说明
2、调用url
3、请求方法(get\post)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
由接口文档可知,接口至少应有请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header。
标头 (header):是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔,一般存放cookie、token等信息
有同学问我header和入参有什么关系?它们不都是发送到服务器的参数吗?
OK,首先,它们确实都是发送到服务器里的参数,但它们是有区别的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。
3、为什么要做接口测试?
a) 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
b) 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
c) 现在很多系统前后端架构是分离的,从安全层面来说:
1)只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
2)前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
跟大家推荐一个学习资料分享群:175317069
4、接口测试工具
接口测试的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,本人首推的测试工具是postman和jmeter,接下来就简单介绍下如何使用这两款工具进行接口测试,其他工具本次暂不介绍。
1)、Postman是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。
jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。
注:以下用例中所用地址皆为本人在本地所搭的环境,外网无法访问,见谅。
①、获取用户信息:该接口用于通过userid获取用户信息
请求地址:http://192.168.1.102:8081/getuser
请求方式:POST/GET
入参:

出参:

postman中请求如下

jmeter中请求如下:


②、获取用户信息:需要添加header,Content-Type application/json
1.1 请求地址
http://192.168.1.102:8081/getuser2
1.2 请求方式
get/post
1.3 入参

1.4 出参

postman测试如下,本次入参为json类型,当然文档中没说非要用json,用其他方式也是可以的


jmeter测试如下


③、修改用户余额2
1.1 功能描述
功能描述:需要添加cookie,token token是写死的token12345
1.2 请求地址
http://192.168.1.102:8081/setmoney2
1.3 请求方式
Post
1.4 入参

1.5 出参

postman测试如下:

jmeter测试如下:



④文件上传
postman:

jmeter:


⑤、请求webService接口
请求webService接口需要用到的工具是SoapUI,如下图



在jmeter里请求如下:

结语:
跟大家推荐一个学习资料分享群:175317069,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!
网友评论