robotframework使用requestsLibrary进行接口测试
一、定义
接口测试:接口测试通常是系统之间交互的接口,或者某个系统对外提供的一些接口服务
分类: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进行接口测试的更多相关文章
- RobotFrameWork http/https oauth接口测试 (二)
在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~ 先介绍下项目背景: 公司的项目采用的授权模式是第三种resource ...
- RobotFrameWork http/https oauth接口测试 (一)
感觉自己最近销声匿迹快一个月了,应该总结下自己这个月学习的东西了~~~折腾完公司私有协议的接口测试(c++接口),开始折腾公司的http/https接口和webservice接口的测试,想着把所有的这 ...
- 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试
写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...
- RobotFramework教程使用笔记——requests和requestslibrary库
Robotframework也可以进行接口测试,只要导入相应的库就可以做到. 一.准备工作 1.导入requests,使用pip,或者手动下载 pip install requests 2.导入req ...
- 使用robotframework做接口测试二——处理响应数据
初使用RequestsLibrary做接口测试时,你会不会感到困惑,为什么会有${resp.content}, ${resp.status_code}这样的写法,这个status_code什么鬼,f5 ...
- 【Robot Framework 】项目实战汇总
写在前面 RF自动化的文章记录基本完成,建一个汇总目录,方便查看. [Robot Framework 项目实战]汇总 ∮[RF 项目实战 00]环境搭建 ∮[RF 项目实战 01]使用 Request ...
- robotframework接口测试初探1
robotframework这个框架最近很多人在使用它,大部分是和selenium结合的,大概看了下,然后发现这个做接口测试感觉也还不错,初步研究了下 环境安装: robotframework这个环境 ...
- robotFramework接口测试GET和POST请求
安装: 接口测试需要安装Request和RequestLibrary 包 使用cmd命令安装:pip install requests 使用cmd命令安装:pip install -U robotfr ...
- 2、大型项目的接口自动化实践记录--接口测试简介及RequestsLibrary关键字简介
1.接口测试简介 1)先简单介绍下接口测试,那么什么是接口测试呢? 百科的回答:接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点. 看起来有 ...
随机推荐
- Unity项目学习笔记
1.TCP和IP IP:主要作用是在复杂的网络环境中将数据包发送给的最终的目标地址. 端口号:系统会分给系统端口号 一般知名的端口号在0-1023之间,而我们经常使用的自定义/动态分配的端口号则一般 ...
- Javaweb学习笔记10—文件上传与下载
今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ...
- 【HEVC简介】CTU、CU、PU、TU结构
参考文献:见<High Efficiency Video Coding (HEVC)>Block Structures and Parallelism Features in HEVC章 ...
- SEO 第一章
SEO 第一章 第一章:SEO基础知识 第二章:搜索引擎基础 第三章:关键词分析 第四章:TDK优化 第五章:网站的URL优化 第六章:网站的内链优化 第七章:代码优化 第八章:网站的内容优化 第九 ...
- VBA Promming——入门教程
VBA Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言.主要能用来 ...
- execve - 执行程序
总览 (SYNOPSIS) #include <unistd.h> int execve (const char *filename, char *const argv [], char ...
- 请简述HTML和XHTML最重要的4点不同?
请简述HTML和XHTML最重要的4点不同? 不同: XHTML要求正确嵌套 XHTML 所有元素必须关闭 XHTML 区分大小 ...
- AspNetCore容器化(Docker)部署(一) —— 入门
一.docker注册安装 Windows Docker Desktop https://www.docker.com/products/docker-desktop Linux Docker CE h ...
- 连接MySQL错误“plugin caching_sha2_password could not be loaded”的解决办法
MySQL新版默认使用caching_sha2_password作为身份验证插件,而旧版是使用mysql_native_password.当连接MySQL时报错“plugin caching_sha2 ...
- LayuiAdmin退出模块报错解决
将layuiAdmin/src/controller目录下的common.js中 logout方法的url中logout.js的路径修改为自己目录的路径: 我这里修改为绝对路径: