在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协议基本的公共协议的知识不够,处于入门阶段,应该尽早计划进行一个系统的学习~~~

RobotFrameWork http/https oauth接口测试 (二)的更多相关文章

  1. RobotFrameWork http/https oauth接口测试 (一)

    感觉自己最近销声匿迹快一个月了,应该总结下自己这个月学习的东西了~~~折腾完公司私有协议的接口测试(c++接口),开始折腾公司的http/https接口和webservice接口的测试,想着把所有的这 ...

  2. 【百度】大型网站的HTTPS实践(二)——HTTPS加密算法介绍

    大型网站的HTTPS实践(二)——HTTPS加密算法介绍 原创 网络通信/物联网 作者:AIOps智能运维 时间:2018-11-09 15:09:43  358  0 前言 在上一篇文章中,我们简要 ...

  3. HTTPS详解二:SSL / TLS 工作原理和详细握手过程

    HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...

  4. 基于HTTPS的接口测试——nginx配置SSL

    目录 基于HTTPS的接口测试--nginx配置SSL 1. 背景 2. 所需环境与域名备案解析 2.1 云服务器 2.2 域名 2.3 SSL证书 2.4 网站备案 2.5 域名解析 3.nginx ...

  5. 使用robotframework做接口测试二——处理响应数据

    初使用RequestsLibrary做接口测试时,你会不会感到困惑,为什么会有${resp.content}, ${resp.status_code}这样的写法,这个status_code什么鬼,f5 ...

  6. robotframework使用requestsLibrary进行接口测试

    一.定义 接口测试:接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务 分类:RESTful.webservice接口 二.安装 进入C:\Pyhon27\scripts 先要安装r ...

  7. 大型网站的 HTTPS 实践(二)——HTTPS 对性能的影响

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt388 HTTPS 在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与 ...

  8. Https系列之二:https的SSL证书在服务器端的部署,基于tomcat,spring boot

    Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...

  9. https学习笔记二----基础密码学知识和python pycrypto库的介绍使用

    在更详细的学习HTTPS之前,我也觉得很有必要学习下HTTPS经常用到的加密编码技术的背景知识.密码学是对报文进行编解码的机制和技巧.可以用来加密数据,比如数据加密常用的AES/ECB/PKCS5Pa ...

随机推荐

  1. NHibernate one-to-one

    NHibernate里面one-to-one有两种方式:主键关联和唯一外健关联 主键关联: 两个表拥有相同的主键字段,值相同的关联在一起.典型的应用是一个对象的属性太多,将常用的属性跟不常用的附加属性 ...

  2. javascript 时间操作

    javascript时间函数 javascript提供了Date对象来进行时间和日期的计算.Date对象有多种构造函数: 1.dateObj=new Date() //当前时间 2.dateObj=n ...

  3. php读取指定结束指针文件内容

    fopen操作时文件读取开始指针位于文件开始部分, fseek 以指定文件大小以及开始指针位置确定结束指针位置 具体案例: <?php//打开文件流,fopen不会把文件整个加载到内存$f = ...

  4. css - float浮动模块的高度问题 解决方案

    当一个Div中的子元素都是浮动元素时,该div是没有高度的.通常会带来很多困扰,解决方案如下: 低版本统配兼容: overflow: hidden; 下面是不支持低配浏览器,而且似乎该效果对 P 标签 ...

  5. 使用JSch实现SFTP文件传输

    1.JSch开发包下载 http://www.jcraft.com/jsch/ 目前最新版本为: jsch - 0.1.51 2.简单例子,列出指定目录下的文件列表 import  java.util ...

  6. PHPExcel创建文件格式写入对象实例

    首先到http://www.codeplex.com/PHPExcel下载PHPExcel 下面就是php导出excel的程序 <?phpini_set("display_errors ...

  7. 20145337《Java程序设计》第四周学习总结

    20145337<Java程序设计>第四周学习总结 教材学习内容总结 继承与多态 继承 继承,避免多个类间重复定义共同行为 符合DRY(Don't Repeat Yourself)原则,多 ...

  8. HTML5文件API

    File对象与File对象 Blob对象 FileReader对象 File对象 <!DOCTYPE html> <html> <head> <meta ht ...

  9. SVN :This XML file does not appear to have any style information associated with it.

    SVN :This XML file does not appear to have any style information associated with it. The document tr ...

  10. vim的常用命令

    平常最多是用vim来编辑单个文件,看看源码.就是写几k行代码时也没有用一些其他的插件,只是设置了高亮等一些自带的属性.这样的好处是,换到任何一台新机上都能立马使用. 网上流传了大量的“vim命令合集” ...