1.为什么要做接口测试?由于当今系统的复杂度越来越高,传统测试方法的成本急剧增加,测试效率急剧下降,因此需要进行接口测试。同时,接口测试相对容易实现自动化持续集成,相对UI自动化相对稳定,可以减少人工回归测试的人力成本和时间,缩短测试周期,支持后台快速发布。端要求。接口持续集成是低成本高回报的根本原因。现在很多系统都有独立的前端和后端架构。从安全的角度来说,仅仅依靠前端做限制已经不能满足系统的安全要求了(前端太容易绕过),后端也需要管控。在这种情况下,需要从接口层面进行验证。还需要验证前后端传输、日志打印等信息是否加密传输,特别是涉及用户隐私信息时,如身份证、银行卡等。接口测试目的就是测试接口,尤其是那些与系统关联的外部接口。测试的重点是检查数据交换、传输和控制管理过程,包括处理的数量。外部接口测试一般被视为系统测试。2.如何进行接口测试可以使用接口测试工具来测试接口。接口测试工具包括:apipost、jmeter等。在开始做接口测试之前,需要了解接口的分类。这里的分类主要是HTTP请求方式的分类。下面有很多分类。最常用的方法是GET/POST/PUT/DELETE,工作中的接口多为GET和POST方法。三、接口测试的意义1、更早发现问题随着敏捷测试的盛行,我们都知道测试工作应该尽早参与到项目开发周期中,因为越早发现bug,修复成本越低。但是,功能测试一般要等到系统提供可测试的UI界面后才能进行,而单元测试对专业性和人力成本要求高,所以选择界面测试来更早的介入测试。接口测试可以在功能接口开发之前,对系统的接口进行测试,以便更早发现问题,以更低的成本修复。2.缩短产品周期。早期介入接口测试,可以更早发现和解决bug,从而减少后期功能测试阶段遗留的bug数量,最终缩短整个项目的上线时间,有利于实现敏捷测试。3、发现下层问题系统的一些bug,如果想通过UI层的功能测试,会比较困难,或者测试数据和测试条件的构建很复杂,接口测试可以覆盖底层代码逻辑更简单更全面,从而发现一些隐藏的bug。尤其是一些异常、极端的情况,通过接口测试很容易验证。四、接口测试用例设计首先,明确出发点。和所有的测试一样,接口测试的出发点是你要证明被测程序是错误的。在这个起点的指引下,你的设计行为会努力往这个方向发展,更容易发现问题,避免偏离大方向。 其次,选择一个好的测试对象。对于一个要做接口测试的系统来说,选择一个好的测试对象是接口测试的关键。一个系统有无数个接口。如果每个接口都单独测试,会是一件很痛苦的事情。它不仅麻烦和浪费,而且内部接口的任何更改都会使我们的用例无法使用。建议将整个系统作为一个整体,选择整个系统提供给外部使用和交互的最外层接口作为你的测试对象。使用this作为测试对象的用例将具有良好的健壮性并且更加高效。另外,根据数据流向,这些最外层的接口可以分为两类:一类是数据进入系统的接口;另一个是数据流出系统的接口。进入系统的接口其实就是我们用例执行调用的接口。这些接口可以通过改变参数来调用,模拟外部使用;而流出接口才是我们用例真正的验证点。数据从哪里流出,流出时是什么状态,此时系统是什么状态?我们应该验证一下。 然后,确认完整的测试对象的功能:确认外部接口为使用这些接口的外部用户提供了哪些功能,以及外部用户真正需要哪些功能。这两个功能必须准确详细,用例的设计必须严格按照测试对象的功能设计,才是正确的用例。 最后,确定了出发点、对象、功能后,就可以设计用例了。下面详细介绍如何设计一个结构好、可读性高、穿透力强的接口测试用例。 接口测试用例设计和其他测试用例设计一样,应该以尽可能发现bug为目标。用例设计的内容应包括:主要测试功能点、测试环境、测试数据、执行操作和预期结果。 1)接口测试环境分为两种:一种是程序内部环境;另一个是程序调用的外部接口的环境。在用例的设计环境中有一个原则:设计一个真实而危险的环境,不要忽视偶然的环境。现实,也就是当你的用例在测试某个功能的时候,你应该想一想这个时候的内外部环境是什么,通过各种手段模拟出最准确的环境。危险,也就是在这种环境下系统发生故障的概率会非常高。在设计用例环境时,如果两种环境都能满足你用例的要求,建议选择危险性更大的环境。所谓偶然,也就是这种环境出现的概率很小。不要因为这种环境很少见就否定它,在开发中很可能也是这样的思路,很有可能这里潜伏着一个问题。 2)接口测试测试数据分为接口参数数据和用例执行所需的系统数据。数据设计的学问很多,不要偷懒设计和准备测试用例的数据。需要利用好测试数据的查错功能,才能充分利用。接口参数数据需要根据测试接口的实际功能分析各个参数,在符合业务逻辑的情况下进行逻辑组合和排列,不要遗漏一些边界值和错误的数据点。每个用例执行所需的系统数据和接口参数数据尽量使用不同的数据,这样更容易发现用例中的问题。 3)测试功能点。如果接口功能复杂,建议对接口用例的结构进行划分,使用例具有更好的可读性和可维护性。接口划分的原则是根据接口提供的不同功能点进行适当的粒度划分。同一个功能点的用例可以根据不同的测试环境和不同的数据填写。 4)接口测试用例的执行操作很简单,就是被测接口的调用。 5)预期结果验证,也是接口用例设计中的关键步骤,要详细,不要冗余。所谓精细,应该验证的点应该在用例中详细列出。每个用例都需要验证,不要因为前几个用例验证过了就认为所有的都是正确的。避免在一个用例中重复相同的验证,提高测试用例的效率。
