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

打印请求结果中的内容

原文地址:https://www.cnblogs.com/xiaohuhu/p/9311244.html

时间: 2024-10-06 00:53:45

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

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键查阅测试库使用方

robotFramework接口测试GET和POST请求

安装: 接口测试需要安装Request和RequestLibrary 包 使用cmd命令安装:pip install requests 使用cmd命令安装:pip install -U robotframework-requests 安装完后在site-packages目录下会生成2个目录 然后将request和RequestsLibrary导入到Robotframework中: 使用: 一.GET接口请求 二.POST请求

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

Robotframework也可以进行接口测试,只要导入相应的库就可以做到. 一.准备工作 1.导入requests,使用pip,或者手动下载 pip install requests 2.导入requestsLibrary pip install robotframework-requests 如何安装pip,可以看这里:http://www.cnblogs.com/dreamyu/p/6856067.html 二.简单例子  先来一个简单的请求实例: 查看运行结果:     返回值中文乱码问

Web接口测试工具---Poster与Postman

工作当中有不少时间在编写和维护接口自动化测试用例.打算先整理一些接口相关工具的使用. 简单对接Web口测试的相关工具/技术做个划分. HTTP/SOAP协议接口的功能测试: 1.浏览器URL(GET请求) http://127.0.0.1:8000/login/?username=zhangsan&password=123456 2.浏览器插件:Poster.Postman 简单的接口测试. 3.独立的接口工具: Jmeter(支持SOAP). robot framework(RequestsL

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

在RobotFrameWork http/https oauth接口测试 (一)中,大致介绍了相关的概念,终于可以步入正题了~~~ 先介绍下项目背景: 公司的项目采用的授权模式是第三种resource owner password credentials密码模式,因为认证服务器和资源服务器都是公司内部的项目,所以采用了这个方式,公司的处理流程大致如下: (A)用户向客户端提供账号和密码. (B) 客户端将用户凭证以及客户端凭证信息发送到认证服务器. (C) 认证服务器校验客户端请求合法,并且用户

使用robotframework做接口测试之一——准备工作

最近发现做接口测试的朋友越来越多了,打算写一个系列的rf+requests做接口测试(主要是Http接口)的文档,可以帮助新入门的同学对接口测试有个大概的了解,同时也是敦促自己做总结的一种手段.希望经验丰富的大神路过时,如发现我文档中的不足,提出中肯的批评及更好的解决思路.以期共同进步. 一.环境准备 1)默认已经安装robotframework2)默认已经安装requests库3)默认已经安装并成功导入RequestsLibrary4)会用抓包工具,fiddler或Charles都可 用这个库

接口测试2

一.WebService和HTTPService的区别 1.基于不同协议:HTTPService基于http协议,而WebService基于soap协议 2.跨域的处理:HttpService方式不能处理跨域,如果调用一个其它应用的服务就要用webService 3.处理数据效率不同:HTTPService效率较高,WebService能处理较复杂的数据类型 当你要调用一个你本服务的内容的时候,不涉及到跨域的问题,你可以使用HttpService的方式.如果,你需要在后台调用一个其它应用的服务,

主流接口测试框架对比

公司计划系统的开展接口自动化测试,需要我这边调研一下主流的接口测试框架给后端测试(主要测试接口)的同事介绍一下每个框架的特定和使用方式.后端同事根据他们接口的特点提出一下需求,看哪个框架更适合我们. ### 需求: 1.接口编写方便. 2.方便调试接口. 3.支持数据初始化. 4.生成测试报告. 5.支持参数化. #### robot framework 优点 关键字驱动,自定义用户关键字. 支持测试日志和报告生成. 支持系统关键字开发,可扩展性好. 支持数据库操作. 缺点 接口测试用例写起来不

微信接口测试

<!docType html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimu