zoukankan      html  css  js  c++  java
  • 接口测试基础知识学习

    概念定义:

    1、接口:程序内部的接口及系统对外的接口

    1)程序内部接口:方法与方法之间,模块与模块之间的交互

    2)系统对外的接口:从别的网站或服务器上获取资源或信息,引用其提供的接口就能使用他写好的方法,从而达到数据共享的目的。现在测试的都是对外的接口

    2、接口分类:webservice接口和http api接口

    webservice接口走soap协议通过HTTP传输,请求报文和返回报文都是用xml格式,在测试的时候都用通过工具才能进行调用,测试。

    HTTP API接口走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

    3、前端和后端

    前端:对于web端来讲,使用的网页,打开的网站,都属于前端,都是html、css写的;对于APP端,android或者object-C(开发ios上的app)开发的,它的作用就是显示页面,让我们看到漂亮的页面,以及做一些简单的校验,比如说非空校验===客户端

    后端:在页面操作的业务逻辑,功能由后端负责===服务端,server端

    前后端通过接口进行交互

    4、接口测试

    接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址、请求参数,拼接报文,然后发送请求,检查返回结果。

    接口测试流程

    需求评审,熟悉业务和需求 --->开发提供接口文档 --->编写接口测试用 ---> 用例评审 ---> 提测后开始测试 ---> 提交测试报告

    接口测试规范文档

    内容至少包括:

    1)接口说明
    2)调用url
    3)请求方法(getpost)
    4)请求参数、参数类型、请求参数说明
    5)返回参数说明

    6)状态码说明(不是必须)

    get与post请求

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

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

    3、get请求和post请求

    1)get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求;post的请求,得借助工具来发送。

    2)get请求他没有请求体,只有请求头,get请求的参数只能写在url里面,或者cookie里面。
          post 有请求头和请求体,参数放在请求体里面。

    3)一般get请求用来获取数据,post请求用来发送数据

    HTTP状态码

    每发出一个http请求之后,都会有一个响应,http本身会有一个状态码,来标示这个请求是否成功,常见的状态码有以下几种:
    1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
    2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了,
    3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面
    4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。

    cookie & session

    1、cookie  存在你本地的一个键值对。  如 ACB sdfjsdkf342342
    2、session 存在服务端的一个键值对。如 ACB sdfjsdkf342342

    登陆时将账号等写入cookie 并向session写入相同的数据,在网页跳转等,cookie会自动发送数据给服务端进行比对,比对一致,则跳转的页面也是登陆状态,即校验登陆状态。

    3、接口签名:为了防止别人恶意刷请求。一个加密之后的字符串,在地址后加一个自己规则的加密字符。

    如:  http://api.nnzhp.cn/reg?username=xxx&passwd=xxx&sign=8eea855efc702130d9c9cafcd9f4d91a


     

  • 相关阅读:
    性能测试的感悟
    Web性能测试问题,mysql分析之一
    LoadRunner使用代理远程执行提示找不到“pre_cci.c”文件
    yii widget验证码不实用form验证的方法
    mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
    (亲测)nginx解决thinkphp中pathinfo的问题
    一个超好用的php header下载函数
    编程中的一些概念,KISS、DRY、MVC、OOP、REST
    8个开发必备的PHP功能(转)
    关于按钮在短时间内多次点击的问题.
  • 原文地址:https://www.cnblogs.com/emilyliu/p/8569556.html
Copyright © 2011-2022 走看看