API(应用程序接口)正逐渐成为很多软件开发的中心,不同的系统、应用通过API连接、传输数据、互相交互。越多越多的系统从MVC架构转向微服务架构,各个微服务之间通过Rest API进行交互。对于企业来说,相比产品开发完成后,进行UI测试,API测试更容易发现问题,更可能在早期阶段发现问题。并且API测试成本更低,更容易实现自动化测试,并且有更多的成熟的自动化测试工具可以使用,比如RestBird、Postman、SmartBear等,大大提高效率。通过本文你可以了解到:
API应用一般分为三层:数据层、服务(API)层、展现(UI)层。API层,即业务逻辑层,一般包括用户业务逻辑、用户和服务、数据、应用功能交互规则。API直接触及数据层和展现层,API测试是开发测试团队可持续、自动化测试最佳切入点。有助于大幅提高软件交付质量、系统稳定性。目前,传统测试更聚焦UI层测试,但接口测试的优势和价值目前已经被普遍认可。
一个案例
1)下面是UI级别测试示例:一个相当简单和普通的测试。访问一个网站、填写表单、提交表单,认证后进入下一个页面。
在UI测试层面,即使最简单的测试也会面临很多的挑战。首先,受到浏览器和网络连接的限制,每次运行测试的时候,都需要等浏览器加载网站。其次,自动化测试,页面中的任何元素都可能改变,造成测试失败。有时候界面错误造成无法测试核心服务逻辑。这些但严重耗费测试工程师时间和拖慢项目进度。如果你想把所有可能性全部测试一遍,可能会出现上万个排列组合。
2)通过API接口测试,整个测试只有一个步骤。
1)单元测试:测试领域有很多人喜欢定义概念,给大家带来很多困扰。API单元测试最简单的定义,通过一个简单的请求,获得一个或者多个响应。通常这种测试可以通过一个命令行或者使用Restbird API工具快速完成。
2)集成测试:API接口是内部系统、三方服务集成的核心,API接口测试最频繁、最重要的往往是集成测试。
3)端到端测试:端到端测试可以帮助我们验证几个不同API连接之间的数据和信息流。
4)性能测试:API请求响应时间、事务响应时间、并发用户数、吞吐量、TPS、资源利用率等。API性能是系统整体性能等基石。
相比UI测试,API更容易实现自动化测试,从而大大提高测试效率,提高研发交付质量。你可以自己撰写测试脚本,也可以使用第三方API测试工具,如Restbird、Postman、Runsope、Curl、Cfix、Check等,这些三方工具可以很好的帮助工程师实现自动化测试。比如Restbird不仅支持http的get、put、post、delete、head、patch、options等请求外;还支持Python、JAVAScript、Golang编程;svn、git版本管理、CI/CD集成。合理运用三方工具,能快速实现API测试自动化,并极大提高API测试效率。