Postman接口测试学习总结

接口测试

一、           接口是什么?

在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。

                                                       —百度百科

接口单从字面了解:接就是连接的意思,口就是入口或出口的意思,合起来就是连接的入口或者出口。在计算机软件中,接口就是软件内部各个模块中相互调用和联系或者与第三方系统对接的桥梁,就是我们经常说的应用程序的API。

二、           接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

                                                       —百度百科

接口类型常见的有get,post,put...类型。get类型的接口一般是指获取信息的接口,比如列表查询的功能,点击查询按钮就调用一个get接口,然后把信息返回出来。就是指把内容从服务器(后端)拉下来。

Post类型一般是提交表单的功能,比如注册、导入数据之类的就是post接口。就是指把内容推到服务器(后端)上去。

 

接口测试类型:模块接口测试和web接口测试

模块接口测试就是模块程序之间的类方法、函数等功能的调用和返回,完成模块之间数据的传递,是模块间单元测试基础。

Web接口测试:服务器接口测试和外部接口测试

服务器接口测试:是测试浏览器与服务器的接口。这个很容易理解,我们知道web开发一般分前端和后端,前端开发人员用html/css/javascript等技术。后端开发人用php/java/python/ruby等各种语言。用户输入的数据是输入到的前端页面上,怎样把这些数据传递的后台的呢?通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试,调用的登录接口还是查询接口,传参的是用户密码还是搜索关键字。

外部接口测试:这个很典型的例子就是第三方登录,比如你做的新系统免于新用户重新注册的麻烦会提供第三方登录,那用户在登录的时候调用的就是第三方登录的接口,由第三方验证用户名和密码并且返回给当前系统。

接口测试需要测试和关注什么?

1、检查接口返回的数据是否与预期结果一致。

2、检查接口的容错性,假如传递数据的类型错误时是否可以处理。

3、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理。

  4、接口的性能,接口处理数据的时间也是测试的一个方法。牵扯到内部就是算法与代码的优化。

5、接口的安全性,如果是外部接口的话,这点尤为重要。

三、基于Web项目的接口测试

测试工具:Postman、fiddler网页接口url抓包

测试接口类型:get请求、post请求

Get请求方式一般指前端从后台或者服务器获取信息,如查询功能、显示列表数据,post请求方式一般指前端创建的数据传递到后台保存,如创建用户、导入数据等

Postman页面和使用简介

Postman是一款谷歌浏览器插件,秉承谷歌工具强大特点,能对web项目的http请求的相关功能接口进行测试

安装:打开谷歌浏览器,输入chrome://extensions/进入谷歌浏览器拓展程序,选择事先下载解压的postman安装包,导入即可,如下图:

 

成功后在【开始】菜单即可生成一个chrome应用的文件夹,双击运行postman即可,进入postman页面,如下图:

  

整个页面总体分为三个块:

  1. 最左侧的栏为管理所有的API接口测试案例资源,可以编辑、修改、运行等操作,并能够查看之前运行过的历史记录
  2. 右侧上部分为API的url输入和编辑,测试脚本的编辑等操作
  3. 右下部分为API接口脚本运行结果查看,包括接口返回参数查看,接口响应状态、时间以及测试脚本用例通过情况

下面通过2个具体的接口测试案例来熟悉和使用postman,以V2200项目cms接口为例

案列1:使用IE登陆2200系统,验证登陆接口的功能

先查看2200相关的接口说明,如下图:

 

由2200的登陆接口说明知道,登陆请求的url为:/CMS/main/login.do,只支持get请求,规定了消息头的格式,以及返回结果值,其中userid、username、password等值不能为null,并说明了返回信息的JSON格式和内容

下面我们根据接口文档来说实现postman请求登陆的API进行测试

首先我们根据接口文档选择get请求方式,输入接口的url,如下图:

 

这个url可以通过网页抓包工具fiddler获取到,拷贝该url过来即可,如下图:

 

由于登陆需要认证消息头,如上图fiddler抓包得到的Authorization信息,我们将该信息填入到postman该请求的Headers中,如下图:

 

然后我们开始设计测试用例,在Pre-request Script和Tests里设置,Pre-request Script表示请求前运行的脚本,相当于测试前置条件,Tests就是我们测试用例设计栏,如下图,由于登陆无前置条件,我们简单设计了Tests的用例,有该接口响应时间是否小于200s,返回的状态码是否是200以及返回的body信息中是否含有我们的userId

 

右侧的geneate Code是postman里面内置的测试脚本,我们直接可以引用的哦,具体的内置脚本说明见文档尾的说明。

   设计好后,最后我们点击url栏后面的【Send】来发送请求,如下图

 

在send按钮左侧有个Params表示参数设置,即可以事先对url中的参数进行设置,测试结果我们一般以JSON格式来对照接口文档查看返回的信息是否一致和规范,还可以查看我们的测试用例执行通过情况。这样我们的一个API的测试集就完成了,我们可以点击【save】按钮保存我们的API测试案例到我们左侧树的搜藏文件中,下次可以直接点击里的接口测试案例来查看或者执行,每个文件夹也相当于一个测试集,点击【Runner】进行测试集批量执行,如下图:

      

案例2:使用IE登陆2200系统配置端,然后点击进入【系统管理】,查看页面授权信息API接口功能

V2200cms的接口文档说明如下:

 

 

该接口支持get/post请求,返回的JSON信息中有明确的各个授权通道数的字段。

同样我们通过fiddler抓包得到完整的url,然后设计测试用例。这里我们需要设置预置条件啦,即首先我们需要登录成功2200配置页面,然后才能进入【系统管理】,如下图我们写的Pre-request Script的两个前置调用的API

 

这里我们使用了全局变量,因为后面的功能都是以登录成功2200为基础,除了在脚本中直接创建变量外,我们也可以在页面事先创建常用的变量包括全局变量和局部环境变量,设置变量的值,来进行调用和应用。创建环境变量如下图:

 

 

点击add创建局部环境变量,点击Globals创建全局变量

这里我创建了两个全局变量并赋予变量的值,如下图

 

在写好预置的脚本后,我们编辑Tests测试案例,如我们API测试案例中可以写一条返回body字段是否有我们希望看到的信息,比如返回的值是否有GB摄像机通道数、授权天数等,

 

Body部分有各个授权数的字段,对比接口文档查看返回的信息是否与文档规定的一致,还可以查看测试执行通过情况

 

如果我们一个collection文件夹中有很多测试用例,那可以进行批量运行,查看所有测试API接口的用例和运行完成的统计结果,如下图点击【Runner】弹出新的窗口,选择文件夹执行

 

 

posted @ 2020-09-27 17:51  那年故乡的明月  阅读(478)  评论(0)    收藏  举报