虫师的接口自动化学习笔记(虫师原创----http://fnng.cnblogs.com)
web应用接口测试分为:
1、模块接口测试:主要测试模块之间的调用与返回
2、web接口:
a、服务器接口:测试浏览器与服务器的接口
b、外部接口:指调用的接口由第三方系统提供
接口测试的意义:
1、保证系统的稳定性
2、将bug控制在项目前期
3、检查服务器的异常处理能力
我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时间如果只站在功能的层面时行测试,就很难发现一些安全的问题。不以前功能为入口的接口测试就会发挥出它的作用。
举例,某接口默认需要传三个参数,因为前端页面控制三个参数都不能为空。但是直接调用该接口时只传了一个参数,而接口并没有对只传一个参数的情况进行处理,结果将直接抛出了系统错误信息。对于这个错误而言,只从功能测试层面进行测试是无法测到的。
接口测试要点
1、检查接口返回的数据是否与预期的结果一致。
2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如上面的例子是支持整数,传递的是小数或字符串呢?
3、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。
4、接口的性能,接口处理数据的时间也是测试的一个方面。牵扯到内部就是算法与代码的优化。
5、接口的安全性,如果是外部接口的话,这点尤为重要。
web接口测试要点:
1、请求是否正确,默认请求成功是200,如果请求错误也能返回404、500 等。
2、检查返回数据的正确性与格式;json 是一种非常创建的格式。
3、接口的安全性,一般web 都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
4、接口的性能,web 接口同样注重性能,这直接影响用户的使用体验。如果我搜索一个关键字半天结果都没返回,果断弃用。
接口自动化测试过程:
1、接口测试项目先向测试数据库中插入测试数据
2、调用被测系统接口
3、系统的接口根据入参向测试数据库中进行查询并得到信息。
4、系统的接口得到查询结果,并将结果返回。
5、通过单元测试框架断言接口返回的数据