• WebAPI之postman变量和session/token


    postman使用变量:

           之前我们请求里面的主机地址都是localhost,表示本机。而在实际测试过程中,服务器地址往往并非是在本机上的,这时候就需要用到变量。

           postman支持多个测试环境,一个环境里可以配置多个变量。

           postman的变量主要分两种类型:

                  ① 环境里面的变量

                   - 点击界面右上角的齿轮图标,选择Manage Environments                                                             

                   - 在弹出对话框中,点击Add按钮,填写环境名ENVIRONMENT NAME  、VARIABLE、CURRENT VALUE   如 :server1   serverip    http://localhost

                   - 这样一套环境就创建好了。创建好厚,就需要使用 可以将所有请求的url中的主机名localhost替换为为变量名{{server1}}  如 https://{{server1}}/api/pagenum

                   - 注意:双花括号将变量名括起来,双花括号就表示里面是一个变量。

                   - 当进行测试时,若使用的是本机的API服务,那就选择名为server1配置的环境;若使用不是本地的,就选择server2的环境,postman就会使用不同环境里面的变量对应的值。

                  ② 全局变量

                   - 有时候,有些变量,我们并不需要配置到很多套环境里,因为基本上这就是一个固定值,要修改的话,所有的环境里面都要修改。

                   - 我们没有必要创建变量到环境中,可以创建一个全局变量,全局变量与我们选择的环境无关。

                   - 点击界面右上角的齿轮图标,选择Manage Environments   

                   - 在弹出对话框中,点击Globals,加入全局变量名和变量值  如:course_add             {'name':'初中数学', 'desc':111, 'display_idx':1}

                   - 然后我们可以在API请求的body中将参数的value值修改为用变量替代即可。如  {{course_add}}

    HTTP抓包:

    在进行接口测试时,我们难免要用到fiddler工具来抓包:

             http抓包,就会使用到fiddler。目前有两种抓包类型:

                      ① 抓浏览器的包     我们需要指定浏览器的代理。以Chrome浏览器为例,进入设置 === 高级选项 ===打开代理设置 ===勾选使用代理服务器设置地址和端口

                      ② 抓手机上的包     同样需要在手机上设置代理。填入fiddler所在机器的IP地址和代理服务器端口(默认8888)。注意:电脑wifi和手机所连接的wifi应处于同一个网络环境。

            这样配置好,就可以抓http包了。

            另外如果想抓取https包,相应的需要下载fiddler证书将其导入浏览器中或手机上安装fiddler证书,才可抓取哦!

    cookie和session: 

            做web api测试时,可能会接触到cookie和session。

            cookie是我们在访问一个网站时,通常由网站服务器返回的一种标记为cookie类型数据。要求我们存储在浏览器所在电脑上。

               以后每次访问本网站,浏览器都会在http请求中将该数据发送过来。

            session也叫会话,某用户登录后,服务端就会认为创建了一个会话session。另一个用户登录就会创建另一个session。

               为了标志不同的会话,服务端后面生成一个叫sessionid的东西,标志这次登录的所有后续http消息交互。

               sessionid通常都保存在数据库中,并且咳哟存储该sessionid的一系列信息,如 用户名、权限等。

               session通常用在web应用中,就是浏览器里面的网页应用。作为一种验证用户权限的机制:能根据sessionid,从而知道该用户是否有相应的权限访问相应的资源。

               sessionid是如何返回给客户端的呢?  --------

                     通过http响应里面的Set-Cookie头部信息,要求浏览器保存到cookie中。

                     随后,客户端每次访问同一个网站,都会将该cookie里面的内容放到http头部中,当然sessionid也在里面     。即Set-Cookie中存储了sessionid

                     所以服务端根据sessionid,到表中能够查到相应的记录,就知道了对应的是哪个用户登录。

               总结:cookie主要用来存储用户的一些信息,存储在浏览器中

                          session机制利用了cookie的功能 sessionid存储在数据库中;session弊端就是:服务器有一定压力,性能上会有损耗。

    token:是数据信息和验证信息的一串字节数据。而token是你们公司的业务服务器生成的。

              - hash算法产生token

              - 数据信息改变,验证信息也会改变,HMAC算法

              - 密钥 + data = HMAC

            生成的token包含了别人无法伪造的验证数据,可以用来验证这个token是否是我这个业务服务器生成的。

            token验证的逻辑如下:

                   1 - 客户端发送请求给服务器,服务器接收并验证后,产生一个token

                   2- token里面包含了一些关于这用户的数据信息以及验证token有效性的数据,服务器将token返回给客户端

                   3 - 客户端得到token后,以后每次业务请求都要带上token

                   4 - 通常放在http请求头Authenrization中,服务端接到请求,就会验证token是否是自己签发的。验证方法同样是hmac(密钥 + 数据)= 验证信息,计算出来验证信息和token里面的验证信息是否一致。

            注意:公钥可以用来加密,私钥可以用来解密;私钥可以用来签名,公钥可以用来验证签名。

            好处:一旦登陆后,后续只要把请求带过来,验证通过。

            token的优点:不需要通过数据库验证,极大的提高了速度

            token使用场景:① 防止表单重复提交  ② 跨站点请求伪造

  • 相关阅读:
    cisco 4500X 交换机限速
    HPE 交换机基础配置
    MySQL数据库之主从复制
    MySQL复制线程状态转变
    MySQL数据库备份之mysqldump
    MySQL数据库之慢查询日志
    MySQL数据库之多线程备份工具mydumper
    MySQL数据库之索引
    MySQL之二进制日志
    MySQL数据库之sql_mode解释
  • 原文地址:https://www.cnblogs.com/peipei-Study/p/12020614.html
Copyright © 2020-2023  润新知