API 自动化测试
简介
主要用于Restful风格接口测试,指针对模块或系统间接口进行的测试
-
单一接口测试
-
多接口组合逻辑测试
-
定时自动,生成测试报告
-
失败通知
测试用例断言
-
返回状态码
-
返回结果
-
超时时间
基础应用需求
-
Postman 测试用例编写
-
Newman 执行测试用例命令行工具
-
Jenkins 自动化集成
-
Git 测试用例成果物管理
-
Allure 生成测试报告
-
TestLink 测试用例管理
目标
-
定时自动或手动触发测试,并生成测试报告
-
测试结果有异常情况通知相关人员
-
通过环境变量自适配生产或测试环境
-
可自定义批量传入参数
具体测试
接口测试经常遇到的bug和问题
(1)传入参数处理不当,导致程序crash; n/0; 参数边界
(2)类型溢出,导致数据读出和写入不一致;
(3)因对象权限未进行校验,可以访问其他用户敏感信息;
(4)状态处理不当,导致逻辑出现错乱;
(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
接口测试设计
1)、通用接口用例设计
①、通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。
②、参数组合:
③、接口安全:
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4、密码安全规则,密码的复杂程度校验
④、异常验证:
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的 写11。总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
2)、根据业务逻辑来设计用例
Jenkins
作为CI , 主要用于测试整体流程的编排,管理。
-
git 拉取测试用例
-
newman 执行测试用例
-
配置模版邮件
-
Allure 生成测试报告