课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在开发软件或者是应用系统的时候,为了能够达到更好的效果,一般来说都对API的设置有所要求,下面我们就一起来了解一下,关于API的测试方法都有哪些。
简单来说,API实际是一种服务,它可以帮助两种不同的应用程序实现顺畅的相互通信。大多数API被用于抽象各种业务逻辑,并引导到应用程序访问其对应的数据库。
从逻辑上讲,我们可以将整个软件系统分为三个层次:
1. 表示层 - 这是展示给终用户的某个用户界面(GUI)。质量保证人员(Quality Assurance,QA)对于该层次进行功能测试。
2. 业务层 - 这是通过编写逻辑代码,来实现各种应用的用户接口。就实现技术而言,各类代码和算法属于在这个层面上。当然API也处于这个层次。
3. 数据库层 - 存储的是应用程序的各种数据信息。
换句话说,API是软件互联世界的中枢神经。它通过运用各种工具、协议、标准和代码集,将数字世界“粘合”在一起。由于API不但动态灵活,而且功能强大,因此它让各种软件产品更为简便、更具有移动性,不同组件能够以一种无缝集成的方式进行协同运作。那么,针对API的测试则可以从服务级别和集成级别两个方面进行展开。
API的测试策略
就不同人员的关注点而言,开发人员一般倾向于只测试他们正在开发的软件功能;一般测试人员则只负责做功能性的单元测试、以及端到端的协同测试。然而在如今DevOps的持续开发与测试环节中,测试人员更应该专注于在软件使用过程中所进行的各种API调用,以便观察和记录在系统做出响应之前所接收的不同输出。而且,其中重要的是:应测试API在不同条件下是否能返回正确的响应或输出值。一般而言,此类输出可以被分为如下三类:
通过(成功)或失败状态
数据或信息
调用另一个API
当然,也可能根本没有任何输出、或发生了完全不可预测的结果。因此,测试人员就要在整个应用程序的开发过程中起到关键性的作用,他们需要通过数据驱动型测试,来提高整体测试的覆盖率和准确性。
API测试的类型
正如我们通常需要根据目标产品具有哪些功能,提前设定好进行何种类型的测试一样,测试人员往往也需要先确定好将在API上执行哪种类型的测试。如下是常见的API测试种类:
单元测试 - 测试单个操作的功能。例如,Google地图通过提供地理编码类型的API,以获取任意位置的经度和纬度。其后台实际上是将地址信息作为输入,并返回纬度和经度的数值。那么在针对该API的单元测试中,测试人员可以通过输入不同的位置信息来验证其各种输出结果。
功能测试 - 此类测试主要关注于API的本身功能,即:通过各种测试用例,来验证HTTP响应的程序代码、响应的准确性、API可能返回的任何错误代码等方面。
负载测试 – 在有多个用户同时使用某个应用程序,并引发了API需要处理大量数据的情况下,此类测试是必需的。它通过增加API的调用频率,以暴露可能出现的崩溃、或无法“承压”等状况。
安全测试 - 由于API会被用于在两个不同的应用程序之间创建连接,而使用API的核心目的就是为了将某个应用程序的数据库相对于另一个进行抽象或隐藏,因此安全测试尤为重要。测试用例一般包括:授权检查、会话管理等方面。
互操作性测试 – 此类测试的目的是保证API能够被应用程序按需访问到,例如SOAP API就属于此类。
WS(Web Service)合规性测试 – 在对于API的测试过程中,我们应当确保诸如:WS-Addressing、WS-Discovery、WS-Federation、WS-Policy、WS-Security和WS-Trust等标准能够被正确地采用和实施。
渗透测试 - 这是从外部攻击源来查找API的漏洞。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。