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 Sessionapihttp://api.jisuapi.com 创建一个连接到服务的host
${addr}Get Requestapi/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 Sessionapihttp://localhost:8000 创建一个连接到服务器的host
${dict}Create Dictionaryaccept=application/xml 在Request的essay-header里加上一个accept=application/xml
${addr}Get Requestapi/hello/qitao发送一个get请求附上api+路径,返回结果到对象addr
CommentShould 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

转载于:https://www.cnblogs.com/zz27zz/p/7347273.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值