一、接口概念:
(1)从功能上来说:接口就是一个黑盒子;输入数据→接口→输出数据
(2)从数据流方面来说:连接前端和数据库等后端的纽带,在二者之间传递、处理数据。
二、接口的分类:
(1)系统间的接口:系统A↔系统B
(2)服务之间的接口:应用层↔服务层↔数据层
三、接口测试用例设计:接口测试中,最重要的部分就是“入参”,即请求参数的组合情况;参数的返回结果取决于其请求参数。
1、接口测试用例设计的维度:
(1):参数校验------请求参数组合形式,决定了接口的不同返回结果。尽可能多的覆盖参数组合场景。
a ----梳理逻辑:分解接口文档和代码逻辑得到 关键数据--URL,参数要求。
b----分解接口要点:参数本身(必填存在、不存在),参数值类型,参数值长度,参数值SQL注入
c---Xmind设计测试用例框架
d----生成具体用例数据
(2):逻辑校验
(3)SQL注入:在不安全控件内输入一些SQL语句或其他数据库的语句,从而欺骗服务器执行,进而影响数据库中的数据。
示例:查询数据接口---https://localhost:8081/api/search_name;请求参数:content string(8);请求方式:get
对应数据库查询语句:‘SELECT * from table_name where colum_name like '+"'%"+search_name+"%'"
入参:"content='or'1=1'or'",且接口未对特殊字符作处理。
查询结果为:select * from table_name where colum_name like '%' or '1=1' or '%';将返回表中所有数据。
二、、引入自动化解决测试中需要不断重复的部分:
1、手工测试接口步骤: Excel准备测试用例 →手工获取测试数据→Postman等测试工具发送送请求→人工比较请求结果→请求成功:更新测试用例;请求失败,查找原因。
以上过程中:获取测试数据、使用测试工具发送请求、比较请求结果这些步骤重复,可考虑引入自动化代替。
2、自动化实现步骤:(1)使用python从Excel中自动读取数据(2)应用python requests模块发送接口请求 (3)应用python unittest断言返回结果 。
3、接口核心部件:地址、入参、返回包
4、接口自动化检查等级:(1)HTTP Code (2)Interface ReturnCode (3) Interface 结构完整性、参数完整性、特殊参数值检查。