RF-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请求方式

例子二

第5行也可以这么写

五、其他方式

第1行:获取cookie

第2行:创建一个请求header信息(可以根据自己的情况添加所需的值,类似于jmeter的头文件,不一定是必须的)

第3行:创建session。【注】:这里的api是指alias,即对当前创建的HTTP会话指定的别名。在get request时,可识别session。

第4行:发起请求。返回对象${addr}

第5行:判断请求响应是否为200:200就继续执行用例,否就失败终止

第7行:转成json串格式

第8行:获取json中的count值

第9行:获取json中的data值

第12行:判断count值是否与“预期值:7”一致。一致则通过。

备注:

返回值为编码格式,想变成中文,将参数${data}变为@{data}。

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 对象

打印请求结果中的内容

资料地址:

http://blog.sina.com.cn/s/blog_7447a0160102wi53.html

http://blog.csdn.net/jasonliujintao/article/details/69524559

时间: 2024-10-14 23:44:37

RF-RequestsLibrary的相关文章

接口自动化实现图片上传(selenium/RF)

最近做自动化碰到一个问题: 就是带图片上传的不知道怎么实现自动化:整理了下实现如下: 上传图片postman 结果请求如下,上传图片后返回一个图片地址: post请求 body 是form-data 而不是json fiddler抓取如下, selenium实现如下:[也可以参考悠悠的带token验证登录的:https://www.cnblogs.com/yoyoketang/p/7990127.html] #!/usr/bin/env python# -*- coding: utf-8 -*-

RequestsLibrary接口测试

RequestsLibrary常用的关键字 关  键  字 描   述 Create Session 创建HTTP会话 Get Request 采用get方式请求 Post Request 采用Post方式请求 Put Request 采用Put方式请求 Delete Request 采用Delete方式请求 Head Request 头部请求 Delete All Sessions 删除所有HTTP会话 To Json 转换为json格式 ▲ 还有更多关键字,请在RF框架F5键查阅测试库使用方

RF接口测试----post请求

注意: RF的post请求中必须带headers(消息头),否则会报参数为空. 代码: *** Settings *** Library RequestsLibrary *** Test Cases *** 聚合数据----天气预报查询--post请求 Create Session weathersearch http://apis.juhe.cn &{params}= Create Dictionary city=上海 key=e3cf8a6c0b....2c45df6ae409679 &

RF使用

先安装好RF框架,并配置后webdriver驱动到安装路径下,参考下面网址 http://www.cnblogs.com/ceshixuexi/p/7252480.html 1.cmd中打开ride.py GUI界面显示如下 2.主要是这样的结构进行操作 3.创建关键字 (1)先导入

WLAN 无线网络 05 - RF 噪声、信噪比、RSSI

继续上篇内容, 接着讨论RF信号. 说到信号,就不可避免的要讨论噪声.物理学定义的噪声是噪声是声波的频率.强弱变化无规律.杂乱无章的声音.电子学中对噪声的定义为能对信号在传输过程中所产生信号(如杂散电磁场)干扰的能量. 噪声电平(noise floor),在信号学中,将所有干扰信号传输的噪声源和其他信号定量测量所得的值定义为噪声电平,并将它的值以dBm为单位衡量. 信噪比(SNR) 信噪比,即信号强度与噪声电平的比值.因dBm为mW的log值,所以这个比值也经常被认为是一个差值.SNR是衡量信号

WLAN 无线网络 03 - RF 基础

射频(Radio frequency),又称无线电频率.无线射频.高周波,常被用来当成无线电的同义词,为在3 kHz至300 GHz这个范围内的震荡频率,这个频率相当于无线电波的频率,以及携带着无线电信号的交流电的频率 .WLAN通讯技术即为建立在2.4GHz和5GHz上的射频技术的一种. 射频有哪些特征: 波长, 射频信号的波长是一个周期传输的距离. 频率,一个RF信号一秒钟出现的周期次数即为信号的频率,单位Hz.波长与频率 成反比. 振幅,RF信号的一个非常重要的属性,可描述为信号的强度.振

使用RF登陆微信例子

*** Settings *** Library           RequestsLibrary Library           requests Library           json Library           AppiumLibrary *** Test Cases *** test1 Open Application    http://localhost:4723/wd/hub    platformName=Android    deviceName=test

某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**RobotFramework 1.**工具介绍:Robotframework在测试中作为组织测试用例和BDD关键字的平台,主要使用RIDE进行管理,它不是一个工具,而仅仅是一个框架,使用Python进行开发,同时支持WEB测试(Selenium).Java GUI 测试,启动线程.终端.SSH等.支持BDD

RF电路设计中降低寄生信号的八大途径

RF电路板设计最重要的是不该有信号的地方要隔离信号,而该有信号的地方一定要获得信号.这就要求我们有意识地采取措施,确保信号隔离于其路径适当的部位.音调.信号.时钟及其在电路板上任何地方生成的所有谐波都可能作为寄生信号混入输出信号,甚至可能会进入混频器和转换器进而被转换.反映并混淆为寄生信号.传输掩模(Transmit mask)要求表明即便最微小的寄生信号也会阻碍产品的发布. 宽带器件支持软件定义无线电(SDR)的这一当前趋势将进一步强调降低寄生信号的重要性.由于可部署统一信号平台设计来满足多种

RF和GBDT的区别

Random Forest ?采用bagging思想,即利用bootstrap抽样,得到若干个数据集,每个数据集都训练一颗树. 构建决策树时,每次分类节点时,并不是考虑全部特征,而是从特征候选集中选取若干个特征用于计算.弱特征共有p个,一般选取m=sqrt(p)个特征.当可选特征数目很大时,选取一个较小的m值,有助于决策树的构建. ?当树的数量足够多时,RF不会产生过拟合,提高树的数量能够使得错误率降低. GBDT 采用Boosting思想(注意是Boosting,不是Boostrap)? 不采