接口测试相关知识及相关接口测试工具使用

一. 什么是接口?

  按照百度百科的定义

    接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。

    接口(软件类接口)是指对协定进行定义的引用类型。其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。

  本文着重讨论软件类的接口,一般来说软件类的接口有两种,一种是程序内部的接口,一种是系统对外的接口。无论是内部还是外部,接口的作用就是从数据库(或者文件服务器等数据存放位置)里面取数据或者插入数据。

  最常用的两种接口就是webservice接口和http api接口:

    webservice接口是走soap协议通过http传输,请求报文和返回报文都是xml格式

    http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式,返回报文格式一般都是json串

二.什么是前端和后端?

  一般网站的前端是与用户直接交互的部分,包括你在浏览网页时接触的所有视觉内容--从字体到颜色,以及下拉菜单和侧边栏。这些视觉内容,都是由浏览器解析、处理、渲染相关 HTMLCSSJava 文件后呈现而来。

  而后端是为了让服务器、应用、数据库能够彼此交互。

  前端和后端的交互就是通过接口来实现的。

三.什么是接口测试?为什么要做接口测试?

  按照百度百科的定义

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

  接口测试就是功能测试,它比功能测试还简单。接口测试和功能测试区别不大,测接口是为了测试很多前端测试不到的情况,例如买东西提交订单,可以修改提交金额测试后端是否有验证,这个是普通页面功能测试无法验证的。

接口测试的必要性

  1、可以发现很多在页面上操作发现不了的bug;

  2、检查系统的异常处理能力;

  3、检查系统的安全性、稳定性;

  4、前端随便变,接口测好了,后端不用变。

四.什么是接口文档?

  既然我们要测试接口,那我们根据什么来测试呢? 那就是接口规范文档,也是我们测试最重要的一个依据。

  接口文档是干嘛的呢,接口文档说简单点,就是这个接口的使用文档。

  接口文档至少包括:

    1、接口说明

    2、调用url 3、请求方法(get\post等)

    4、请求参数、参数类型、请求参数说明

    5、返回参数说明

五.怎么调用接口?

  有了接口文档,那么我们就要根据接口文档来拼接参数调用接口,那么怎么调用呢 ?

  接口请求报文拼接

    1、url?param=value&param2=value 这种是最简单的一种,问号前面是请求url,后面是请求的参数名和参数值,多个参数用&来连接

    2、还有一种就是入参是json串的,那就不能拼接参数了,需要借助工具来完成比如postman、jmeter等工具

  如果是get请求的话,直接在浏览器里输入就行了,如果是post的请求的话,就不行了,就得借助工具来发送。

  GET请求和POST请求的区别:

    1.get请求只有请求头,没有请求体,它的参数只能写在URL里面
    2.get请求一般用来向服务器获取数据,post一般用来向服务器发送数据(实际使用中没有区别)
    3.get请求有参数长度限制,post请求没有(现在已经没有限制了)
    4.get请求没有post请求安全(一样不安全,这个一般是指get请求会明文发送参数内容,但通过抓包手段,post请求一样可以查看到参数内容) 
 
六.怎么设计接口测试用例    

  通用接口用例设计

  通过性验证:

    首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

  接口安全:

    1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证。    

    2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户的cookie,能不能修改成功,我传一个其他的卖家能不能修改成功?

    3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。

    4、密码安全规则,密码的复杂程度校验。

  异常验证:

    异常的,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。

七.接口测试用例模板,需要有哪些字段呢?

  1、项目 是哪个项目的

  2、模块 这个接口是属于哪个功能模块的

  3、用例id

  4、接口名称

  5、用例标题 用例是干嘛的

  6、请求方式 GET/POST

  7、请求url url地址

  8、请求参数

  9、前置条件 有依赖的时候,比如说要测登录失败3次的

  10、结果验证 预期结果

  11、请求报文

  12、返回报文

  13、测试结果 通过/失败

  14、测试人员

八、工具使用

  前面说到了一般get请求可以直接用浏览器来进行测试,但是post请求就需要用到工具了,下面介绍两个工具的常见用法:

  1.postman

    get请求

    

    post请求 带headers传送

     

    传送json串

      

     上传文件

  2.jmeter

     get请求

    post请求

  post json串

    上传文件

  3.使用Chrome浏览器查看接口信息

  可以使用Chrome浏览器的检查工具,来查看当前浏览的页面的接口信息。

  使用方法,打开页面,然后右键选择检查,在弹出的窗口中选择Network页签,然后选择XHR(该选择只包含接口相关的请求,如果是All请求的话会包含图片、js等静态页面的所有请求),通过左下方的name列表,可以看到相关的接口请求,右下的页签里可以看到请求和返回相关的内容,如请求的方法、URL、headers,以及返回的内容等等,通过相关信息就可以对相关接口进行测试了。

  

猜你喜欢

转载自www.cnblogs.com/meteor9/p/10551226.html
今日推荐