接口测试 测试点分析
• 接口可用性
• 主要测试接口是否可用、接口是否存在、接口的协议类型。
• 测试用例要包括:
1.依据接口文档中给定的接口地址和协议方法能够访问到该接口。
2.使用错误的协议方法无法按照接口地址进行访问
3.使用正确的协议方法无法按照错误的接口地址进行访问。
• 输入输出参数个数及命名
• 主要测试接口包含的输入输出参数的个数以及各个参数的命名是否正确。
• 测试用例要包括:
1.依据接口文档检查输入参数的个数以及命名要和文档一致。
2.依据接口文档检查输出参数的个数以及命名要和文档一致(注意输出的正常参数和异常参数)。
3.输入错误的参数名,接口会报错,并有错误信息返回。
• 输入参数的必填项
• 主要测试接口对输入参数的可选与必输的要求。
• 测试用例中应包括:
1.按照接口文档对所有必输的输入项依次不输入,检查接口是否给予报错信息返回。
2.按照接口文档对所有选输的输入项依次检查是否可以不输入参数接口也有正确数据返回,无报错信息。
• 输入参数的合法性
• 主要对参数的录入规范要求进行检查。
• 测试用例要包括:
1.依据接口文档,有明确的要求的(如:只能由数字组成、在以下几个可
选值中选择、只能由字母组成、长度最多为多少、格式为时间格式)输
入参数,检查是否符合这些要求。
2.依据接口文档,没有明确要求的输入参数,依次测试长度超长、含有特殊字符、全角半角等情况。
3.检查接口是否报错,给予错误返回信息。
• 输出参数内容的正确性
• 主要对输出参数的内容是否和后台真实数据一致进行检查。
• 测试用例中应包括:
1.考虑多种输入参数的组合情况,依次测试在这些组合情况下接口返回的
数据的各字段内容是否正确,要具体检查每个字段的内容。一般通过与
后台数据库数据比较来进行检查。
2.考虑多种输入参数的组合情况,依次测试在这些组合情况下接口返回的数据中涉及输入参数的项,是否和最初输入的值一致。
• 接口实现功能验证
• 主要对接口操作的具体功能是否正常运转进行检查。
• 测试用例中应包括:
1.输入正确的参数,检查接口对应的要实现的后台功能是否正确运转。例如:对一个启动接口发送启动的命令,接口对应的后台系统能够正确启
动并返回正确的参数。
2.输入错误的参数,检查接口对应的要实现的后台功能是否没有运转。
• 接口文档规范性
• 主要对开发提供的接口文档是否规范准确进行检查。
• 测试用例中应包括:
1.接口文档中对于输入输出参数都有准确的命名,不存在模糊的情况。
2.接口文档对于每一个参数都有明确的类型说明,是否可选还是必输,是否有默认值。
3.接口文档对于每一个输入参数都要明确好基本的录入条件,比如长度最长多少、只能为数字还是字母、不能含有特殊字符等。
4.针对一个接口如果有多种类型的输出参数组合且参数的命名或个数有不同,这种情况,要在接口文档中罗列清晰,并明确指出出现这种类型的输出参数的条件。
• 接口传递参数的安全性
• 接口传递参数的加密显示
• 防止SQL注入攻击
SQL注入的原理
• 定义:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力。
• 由于没有对用户的输入数据进行必要的合法性判断,导致了攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得一些他想得到的数据。
• 举例:
• 在用户名输入框中输入:’or 1=1# ,密码随便输入,这时候的合成后的SQL查询语句为:
• select * from users where username='' or 1=1#' and password=md5('')
• 等价于:select * from users where username='' or 1=1
• 进而等价于:select * from users