目录

安装robotframework-requests

requestsLibrary常用关键字

Create Session:

Get Request

Post Request

To Json:

导入自定义python文件:计算MD5


本篇以及下篇介绍的都是如何使用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 ]

参数说明:

  1. alias :别名,用来表示当前会话,后续提交请求的时候通过这个名字来提交(必填)
  2. url:服务器的base url,也就是?前的信息(必填)
  3. headers:header字段。注意:在调用post request方法的时候,如果headers为空就赋值data为空,即使传递了字典类型,所以如果data存在的时候必须有headers参数,代表数据的格式,有以下4种:

        application/x-www-form-urlencoded表示浏览器的原生 form 表单

        application/json表示使用表单上传文件时(最常用)

        multipart/form-data表示消息主体是序列化后的 JSON 字符串

        text/xmlXML格式

    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 ]

参数说明:

  1. alias:会话别名,也就是用Create Session关键字创建的(必填)
  2. uri:请求发送的uri(必填)
  3. params:请求参数,字典,列表或文件等
  4. headers:请求头,字典类型
  5. json:请求参数,格式为json
  6. allow_redirects:是否允许重定向
  7. 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 ]

参数说明:

  1. alias:会话别名,也就是用Create Session关键字创建的(必填)
  2. uri:请求发送的uri(必填)
  3. data:字典类型的数据
  4. params:url参数,添加到uri之后的内容
  5. headers:请求头,字典类型
  6. json:请求参数,格式为json
  7. allow_redirects:是否允许重定向
  8. 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

下一篇我们用具体的代码说明如何进行测试

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐