看到这里,有一部分同学就会说,不对呀。我们的服务器端还有数据库交互部分,以及文件处理和它使用的三方件等功能。因为数据库可以用数据库客户端去验证数据,三方件使用前供应商已经测试过了,所以不在这次讨论的话题里。文件服务器,大部分也是通过API 交换数据的,所以我们就把今天的话题简化为如何做好API测试。
一.API测试我们以HTTP请求和响应的API为例。关于HTTP协议,请自行搜索维基百科。今天我们重点讲解下API测试。
1.从API文档哪里获取要测试的API,分析请求里的参数。如果没有文档,自行抓包分析。
2.针对不同参数设计测试用例进行测试。这里要注意异常场景一定要设计。比如空字符串,最大值,最小值,0,空等这些小参数可以挖掘开发bug的好case。
3.针对设计的测试用例,使用Postman,Jmeter,API Fox进行测试。当然也可以写一些脚本一劳永逸的去执行测试。HTTP Runner,Request,Locust等都可以很方便的写脚本去执行它。
4.定期维护执行就可以了。
5.关于API工具参数化方式以及参数依赖问题,不同工具的参数化方式不同,可以针对选择的工具查看帮助文档去进行验证使用。这些网上有很多技术文章大家自行搜索。
二.除了API测试还要进行的测试就是安全测试。有几个比较经典的安全测试场景。
1.越权,不同权限的人可访问的功能不同时,直接使用不同权限的人的token去测试API看下是否可以越权。另外针对参数中设计权限的参数,修改成高级别的角色,看下是否可以越权成功。
2.参数校验。我印象很深刻的一个内存溢出bug是参数int64的,但是开发写代码时没注意,不同地方参数设计不同。有的设计成int32位了。接口输入 最大的Int32+1,直接内存溢出了。另外大部分前端的数据校验都应该在后台也有,比如特殊字符校验等。XSS等问题也需要验证。
3.SQL注入。比如在参数里输入1=1;drop table这样的语句到参数里,看下是否可以执行成功。
4.敏感信息泄漏。返回的客户敏感信息都应该加密处理。异常信息里不应该包含SQL语句等常见问题。
5.Session和Token鉴权的时候,session ID和token 登录前后要发生变化。这个也是很关键的校验点。
6.安全验证点太多了,这里不再赘述了。
除了API测试,安全测试,性能测试也是服务器端测试里必须要关注的。这里就不展开说明性能测试了。
其他大家测试服务器端还有哪些类型的测试?