zoukankan      html  css  js  c++  java
  • 接口基础知识记录

    1.接口分类

    接口分为两种,一种是程序内部的接口,另一种是系统对外的接口.

    外部接口:从别的网站或服务器获取资源信息,调用别人写好的方法,来获取数据,通过引用别人提供的接口,就能使用它写好的方法,从而达到数据贡献的目的,如app调用接口,二手项目调用支付宝接口,调用微信接口等.

    程序内部接口:方法与方法直接,模块与模块直接进行交互,程序内部抛出的接口,eg:蜂鸟网论坛发帖,发帖时,必须登录,调用用户登录接口,蜂鸟网的登录接口就是程序内部的接口.

    接口分类:webservice&http api(常用)

    webservice :走的是soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候通常用工具进行调用测试.

    http api :走http协议,通过路径区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法.

    报文:报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块

    通常url的构成方式:域名/路径?参数

    json串表达方式{"key":"value"}

    *cookie和session:

    cookie:通俗理解,就是存在本地的键值对

    session:通俗理解,就是存在服务器的键值对


    2.接口测试必要性

    可以发现很多前台页面发现不到的bug

    检查系统的异常处理能力

    检查系统的安全,稳定性

    前端改动,不影响接测试


    3.接口测试流程

    接口测试流程同功能测试流程一样:

    需求评审,熟悉业务和需求

    开发提供接口文档

    编写接口测试用例

    用例评审

    提测后开始测试,提交测试报告


    4.接口测试文档包含内容

    接口说明

    调用url

    请求方法(get/post)

    请求参数,参数类型,请求参数说明

    返回参数说明


    如何测试http接口

    url?参数1=value&参数2=value

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

    例如:https://api.douban.com/v2/book/search?q=邹伟伟

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


     

    get&post

    get请求的话,直接在浏览器里输入后回车,直接请求,只要在浏览器里面直接能请求到的,都是get请求

    如果是post的请求的话,就不行了,就得借助工具来发送。

    GET请求和POST请求的区别:

    1、GET使用URL或Cookie传参。而POST将数据放在BODY中。

    2、GET的URL会有长度上的限制,则POST的数据则可以非常大。

    3、POST比GET安全,因为数据在地址栏上不可见。

    4、一般get请求用来获取数据,post请求用来发送数据。(get 比如打开一个网页,打开蜂鸟论坛,后面都会带有参数,就是一个最基本的get请求.)

    其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了


    http状态码

    1XX:指示信息--表示请求已接受,继续处理.

    2XX:成功---表示请求已经被成功,接收,理解,接受

    3XX:重定向---要完成请求必须进行更进一步的操作

    4XX:客户端错误---请求有语法错误或请求无法实现.

    5XX:服务器错误---服务器未能实现合法的请求


    接口用例设计

    一.通过性验证:首席保证这个接口功能是好用的,也就是正常通过性能测试,按照接口文档上的参数,进行正常传入,是否可以正确的返回参数.

    二.参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功

    三.接口安全:

    1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?

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

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

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

    四.异常验证:

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

    接口用例包含的内容

    咱们测试接口的话,肯定要写测试用例,写测试用例的话,就要有一个用例模板,那需要有哪些字段呢?

    1、项目是哪个项目的

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

    3、用例id

    4、接口名称

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

    6、请求方式GET/POST

    7、请求url,url地址

    8、请求参数

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

    10、结果验证预期结果

    11、请求报文

    12、返回报文

    13、测试结果通过/失败

    14、测试人员

    爱学习的学渣
  • 相关阅读:
    非模式窗体和模式窗体(转
    一次性帮你解决毕业论文的所有排版问题
    c# Wndproc的使用方法
    ref和out 转
    c# 基本语法(转)
    U盘装/虚拟光驱 装双系统
    U盘启动盘 装系统
    Hibernate查询条件封装对象Expression介绍 Hi
    asp.net实现 gridview 鼠标单击任意字段选中一行 ,并获取数据 Hi
    C#如何取出非公共成员 Hi
  • 原文地址:https://www.cnblogs.com/wmm007/p/7513798.html
Copyright © 2011-2022 走看看