我是靠谱客的博主 醉熏春天,最近开发中收集的这篇文章主要介绍基于Robot Framework的接口自动化测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Robot Framework框架简介

Robot Framework框架是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD),使用的是关键字驱动的测试方法。它本身拥有强大的标准库,此外还可以根据项目需要,使用Python对其测试库和框架本身进行扩展和优化,能同时满足对接口、数据库、UI自动化和服务器端自动化的测试需求,编写测试用例的成本低,维护方便。

项目说明

本框架使用的是接口设计的分层玩法,分层的原则是:接口数据和接口业务分离。具体为:项目目录结构分层,接口数据与接口用例分离,接口用例与接口业务分离,公共方法和公共配置也接口业务分离,在测试用例中可以传入不定参数,同时也可以定义用例的执行顺序。

技术栈

Robot Framework
RequestsLibrary
HttpLibrary.HTTP
框架目录结构及相关说明

1、框架目录结构图如下

在这里插入图片描述
2、目录结构说明
公共配置 ===========> +
配置文件,定义公共请求头、请求域名等
基础模块 ===========> 封装请求方法,公共方法和工具方法模块
功能组件 ===========> 封装接口业务模块,接口依赖模块,多个接口组合复杂业务场景等
主干用例&项目用例 ===========> 存放接口测试用例
代码设计与功能说明
1、封装请求方法,如下

*** Settings ***
Library           RequestsLibrary
Library           Collections
Library           HttpLibrary.HTTP
Resource          ../icmcenterApi/公共配置/公共配置_index.txt

*** Keywords ***
SendPost
    [Arguments]    ${root_url}    ${uri}    ${ParameterDict}    ${DataType}    ${header}
    [Documentation]    ${root_url}:接口的host;
    ...    ${uri}:接口uri;
    ...    ${dict}:接口传入参数,字典数据类型;
    ...    ${DataType}:传入参数类型,如data等;
    ...    ${header}:请求头,字典类型。
    ...
    ...    响应数据为json类型。
    ...
    ...    若为独立请求,可在请求结束后立即释放连接。
    ${RequestData}    Create Dictionary
    log    ${ParameterDict.keys()}
    : FOR    ${key}    IN    @{ParameterDict.keys()}
        set to dictionary    ${RequestData}    ${key}    ${ParameterDict['${key}']}
    log    ${RequestData}
    create session    api    ${root_url}
    ${response}    post request    api    ${uri}    ${DataType}=${RequestData}    headers=${header}    timeout=${timeout}
    #    将json的string类型的数据转成python的字典类型
    Comment    ${ResponseBody}    To Json    ${response.content}
    sleep    ${sleepTime}
    log    ${response.text}
    [Return]    ${response.text}

SendGet
    [Arguments]    ${root_url}    ${uri}    ${ParameterDict}    ${header}
    [Documentation]    响应数据为json类型
    ${RequestData}    Create Dictionary
    log    ${ParameterDict.keys()}
    : FOR    ${key}    IN    @{ParameterDict.keys()}
        set to dictionary    ${RequestData}    ${key}    ${ParameterDict['${key}']}
    log    ${RequestData}
    create session    api    ${root_url}
    ${response}    get request    api    ${uri}    params=${RequestData}    headers=${header}    timeout=${timeout}
    Comment    ${ResponseBody}    To Json    ${response.content}
    sleep    ${sleepTime}
    log    ${response.text}
    [Return]    ${response.text}

re_session
    [Arguments]    ${host}
    [Documentation]    创建会话
    create session    session    ${host}

re_post
    [Arguments]    ${uri}    ${ParameterDict}    ${DataType}    ${header}
    [Documentation]    不创建会话,仅发送post请求;
    ...    响应数据为json类型
    ${RequestData}    Create Dictionary
    log    ${ParameterDict.keys()}
    : FOR    ${key}    IN    @{ParameterDict.keys()}
        set to dictionary    ${RequestData}    ${key}    ${ParameterDict['${key}']}
    log    ${RequestData}
    ${response}    post request    session    ${uri}    ${DataType}=${RequestData}    headers=${header}    timeout=${timeout}
    Comment    ${ResponseBody}    To Json    ${response.content}
    sleep    ${sleepTime}
    log    ${response.text}
    [Return]    ${response}

re_get
    [Arguments]    ${uri}    ${ParameterDict}    ${header}
    [Documentation]    不创建会话,仅发送get请求;
    ...    响应数据为json类型
    ${RequestData}    Create Dictionary
    log    ${ParameterDict.keys()}
    : FOR    ${key}    IN    @{ParameterDict.keys()}
        set to dictionary    ${RequestData}    ${key}    ${ParameterDict['${key}']}
    log    ${RequestData}
    ${response}    get request    session    ${uri}    params=${RequestData}    headers=${header}    timeout=${timeout}
    Comment    ${ResponseBody}    To Json    ${response.content}
    sleep    ${sleepTime}
    log    ${response.text}
    [Return]    ${response}

post请求

在这里插入图片描述
get请求

在这里插入图片描述
以不定参数的形式封装请求,后续调用时,可传入不同个数的参数,方便不同场景下测试用例的设计
2、封装接口业务模块

在这里插入图片描述
根据业务应用场景,组合接口模块
发起请求,获取响应,并进行响应断言

3、测试用例设计在这里插入图片描述

根据业务场景,设计测试用例
调用组合的接口模块,并依据场景需要,传入不同的参数
项目实例演示

在这里插入图片描述
最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

最后

以上就是醉熏春天为你收集整理的基于Robot Framework的接口自动化测试的全部内容,希望文章能够帮你解决基于Robot Framework的接口自动化测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部