接口测试为什么会如此重要呢?
主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目,这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。
面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。
可以发现很多页面操作发现不了的问题
检查系统的异常处理能力
检查系统的安全性、稳定性
前端随便变,接口测好了,后端不用变
可以测试并发情况,一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
可以修改请求参数,突破前端页面输入限制(如金额),检查系统(接口)有没有进行校验
一般的企业,都会由开发或者对应的技术负责人员编写接口文档,里面会注明接口相关的地址、参数类型、方法、输入、输出等信息,如果没有,想办法获取。。。
需求评审,熟悉业务和需求
开发提供接口文档
编写接口测试用例
用例评审
提测后开始测试
提交测试报告
1、接口说明
2、调用url
3、请求方法(get\post ……)
4、请求参数、参数类型、请求参数说明
5、返回参数说明
6、支持格式(xml/json)
通过性验证:首先保证接口好用,按文档正常传入,查看是否可以返回正确的结果。
参数组合:按接口文档中对参数的要求进行有目的的组合,比如必填未填是否通过,标志类参数值的切换是否能对应正确的功能等。(这部分很关键)
接口安全:
1)、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
2)、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3)、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4)、密码安全规则,密码的复杂程度校验
异常验证
不按照接口文档上的要求输入参数,来验证接口对异常情况的反应。
性能测试
接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别
1、项目 测试针对哪个项目
2、模块 哪个功能模块
3、用例id
4、接口名称
5、用例标题 测试用途概括
6、请求方式 GET/POST
7、请求url URL地址
8、请求参数
9、前置条件 执行当前请求依赖的条件,不满足就不能正确执行
10、结果验证 预期结果
11、请求报文 可以不写
12、返回报文 一定要写,这里应该是你请求返回的真实结果
13、测试结果 通过/失败
14、测试人员
接口测试用例编排
1、特殊值处理不当导致程序异常退出或者崩溃
2、类型边界溢出,导致数据读出和写入不一致
3、取值边界外值未返回正确的错误信息
4、参数 为null或空字符串“”等
5、权限未处理,可以访问其他用户的信息
例如:无权限可以访问,或者 一般用户可以访问管理员权限)
6、逻辑校验不完善,可利用漏洞获取非正当利益
例如:某网站兑换1块钱需要100币,当小于100币时调用后台 接口是否可以兑换
例如:购物结算时为100元,调用 后台接口设为0元
7、状态处理不当,导致逻辑出现错误(可能程序员123都搞懵了)
8、数组类型item个数为0或者item重复时程序异常退出
9、超时问题,超时后处理
10、潜在性能问题(后台提交处理或者把性能风险提前提出)
不需要像测http接口那样拼报文,直接把wsdl地址或wsdl文件(这两个都由开发人员提供)填写或导入到工具SoapUI里面,工具里可显示所有相关接口或报文,直接填入参数发送请求参照接口文档查看结果即可。
Cookie是存在于本地的一个键值对,Session是存在于服务器端的一个键值对,通常保存在数据库或缓存里。Cookie和Session在第一次发送某个请求时成对生成,两端都会记录下生成的时间,超出既定的时限后便会自动删除。当请求在时限内再次发出后,Cookie和Session两者会相互比对,匹配上了便执行某些操作,匹配不上则不允许执行某些操作,以此实现快速处理,它们并不是孤立作用的。
接口测试的内容就讲到这里啦!如有需要了解软件测试相关的其他内容,可到「 主页 」进行查看学习~
同时,有不理解或有误需要补充的地方也欢迎评论区共同探讨大家一起交流技术