美文网首页
浅谈接口测试(二)接口本身

浅谈接口测试(二)接口本身

作者: 茧城寒舍 | 来源:发表于2020-04-25 09:21 被阅读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. 总结

  1. 测试文档是约束
  2. 测试文档几个要点

相关文章

  • 浅谈接口测试(二)接口本身

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

  • 面试问题:接口测试怎么做(想到一点写一点...)

    1.从接口测试本身来说,思考接口测试点设计 2.从研发过程来切入接口测试怎么开展 接口测试前置环境(接口抓包、接口...

  • 接口测试怎么做

    目录: 一、什么是接口? 二、接口测试流程 三、接口测试工具 四、接口测试技术点 五、总结 导读: 为什么要做接口...

  • 接口测试之外的接口测试

    我们平时做接口测试时,更多的需要集中在接口本身和接口所连串的功能。目前我们使用的接口测试工具大多是测试代码,就是用...

  • 浅谈接口测试

    前言:没有接触接口测试之前,可能会对做接口测试感到无所适从。看再多的文档,不如动手实践来得快啦。当然,目前接触到的...

  • 浅谈接口测试

    什么是接口测试 百度百科上面是这么说的:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统...

  • 浅谈接口测试

    工作中经常听同事去说接口,自己也经常会会去测试一下开发写的接口是否正确,发送一个值,看返回的结果是否正确。自然而然...

  • 接口测试书目录

    接口测试 接口测试基础知识篇 接口测试第二课(APP抓包) 接口测试第三课(HTTP协议简介) 接口测试第四课(H...

  • 学生整理,最全软件测试面试问题总结!

    接口测试 一、平常用什么工具测接口的?接口测试工具很多,主要postman 二、没有接口文档,如果做接口测?(这是...

  • 接口测试概述

    接口(interface)的概念 常见接口名词 接口测试: 接口测试目的: 接口测试的重要性: 接口测试流程 接口...

网友评论

      本文标题:浅谈接口测试(二)接口本身

      本文链接:https://www.haomeiwen.com/subject/matqwhtx.html