【转载】测试移动解决方案的 API 后端(Testing the API Backend of your Mobile Solution)

2014-03-20  张丽丽 

如果你正在开发一个移动的应用,非常高的可能性这个应用是需要跟后端的 Web API 进行交互的,这个 API 可能是你们团队自己开发的,或者是第三方提供的。毫无疑问,在过去的这两三年里,API 已经成为企业和应用的催化剂,通过 API 可瞬间让设备和平台更具灵活性。

在这片文章中,我们将谈谈关于 API 的质量以及如何通过 SmartBear 工具来确保 API 的质量

背景

一个移动应用(原生,混合或者网页),通过标准协议与其后端API交互,大多数基于HTTP和REST协议,使用JSON或者XML格式的数据。这些API可能是你们自己的或者来自于任何一个第三方(比如说Twitter或者Google Maps),可以直接从你的应用中调用或者通过你们的API后端间接调用:indirect API integration

间接集成有如下几个优势:

  • 你的API后端选择返回给手机客户端的数据,减少宽带需求。
  • 你可以更改第三方API,而不需更新手机应用
  • 你可以在第三方API集中处理和隐藏错误和异常
  • 你可以在不影响客户的情况下,你可以换掉第三方API提供者(当然新的API提供者要提供一样的功能)
  • 你可以再API后端处理身份认证及API密钥--向客户隐藏逻辑

直接集成有如下优势:

  • 第三方提供者的响应不需要通过中介,可以减少延迟
  • 可能使用对许多第三方API提供者开放的用户库
  • 更容易使用身份认证登入机制

你还可以扩展更多优劣势——最终根据你的需求和资源归纳。

API后端自身既可以为Node.js或者Grails应用服务,也可以用于基于J2EE或.NET的面向服务的应用。底层数据有可以用关系型数据库操作,可以用NoSQL存储,也可以带有REST API。后端程序可以运行在本地服务器,也可以上传到虚拟云服务中。

无论你选择怎样的解决方案,你都需要解决API的测试和性能问题。现在让我们具体说说。

1.功能测试 
最初,API测试将专注于功能测试,确保预期和非预期的输入结果正确。您可以使用一个关键字驱动的测试方法,使测试者可以在更高层次上定义测试范例来进行测试。另外,可以使用数据驱动的测试,测试大的输入和期望的输出数据集。

2.性能测试 
性能测试是必须的,以此来保证你设计的API在高并发下的响应能力,只有保证了性能,才可以使得你的API有较好的多用户承载能力。在测试的时候你可以对你的API有个预期承受能力估值 

如何对 API 进行代码质量测试

我们都知道代码的质量是整个项目开始时就要非常注意的一个方面。需求需要进行评审、UI 模型需要进行测试、积压的问题需要优先处理、架构需要被评估等等。

如果你使用敏捷开发,你将在你的整个应用生命周期中进行不断的迭代。如果你使用瀑布流模型,那么前期你需要做更多的工作。不管是什么方式,你的 API 设计都应该得到绝对的重视,包括技术选择、数据格式、安全、认证和管理等等。

单元测试和代码评审是在实际编码阶段中比较常用的质量手段。但你必须确保你把各个部分组合起来以正确的方式来测试 API。你可以看到 API 的测试是作为你的类、对象、脚本、数据存储的集成测试。

3.安全测试

安全测试是额外重要的.APIs常常可以直接访问核心数据与那些组成你商业核心价值的逻辑.你必须确保你的APIs可以避免一般的攻击,比如SQL注入,错误的数据输入,越界.

确认当系统遇到环境错误或者输入错误时不会向那些潜在的恶意的人员发送详细的系统信息,以防止被用来控制系统.对于性能测试.重新用"功能测试去"测试"安全测试"(即功能安全测试)是有好处的.它可以在你进行功能测试的时候扫描你的安全缺陷(比如在你的客户端验证完你的APIs后进行SQL漏洞扫描).

所有的这些测试(功能,性能,安全)需要被创建的尽可能的早,不断的运行你那些还在发展与不断成熟的APIs.包括你自己的单一独立的测试执行单元.(我也不太懂这句,,,,-_-!!再查查)

确保每周回来看看,了解第三方APIs如何复杂化了你对质量保证的努力,而且可以帮助你监控你部署后的APIs....

本文是一篇有英文文档翻译的,转载过来为了收藏学习。

398°/3983 人阅读/0 条评论 发表评论

登录 后发表评论