1、什么是接口测试?
测试人员通常所说的“接口测试”是针对系统各组件之间接口的一种测试,它属于功能测试。接口能测出普通界面操作难以发现的问题。如,我们都知道系统是由前端后端组成,一些数据在前端做了校验,后端同样也需要校验才能保证安全,界面操作显然只能检查到前端校验这一层,只有直接面对前后端之间的该接口才能检验出后端是否也做了校验。
2、为什么要做接口测试?
a) 如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
b) 接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。
c) 现在很多系统前后端架构是分离的,从安全层面来说:
1、只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。
2、前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
3、接口测试发现的问题?
1)可以发现很多页面操作发现不了的问题;
2)检查系统的异常处理能力;
3)检查系统的安全性、稳定性;
4)前端随便变,接口测好了,后端不用变;
4、接口测试的流程?
1)需求评审,熟悉业务和需求
2)开发提供接口文档
3)编写接口测试用例
4) 用例评审
5)提测后开始测试
6)提交测试报告
5、接口文档 是接口测试的参照,至少包括:
1)接口说明
2)调用url
3)请求方法(get\post ……)
4)请求参数、参数类型、请求参数说明
5)返回参数说明
6、接口测试用例设计
(1)正确性验证:首先保证接口好用,按文档正常传入,查看是否可以返回正确的结果。
(2)参数组合: 按接口文档中对参数的要求进行有目的的组合,比如必填未填是否通过,标志类参数值的切换是否能对应正确的功能等。(这部分很关键) (3)接口安全: 1、绕过正常值验证。 2、绕过身份授权验证。 3、参数是否加密,加密规则是否容易破解。 4、密码安全规则,密码的复杂程度校验。
(4)异常验证:不按照接口文档上的要求输入参数,来验证接口对异常情况的反应。
7、接口测试用例模板 (可根据项目实际情况设计增减)
1、项目 测试针对哪个项目
2、模块 哪个功能模块
3、用例id
4、接口名称
5、用例标题 测试用途概括
6、请求方式 GET/POST
7、请求url URL地址
8、请求参数
9、前置条件 执行当前请求依赖的条件,不满足就不能正确执行
10、结果验证 预期结果
11、请求报文 可以不写
12、返回报文 一定要写,这里应该是你请求返回的真实结果
13、测试结果 通过/失败
14、测试人员
8、测试http接口
请求常见有Get请求和Post请求。Get请求通常用来接收数据,Post请求通常用来发送数据;测Get请求可用浏览器完成,参数都可以写在URL里面,测Post请求需要借助工具如Postman,因为客户端需要提供给服务器的信息较多,你要写body传输大量数据。
接口调用有两种传参方式:key-value形式,Json串传参形式。 key-value形式可以把参数拼接在url的后面由?相连,多个参数之间用&相连;如url?parameter1=key1¶meter2=key2… ;Json串传参不能把参数直接连在url中,需要写在请求的body里面,可借助工具Postman,打开请求的body写入Json格式参数(由花括号括起来的‘键:值’对)如 { “count”: 1, “start”: 0, “total”: 1 }
9、我们怎么做接口测试?
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、Java+httpclient、robotframework+httplibrary等。