接口测试做什么?
接口测试主要检查接口返回的接口数据是否正确、是否和接口文档中定义的一致。
接口测试用例怎么写?
接口测试用例可以参照黑盒测试用例规则来编写,如边界值法、等价类划分法、正交试验法等。
下面以登录功能为例进行介绍,如登录的接口为www.kuaile.com/login/ajax_login?loginname=student1&password=123456
1.功能用例设计
1)功能是否正常,如登陆功能的接口是否能够实现
2)功能是否按照接口文档来实现,如登陆功能两个参数为loginname和password,将loginname改成username仍然可以登录,这是错误的
2.逻辑用例设计
1)是否依赖业务,如下单业务依赖登录业务,下单时需要检验header的cookie是否有正确的登录信息,否则服务器应该报错
3.异常测试用例设计
1)参数异常
a)关键字参数。将参数写成mysql、Java、html等的关键字,查看服务端是否能够正常转码处理。如将"loginname"改成"echo",php的关键字,若返回“账户名不能为空”,则说明服务端进行了正常的判断,这是没有问题的
b)参数为空。如"loginname=student1"改成“=student1”,去掉参数,查看服务器返回的数据是否给出正确的提示,如:“账户名不能为空”
c)多/少参数。如添加一个email参数,接口变成:www.kuaile.com/login/ajax_login?loginname=student1&password=123456&email=student01@qq.com,查看服务端返回数据,若返回成功,则是有问题的;或删掉一个关键字,接口变成www.kuaile.com/login/ajax_login?password=123456,查看服务器是否给与验证
d)错误参数。如将"password"参数改成"pwd",查看服务器是否给与验证
2)数据异常
a)关键字数据。如将账户名数据"student1"改成mysql关键字"NULL",提交,若服务器返回“用户不存在”,则是正确的,说明服务器将"NULL"转义成字符,当成一个用户处理
b)数据为空。如将账户名数据删除,"loginname=student1"改成"=loginname=",查看服务器返回的数据是否给出正确的提示
c)长度不一致。数据库建表时会对字段长度进行限制,若超出字段最长则会报错,接口应该进行字段长度的验证。如将账户名数据输入得很长,看服务端是否给出正确的提示。如果给出“用户不存在”,则是错误的,说明没有对长度加以判断
d)错误数据。如输入错误的用户信息,查看服务端是否返回正确的提示
4.安全测试用例设计
1)cookie。如把cookie信息删除,查看服务器是否进行了验证,如果服务器仍能成功返回数据,则是错误的
2)header。如把header信息删除,查看服务器是否进行了验证,如果服务器仍能成功返回数据,则是错误的
3)唯一识别码