当今的互联网时代,需要越来越开放,也更需要越来越“兼容”。所谓的开放,是一些通用的平台(比如银联、微信或支付宝等),开放出来可以供其他的运营平台进行调用,同时要提供一些标准的使用规则,可以供各种不同的系统和平台进行相互的数据传输及处理,这就是所谓的“兼容”。
接口技术刚好满足了这两个特点要求,它不仅能够有效的保护自身系统的安全性和完整性不受到危害的同时,可以把接口的规则和要求以及处理的结果“公诸于众”,让其他的产品及平台能够和这些通用平台进行数据的通讯,既保证了安全性,又扩展了平台的应用范围。而对于公司产品内部而言,用接口进行设计实现,也可以很大程度上的提升产品实现的灵活性,适应各种不同情况的处理逻辑变更问题。所以接口测试不光是我们系统内部之间的相互调用,可能还有系统之间,平台和平台之间的,这些都是有可能的。所以基于以上这样的IT产品的技术应用背景,接口测试工作势在必行,但这方面的测试人才储备和培养是远远不够的,因为企业需求大,而且薪资待遇高,所以就成为现在最炙手可热的测试岗位之一。
从技术层面上而言,接口测试的意义主要是检查接口的实现和接口测设计是否相一致。接口测试的用例设计主要是考虑到接口的请求地址、请求类型、请求参数等等。
在具体设计接口测试用例时,先要对接口测试需求进行挖掘和分析,很多人认为接口测试用例很简单,就是按照要求构造正常的参数,异常的参数就可以了。这些只能达到一个接口是否可用的最低测试标准。如果我们希望设计完备的接口测试用例,那就不能只是简单的考虑参数的正确和错误,而应该从接口测试的整体进行全面的分析。
接口测试包括独立接口的测试、联调接口的测试、接口性能测试、接口安全性测试等多个方面。最近我们正在给企业做的一个项目就是接口性能测试。
所以不能简单的把接口测试用例只定位在独立接口功能测试层面上,这个是不充分的。要考虑是否存在大规模的接口并发调用问题。还有就是接口的安全性,因为现在有很多抓包工具,如果我们在发送接口请求时没有对敏感或重要数据进行安全性处理的话,经过抓包可以获取相关的账号或密码信息,那就是很恐怖了。
而且每一个接口的设计细节还有很多的不同,比如有些接口参数是放在header中而不是body体中,有些是https协议,不是http协议,有些接口还需要有cookie或session的认证才能发送成功,有些认证参数是静态的,有些却是动态生成的,有些接口在执行时,需要用到其他接口的返回结果,等等。诸如各种各样的接口设计分析问题,都是要在接口测试需求分析和用例设计工作中去解决的。