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

时间: 2024-10-25 11:10:42

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

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

感觉自己最近销声匿迹快一个月了,应该总结下自己这个月学习的东西了~~~折腾完公司私有协议的接口测试(c++接口),开始折腾公司的http/https接口和webservice接口的测试,想着把所有的这些接口尽量的都放在RobotFrameWork内进行测试,其实这些接口,http/https接口和webservice接口之前已经能用SoapUI或者LoadRunner实现了测试,而且webservice接口我有专门用myeclipse结合TestNG框架和XFIRE框架搭建了数据驱动的自动化测试

基于httpd-2.2和httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 二.基于httpd-2.4配置虚拟主机web站

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

HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流程,但总感觉少了点什么,应该是少了对安全层的针对性介绍,那么这篇文章就算是对HTTPS 详解一的补充吧.还记得这张图吧. HTTPS 和 HTTP的区别 显然,HTTPS 相比 HTTP最大的不同就是多了一层 SSL (Secure Sockets Layer 安全套接层)或 TLS (Transp

Jenkins+robotframework持续集成环境(二)

配置Jenkins上的robotframework环境 一.添加robot插件 需要导一个robot framework 的包,导包方式如下: 1.进入插件管理页面,选择“可选插件”,在右侧搜索栏搜索“robot” 2.因为我这里已经安装了,所以搜索不到,第一次安装是可以搜到的,然后点击安装即可. 二.配置Slave 在远程调用本机运行robotframework测试时,需要先添加slave. 1.进入系统设置页面,进入manage nodes,新建节点: 2.填写数据,并发数填1,远程工作目录

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

1 前言 HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS也会降低用户访问速度,增加网站服务器的计算资源消耗. 本文主要介绍https对用户体验的影响. 本文最早发表于百度运维部官方博客 2 HTTPS对访问速度的影响 在介绍速度优化策略之前,先来看下HTTPS对速度有什么影响.影响主要来自两方面: 1. 协议交互所增加的网络RTT(round trip time). 2. 加解密相关的计算耗时. 下面分别介绍一下. 2.1 网络耗时增加 由于 HTTP和H

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

前言 HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS 也会降低用户访问速度,增加网站服务器的计算资源消耗. 本文主要介绍 https 对用户体验的影响. HTTPS 对访问速度的影响 在介绍速度优化策略之前,先来看下 HTTPS 对速度有什么影响.影响主要来自两方面: 协议交互所增加的网络 RTT(round trip time). 加解密相关的计算耗时. 下面分别介绍一下. 2.1 网络耗时增加 由于 HTTP 和 HTTPS 都需要 DNS 解析,并且

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

Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http.https,基于spring boot四:https的SSL证书在Android端基于okhttp,Retrofit的使用 所有文章会优先在:微信公众号"颜家大少"中发布转载请标明出处 一:本文的主要内容介绍 CA证书的下载及相应文件的介绍CA证书在tomcat的部署CA证书在sprin

RobotFrameWork接口报文测试-----(二)demo的升级版

在上一篇,简单的demo实现了讲xml的数据发送服务器端并取得recvi_buf,然后进行了简单的解析的操作.现在就要解决之前提过的2个问题: 1. 步骤这么多,难道每写一个脚本都要重复一次么? 2. 每个接口的sendbuf的xml的格式是不一样的,id不一样,里面的tag的nodename也是不一样的,这要怎么办?难道每个接口都给写一个createSendBuf么,肯定不是这样的,那要怎样去做? 针对第一个问题的解决,可以使用在RF内定义自己的Resource,然后写直接调用资源内定义的关键

HTTPS的误解(二)

大家好,我们接着HTTPS的误解(一)接着讲,经常有人会说更换或转移服务器时要购买新证书,服务器SSL证书价格很贵,易维信(EVTrust)给大家澄清了这些容易产生误解的地方,详细见下面文章. 误解四:转移服务器时要购买新SSL证书 部署SSL证书,需要这样几步: 1. 在你的服务器上,生成一个CSR文件(SSL证书请求文件,SSL Certificate Signing Request). 2. 使用CSR文件,购买SSL证书. 3. 安装SSL证书. 这些步骤都经过精心设计,保证传输的安全,