Python接口自动化-Robot framework + jenkins集成

Robot framework 框架

简介

是一个通用的开源自动化框架,用于验收测试,验收测试驱动开发(ATDD)和机器人过程自动化(RPA)。它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法从现有的关键字创建新的更高级别的关键字 【关键字驱动】

相关链接
  • RobotFramework
  • Pypi_RobotFramework
  • Github_robotframework
框架对比
框架 最新版本 开发语言 支持语言 持续集成 拓展难度 性能测试 数据分离 推广门槛 其它特性
Robot Framework 3.1.2 python python/java 不支持 支持 自带wx的GUI,可支持界面化或命令操作,可支持web UI自动化seleniumLibrary
HttpRunner 2.0 python python 支持 支持 脚本化、有完善易阅读报告输出
Jmeter 5.1.1 java java 支持 支持 更偏向于接口性能;做功能测试,用例维护管理难

Robot Framework模块化架构

Python接口自动化-Robot framework + jenkins集成_第1张图片

Robot framework 环境安装

因 python2.7版本已停止更新,不在维护,大部分相关开源项目与库已不再对 python2.x 版本的支持,所以此处用 Python3.6 + Robot framework 3.1.2 搭建环境

起步:

  • pip install -r requirements.txt

requirements.txt

requests
robotframework
Pypubsub==3.3.0
wxPython==4.0.3
robotframework-ride
robotframework-requests

ride GUI编辑器启动

ride.py存放路径: \Python36-32\Scripts\ride.py

  • 命令启动 python ride.py
  • .bat脚本启动 python ride.py
@ECHO OFF
C:
cd C:\Programs\Python\Python36-32\Scripts\
python ride.py
echo "完成"
pass

ride GUI 快捷键

  • F5 查看依赖库对应关键字
  • Ctrl + Alt + space 关键字补全,并展示对应关键字 使用说明
  • other… (有兴趣可去了解下,以上快捷键在用例编写中,有一定的帮助)

Robot framework 常用库

  • 标准库
    • Builtin:包含经常需要的关键字。无需导入
    • Dialogs:提供了暂停测试执行和从用户的输入方式。
    • Collections:提供一组关键词处理Python列表和字典。
    • 其它 OperatingSystem 、Remote、String、Telnet、…
  • 扩展库
    • Android library:所有android自动化需要的测试库,内部使用的是Calabash Android
    • iOS library:所有iOS自动化需要的测试库,内部使用Calabash iOS服务
    • appiumlibrary:Android和iOS测试库,内部使用的是appium
    • HTTP library (Requests):内部使用request工具的HTTP测试的库
    • selenium2library:使用selenium2的Web测试库
    • 其它 …

Robot framework 常用关键字

  • Set Variable 创建字符串变量 (BuiltIn库)
  • Create Dictionary 创建字典变量 (BuiltIn库)
  • Create List 创建列表变量 (BuiltIn库)
  • Get Length 获取列表长度 (BuiltIn库)
  • Should Be Equal As Strings 断言 字符串 (BuiltIn库)
  • should match 匹配 (BuiltIn库)
  • Log 日志打印 (BuiltIn库)

Robot framework 自定义关键字

simple: 自定义一个关键字: http get

import requests
def http_get(url, data):
    """
    http get 获取指定url内容,并与 预期结果做对比
    :param url:
    :param data 预期结果
    """
    response = requests.get(url=url)
    if response.status_code == 200:
        if response.text == data:
            print('结果相同')
        else:
            raise Exception('结果不同,原始数据:%s  效验数据:%s' % (response.text, data))
    else:
        raise Exception('请求失败 code:%s 详情:%s' % (response.status_code, url))

实战

具体用例部分 会有 Robot framework 与 httprunner 框架 做一个 简单实例对比

工程结构
Python接口自动化-Robot framework + jenkins集成_第2张图片
Robot framework 自定义关键字封装

这里根据当前项目接口的共性,做对应关键字封装

Python接口自动化-Robot framework + jenkins集成_第3张图片
Ride 用例编写
  • 用标准库关键字
Python接口自动化-Robot framework + jenkins集成_第4张图片
  • 使用自定义关键字
Python接口自动化-Robot framework + jenkins集成_第5张图片
HttpRunner 用例编写 yml格式

api 注册

Python接口自动化-Robot framework + jenkins集成_第6张图片

case编写

Python接口自动化-Robot framework + jenkins集成_第7张图片
Robot framework -> Report html
Python接口自动化-Robot framework + jenkins集成_第8张图片
Log html
Python接口自动化-Robot framework + jenkins集成_第9张图片

jenkins 集成 Robot framework

  • Robot framework 插件安装
  • 构建配置

Robot framework 插件安装

Python接口自动化-Robot framework + jenkins集成_第10张图片

Robot framework 构建结果详情 1

Python接口自动化-Robot framework + jenkins集成_第11张图片

Robot framework 构建结果详情 2

Python接口自动化-Robot framework + jenkins集成_第12张图片

你可能感兴趣的:(接口自动化)