Robot Framework(十四):使用RF进行接口测试(上)
目录
本篇以及下篇介绍的都是如何使用RF进行REST接口测试,老规矩,先从使用的模块,以及模块中常用的API说起。
安装robotframework-requests
github:https://github.com/bulkan/robotframework-requests/#readme
RF的接口测试库主要有2个:requestsLibrary、requests。注意requests一定要先安装,已安装的话请忽略。
命令:
py -3 -m pip install requests
py -3 -m pip install robotframework-requests
requestsLibrary常用关键字
Create Session:
作用:创建一个session,连接某个服务器
语法:
Name:Create Session
Source:RequestsLibrary <test library>
Arguments:
[ alias | url | headers={}| cookies=None| auth=None| timeout=None| proxies=None| verify=False| debug=debug | max_retries=max_retries | backoff_factor=backoff_factor | disable_warnings=disable_warnings ]
参数说明:
- alias :别名,用来表示当前会话,后续提交请求的时候通过这个名字来提交(必填)
- url:服务器的base url,也就是?前的信息(必填)
- headers:header字段。注意:在调用post request方法的时候,如果headers为空就赋值data为空,即使传递了字典类型,所以如果data存在的时候必须有headers参数,代表数据的格式,有以下4种:
application/x-www-form-urlencoded:表示浏览器的原生 form 表单
application/json:表示使用表单上传文件时(最常用)
multipart/form-data:表示消息主体是序列化后的 JSON 字符串
text/xml:XML格式
4.timeout:设定超时时间
Get Request
作用:通过给定的别名以GET方式发起请求
语法:
Name:Get Request
Source:RequestsLibrary <test library>
Arguments:
[ alias | uri | headers=headers | json=json | params=params | allow_redirects=allow_redirects | timeout=timeout ]
参数说明:
- alias:会话别名,也就是用Create Session关键字创建的(必填)
- uri:请求发送的uri(必填)
- params:请求参数,字典,列表或文件等
- headers:请求头,字典类型
- json:请求参数,格式为json
- allow_redirects:是否允许重定向
- timeout:超时时间
Post Request
作用:通过给定的别名以POST方式发起请求
语法:
Name:Post Request
Source:RequestsLibrary <test library>
Arguments:
[ alias | uri | data=data | json=json | params=params | headers=headers | files=files | allow_redirects=allow_redirects | timeout=timeout ]
参数说明:
- alias:会话别名,也就是用Create Session关键字创建的(必填)
- uri:请求发送的uri(必填)
- data:字典类型的数据
- params:url参数,添加到uri之后的内容
- headers:请求头,字典类型
- json:请求参数,格式为json
- allow_redirects:是否允许重定向
- timeout:超时时间
To Json:
作用:将Python字典和Json格式进行互相转换,本质使用的还是Python中dumps方法(将字典转换为Json),loads方法(将Json转换为字典)
语法:
Name:To Json
Source:RequestsLibrary <test library>
Arguments:[ content | pretty_print=false]
参数说明:
content :字典或json类型的数据
pretty_print:默认是false,表示将Content 从Json转换为字典类型;为true表示将字典类型的content转换为json对象。
示例:
*** Settings ***
Library RequestsLibrary
*** Test Cases ***
Test
# 从Json转换为字典类型
${j} To Json {"pass":"Authorized access"}
log ${j}
# 从字典类型转换为Json
${d} To Json {"pass":"Authorized access"} pretty_print=true
log ${d}
执行结果:
导入自定义python文件:计算MD5
用户密码下次登录时输入的是密码的MD5值,robot framework自带的库中没有这种关键字,所以我们可以定义在python文件中,然后在test suit文件中通过Settings表导入即可。
md5_encrypt.py:
# -*-coding:utf-8 -*-
from hashlib import md5
def md5_encrypt(text):
"""
md5计算摘要
:param text: 传入的是字符串类型
:return: 返回hash值
"""
m = md5()
# TypeError: Unicode-objects must be encoded before hashing
if isinstance(text, str):
text = text.encode()
m.update(text)
return m.hexdigest()
test suite文件用Library关键字导入即可:
*** Settings ***
Library md5_encrypt.py
下一篇我们用具体的代码说明如何进行测试
更多推荐
所有评论(0)