一、定义

接口测试:接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务

分类:RESTful、webservice接口

二、安装

进入C:\Pyhon27\scripts

先要安装requests,再安装requestsLibrary

安装requests:pip install requests,官方下载地址:https://pypi.python.org/pypi/requests

安装requestsLibrary:pip install robotframework-requests,官方下载地址:https://pypi.python.org/pypi/robotframework-requests/

在testsuit中导入RequestsLibrary  requests和selenium2Library(注意大小写),若没有报错(报错为红色显示),则安装成功

三、requestsLibrary关键字

关键字 备注
Create Session

创建一个HTTP会话:

alias, url, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=False

url:即服务器的url

alias:使用Robot Framework的别名表示当前会话。

header:使用默认的headers字段

auth:NTLM鉴权需用username&password格式

timeout:会话超时时长

proxies:代理服务器的url

verify:如果需要证书请求则置为true

Create Ntlm Session

创建一个HTTP会话:

alias, url, auth, headers={}, cookies=None, timeout=None, proxies=None, verify=False

url:即服务器的url

alias:使用Robot Framework的别名表示当前会话。

header:使用默认的headers字段

auth:NTLM鉴权需用[‘domain’,’username’,’password’]格式

timeout:会话超时时长

proxies:代理服务器的url

verify:如果需要证书请求则置为true

Delete 弃用,查看delete request
Delete All Sessions 删除全部的会话
Delete Request

alias, uri, data=(), headers=None, allow_redirects=None

使用别名删除会话

Alias:需要删除的会话的别名

Get 弃用:使用Get Request
Get Request

根据提供的别名查找会话并在会话中发送GET请求

alias, uri, headers=None, params={}, allow_redirects=None

Head 弃用:使用Head Request
Head Request

根据提供的别名查找会话并在会话中发送HEAD请求

alias, uri, headers=None, allow_redirects=None

Options 弃用:使用Options Request
Options Request

根据提供的别名查找会话并在会话中发送Options请求

alias, uri, headers=None, allow_redirects=None

Post

弃用:使用Post Request

Post Request

根据提供的别名查找会话并在会话中发送POST请求

alias, uri, data={}, headers=None, files={}, allow_redirects=None

To Json 将文本转换成json对象

四、Restful api测试案例一

Create Session api http://api.jisuapi.com   创建一个连接到服务的host
${addr} Get Request api /driverexam/query  发送一个get请求附上api+路径,返回结果到对象addr
Should Be Equal As Strings ${addr.status_code} 200   返回结果的状态码是否为200 
Log ${addr.content}     日志打印返回结果的内容 
Log ${addr.json()}     日志打印返回结果的json格式 
${responsedata} To Json ${addr.content}   返回结果转化成json格式赋值给变量responsedata 
${keys} Get Dictionary Keys ${responsedata}  

Get Dictionary Keys关键字需要导入Collections库

取出json串的keys

${items} Get Dictionary Items ${responsedata}   取出json串的items 
${values} Get Dictionary Values ${responsedata}   取出json串的values 
${str} Get From Dictionary ${responsedata} status 从json串中获取的值是否有status 
${addr}        第二段测试
Should Be Equal As Strings       ... 
Log       ... 
${responsedata}       ... 
${keys}       ... 
${items}       ... 
${values}       ... 
${str}       ... 
Delete All Sessions       删除所有sessions 

接口情况

测试log

二、返回XML格式的,通常Web Service都是返回一个xml格式的内容

#xml方式        
Create Session api http://localhost:8000   创建一个连接到服务器的host
${dict} Create Dictionary accept=application/xml   在Request的essay-header里加上一个accept=application/xml
${addr} Get Request api /hello/qitao 发送一个get请求附上api+路径,返回结果到对象addr
Comment Should Be Equal As Strings ${addr.status_code} 200 备注
Log ${addr.content}     打印对象内容
${responsedata} Set Variable ${addr.content}   设置变量,结果对象内容赋值给responsedata
${body} Get Element Text ${responsedata} hello

XML库的关键字Get Element Text来获取xml的hello节点的文本

此时变量hello中的内容为qitao

${hello} Get Element ${responsedata} hello 用Get Element获取到一个Element对象${hello}
Log ${hello.text}     对象${hello}的属性值,qitao
${responsedata} Add Element ${responsedata} <new id="3">test</new>

XML库的关键字新增Element   <new id="3">test</new>

${new} Get Element Attribute ${responsedata} id 取值新增element的id值赋给new变量
Log ${new}     打印new变量的值
${a} Element To String ${responsedata}   <response><hello>qitao</hello><new id="3">test</new></response>
Delete All Sessions        

接口情况

三、有用户名和密码的情况下

四、Post请求方式

五、其他方式

post数据

${data} set Variable { "version": "1.0"}

${uri} set variable /xxxx/xxxx/query

${dict} create Dictionary Host=xxx Content-Type=application/json

create session query http://api.xxxx.com ${dict}

${response} post request query ${uri} ${data} headers=${dict}

${res} To Json ${response.content}

log ${res["result_msg"]}

请求数据设置成变量${data}

${uri} 参数设置

构造请求头字典${dict} 创建一个query session

${response} 接收请求变量

${response.content} 转成json 对象

打印请求结果中的内容

robotframework使用requestsLibrary进行接口测试的更多相关文章

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

    在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~ 先介绍下项目背景: 公司的项目采用的授权模式是第三种resource ...

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

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

  3. 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试

    写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...

  4. RobotFramework教程使用笔记——requests和requestslibrary库

    Robotframework也可以进行接口测试,只要导入相应的库就可以做到. 一.准备工作 1.导入requests,使用pip,或者手动下载 pip install requests 2.导入req ...

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

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

  6. 【Robot Framework 】项目实战汇总

    写在前面 RF自动化的文章记录基本完成,建一个汇总目录,方便查看. [Robot Framework 项目实战]汇总 ∮[RF 项目实战 00]环境搭建 ∮[RF 项目实战 01]使用 Request ...

  7. robotframework接口测试初探1

    robotframework这个框架最近很多人在使用它,大部分是和selenium结合的,大概看了下,然后发现这个做接口测试感觉也还不错,初步研究了下 环境安装: robotframework这个环境 ...

  8. robotFramework接口测试GET和POST请求

    安装: 接口测试需要安装Request和RequestLibrary 包 使用cmd命令安装:pip install requests 使用cmd命令安装:pip install -U robotfr ...

  9. 2、大型项目的接口自动化实践记录--接口测试简介及RequestsLibrary关键字简介

    1.接口测试简介 1)先简单介绍下接口测试,那么什么是接口测试呢? 百科的回答:接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 看起来有 ...

随机推荐

  1. Mysql查询语句的 where子句、group by子句、having子句、order by子句、limit子句

    Mysql的各个查询语句 一.where子句   语法:select *|字段列表 from 表名 where 表达式.where子句后面往往配合MySQL运算符一起使用(做条件判断) 作用:通过限定 ...

  2. STM32HAL库学习之前言

    HAL库:HAL 的全称是: Hardware Abstraction Layer (硬件抽象层) ,是ST最新推荐的库.包括基本库和扩展库(功能外展):三种编程模型(轮询.中断和 DMA) 灵活的回 ...

  3. 外文翻译 《How we decide》被情感愚弄 第三节

    本科论文答辩终于结束啦,一切都要继续回到正轨. 这是第三章章最后一节 书的导言 本章第二节 本章第一节 "信用卡是我的敌人."Herman Palmer这样说到.在平日,Herma ...

  4. 使用NPOI操作Excel文件及其日期处理

    工作中经常遇到需要读取或导出Excel文件的情况,而NPOI是目前最宜用.效率最高的操作的Office(不只是Excel哟)文件的组件,使用方便,不详细说明了. Excel工作表约定:整个Excel表 ...

  5. PE刷题记

    PE 中文翻译 最喜欢做这种很有意思的数学题了虽然数学很垃圾 但是这个网站的提交方式好鬼畜啊qwq 1.Multiples of 3 and 5 直接枚举 2.Even Fibonacci numbe ...

  6. ios 根据颜色生成图片,十六进制颜色。

    //颜色生成图片方法 - (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size { CGRect rect = CGRectMake ...

  7. html调用js提示方法名 is not defined处理方法

    解决办法(方法名 is not defined): dosave=function(){ alert("方法名在前"); } 下面这种写法有时候会出现错误: function do ...

  8. 为sublime Text3 安装插件JS Format

    1. 安装package control 菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console.将以下 Python 代码粘贴进去并 enter 执行,不 ...

  9. mybatis+oracle 完成插入数据库,并将主键返回的注意事项

    mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...

  10. Unity3D_最简单的开始界面_结束界面

    开始界面1.创建一个新的场景添加button 2.C#脚本LoadingGame.cs using System.Collections;using System.Collections.Generi ...