• 0
  • 0
分享
  • 你不知道的接口测试之接口本身
  • 大椿 2020-10-20 10:11:26 字数 2192 阅读 1363 收藏 0

在我们测试接口提供的数据,支持的业务功能之前,我们非常有必要再提一下接口本身的规则,即便我们在前面的章节已经隐隐约约的提到过。

1. 接口文档

如果让我给接口文档下个定义,文档是使用接口的人对于接口的约束

  • 口头协定(对,你没看错,这是我最经常见的)

  • word/Excel/txt 文件

  • api管理平台(rap2/yapi等等)

文档应该出现且不限于以下几点内容:

  • 接口访问的地址

  • 接口参数

    • 必须传的参数

    • 非必须传的参数

    • 指定数据类型参数

  • 请求方式

    • GET请求

    • POST请求

  • 返回字段的含义

至于为什么是上面几条,不赘述,大家可以想一哈

2. 遵循接口文档

对于测试人员来讲,遵循接口文档,就是按照文档进行测试。测试也可以分为两种风格:

  • 懒汉式
    测试人员并非在文档形成之初,就按照文档进行严格的测试,而是在业务功能基本完成之时,才介入测试。然后当发现调用出错,或者功能出错时,才去翻阅接口文档,反馈给开发修改再测试

  • 饿汉式
    文档一形成,测试人员就开始介入,抛开业务需求,变换参数组合,请求方式等对于接口本身进行测试,直至符合文档。后期功能完成后,再把重点放到功能层面

3. 设计测试用例

对于接口本身的测试用例,由于测试的主要目标是接口本身而非业务功能,所以我们只要针对接口文档中主要的几点进行编写即可:

  • 使用get请求访问

  • 使用post请求访问

  • 必传参数为空

  • 非必传参数为空

  • 非指定类型参数请求

  • 参数组合

当然,如果我们稍微了解以下后端代码是如何实现接口的,还可以编写一些特定的测试用例,比如如果操作数据库,可以尝试传入部分sql语句,进行安全方面的测试,在这里暂不做过多的说明

4. 举个例子

仍然以上一篇中的getList为例子:

<?php// 告诉浏览器返回为json类型header('Content-Type:application/json; charset=utf-8');// 获取参数$page = $_GET['page'];$size = $_GET['size'];/**
 * 在真正的开发过程中,会操作数据库,我们暂时用一个多维数组代替
 */$data_list = array(
    array('id'=>1,'name'=>'成龙'),
    array('id'=>2,'name'=>'周润发'),
    array('id'=>3,'name'=>'周星驰'),
    array('id'=>4,'name'=>'李连杰'),
    array('id'=>5,'name'=>'梁朝伟'),
    array('id'=>6,'name'=>'张曼玉'),
    array('id'=>7,'name'=>'惠英红'),
    array('id'=>8,'name'=>'林青霞'),
    array('id'=>9,'name'=>'王祖贤'),
    array('id'=>10,'name'=>'巩俐'));foreach($data_list as $key=>$value){
    if($key >= ($page -1) * $size &&  $key < $page * $size){
        $temp[] = $value;
    }}// 组织的数据$data = array(
    'code' => 200,
    'msg' => '请求成功',
    'result' => $temp);// PHP数组转json$rst = json_encode($data,JSON_UNESCAPED_UNICODE);// 打印结果echo $rst;
  • 使用get请求访问 =====> 成功,无异常

  • post请求访问 =====> 失败

[@HymandeMBP:~]$ curl localhost/about_test/getList.php -X POST -d 'page=4&size=2'<br /><b>Notice</b>:  Undefined index: page in <b>/Library/WebServer/Documents/about_test/getList.php</b> on line <b>8</b><br /><br /><b>Notice</b>:  Undefined index: size in <b>/Library/WebServer/Documents/about_test/getList.php</b> on line <b>9</b><br /><br /><b>Notice</b>:  Undefined variable: temp in <b>/Library/WebServer/Documents/about_test/getList.php</b> on line <b>40</b><br />{"code":200,"msg":"请求成功","result":null}

因为这个接口接受的请求方式是GET,没有处理请求方式是POST的情况,其他测试与此类似

下一篇,我们主要介绍关于业务功能的测试,从一个更加的真实的需求出发,说一下考法测试流程

5. 总结

测试文档是约束

测试文档几个要点


作者:茧城寒舍

链接:https://www.jianshu.com/p/31ae4cc54906

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Web 端测试和 App 端测试是针对不同平台的上的应用进行测试,Web应用和App端的应用实现方式不同,测试时的侧重点也不一样。  今天这篇文章就来介绍下两者的不同之处以及测试时的侧重点。  Web 端应用和 App 端应用的区别  · 平台兼容性  Web 端应用可以在任何具备浏览器的设备上运行,而 App 端应用需要在特定的操作系统上安装和运行。  · 安装方式  Web 端应用可以通过访问特定的网址来直接使用,而 App 端应用需要从应用商店或者其他渠道下载和安装。  · 功能和性能  App 端应用通常能够提供更加丰富的功能和更好的性能,因为它们可以直接与设备的硬件和操作系统进行...
            0 0 947
            分享
          • 前言本文章使用王者荣耀游戏接口、企业微信接口的展示结合理论知识,讲解什么是接口测试、接口测试理论、疑问收录与扩展相关知识点的知识学院,快来一起看看吧~1 接口测试基础理论接口测试:接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。接口原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做判断并将最终结果返回至客户端,客户端再次接收返回结果并应答的过程。检查重点:测试的重点是检查接口参数传递、接口功能实现、输出结果的正确性,以及对各类异常情况容错处理的完整性与合理性。接口类型:内部接口及外部接口,内部接口为程序开...
            0 0 1464
            分享
          •   1.背景说明  对于使用关系型数据库的系统而言,在系统投产上线后,及时发现程序运行中的慢SQL语句,能有效降低系统运行风险;对于分布式应用系统来说,在系统日常运行中,为避免因数据库长事务导致主备切换风险,实现对数据库长事务的监控,也是必不可少的。本文以MySQL数据库为例,概述通过数据库自带功能特性performance_schema实现对慢SQL和长事务的监控方法。  2.performance_schema特性介绍  (1)performance_schema 是运行在较低级别的用于监控MySQL Server运行过程中的资源消耗、资源等待等情况的一个功能特性,可以高效便捷实...
            0 0 431
            分享
          • 1. 通过cmd窗口命令启动1.1 启动单个appium服务打开cmd,直接输入:appium这里默认启动的端口是4723,如果没有被占用的情况C:\Users\Carl_DJ>appium [Appium] Welcome to Appium v1.17.1 [Appium] Appium REST http interface listener started on 0.0.0.0:4723也可以直接输入:appium -p 4723C:\Users\Carl_DJ...
            0 0 2865
            分享
          •    一、 研究背景  随着我行自动化测试建设的深入推进,带动了我行功能测试效率的整体提升,但在建设过程中,各系统在自身业务特点及功能实现方式的不同,在自动化建设和应用过程中也发现了一些适用的难点和问题,制约了自动化测试建设向更广、更深的层次发展,阻碍了自动化测试效率进一步提升。  具体问题主要有:  1、业务对会计日期敏感问题,在产品存在生命周期限制的情况下,产品会对会计日期产生较大依赖,会计日期频繁变化会对产品有效性造成影响;  2、测试数据准备逻辑复杂,作为直接面客的业务产品层面,会受合约、账户、产品和运营环境等关联条线限制,在开展数据遴选和制造时,需要逐层查找、处理...
            0 1 1371
            分享
      • 51testing软件测试圈微信