RobotFrameWork http/https oauth接口测试 (二)

        在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~

        先介绍下项目背景:

        公司的项目采用的授权模式是第三种resource owner password credentials密码模式,因为认证服务器和资源服务器都是公司内部的项目,所以采用了这个方式,公司的处理流程大致如下:

      (A)用户向客户端提供账号和密码。

      (B) 客户端将用户凭证以及客户端凭证信息发送到认证服务器。

      (C) 认证服务器校验客户端请求合法,并且用户凭证有效,向客户端提供访问令

       认证服务器主要是管理Token,总共有2个接口,一个是getToken,一个是refreshToken。而资源认证服务器主要是处理登录到会议节点服务器前的业务,暂时有8个接口,在手机移动端下载app后,可以通过获取验证码直接用手机号注册用户(或者qq,微信登录),然后就可以登录到会议管理后台,稍微罗列下接口的部分逻辑:

       验证手机号码接口--》 获取验证码接口--》验证手机验证码接口--》用户注册接口--》用户登录会议管理后台接口--》创建会议室接口---》用户登录会议节点服务器接口,其中用户登录web管理后台接口前的接口header的Authorization只需要携带客户端凭证信息即可,访问的是认证服务器,拿用户凭证以及客户端凭证信息去获取token,以便进一步访问资源服务器内的资源(后面的接口),之后的接口header的Authorization携带的是认证服务器返回的Token.

       对于认证服务器的接口(用户登录web管理后台接口),接口参数如下:

     

      其中:Basic encodeBase64(${clientId} + ":" + ${clientSecret}),就是使用 base64 对客户端凭证( clientId,clientSecret,这两项写在客户端配置文件中)拼接后进行编码。

     request-http:

     POST /token HTTP/1.1

     Host: server.example.com

     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW

     Content-Type: application/x-www-form-urlencoded

 

     grant_type=password&username=johndoe&password=A3ddj3w

    

     response-http:

    

     HTTP/1.1 200 OK

     Content-Type: application/json;charset=UTF-8

     Cache-Control: no-store

     Pragma: no-cache

 

     {

       "access_token":"2YotnFZFEjr1zCsicMWpAA",

       "token_type":"example",

       "expires_in":3600,

       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",

       "example_parameter":"example_value"

     }

      对于资源服务器的接口,Header的Authorization携带的是认证服务器返回的Token,参数如下:

     

     然后,介绍下如何用RF工具进行测试的,在RF中,已经提供了基于http/https协议的库,就是requests库,只需要在官网下载requests和requestLibray即可。基于之前我写的安装步骤,实际用pip命令最容易解决。执行pip install requests,

 pip install -U robotframework-requests,提示成功即可。建项目后,导入RequestsLibrary,如果要操作dictionary,就导入Collections(内置库,加载进人内存即使用)。
     认证服务器接口的测试业务代码如下:
               
    成功返回的结果如下:
            
     资源服务器的接口测试代码如下:
         、   
      成功返回接口如下:
         
   
 
      以上就大致分享了下基于oauth协议的接口的测试方法和大致的业务逻辑,后面会总结下webservice接口测试的方法,通过这半个月对这些接口的测试和学习,突然感触到学好底层通讯协议是多么重要的一件事,http协议和tcp协议基本的公共协议的知识不够,处于入门阶段,应该尽早计划进行一个系统的学习~~~

       

posted @ 2016-05-12 20:10  loleina  阅读(4788)  评论(1编辑  收藏  举报