栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Robot Framework 自动化测试框架

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Robot Framework 自动化测试框架

概述

Robot framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架,用于端到端的验收测试或者验收驱动测试开发(ATDD)中。

  • 表格式的语法简单易用,以统一的方式创建测试用例
  • 可以通过现有关键字创建可复用的高层关键字
  • 提供了直观的HTML格式的测试报告和日志文件
  • 作为一个测试平台,是应用无关的
  • 提供了测试库API,可以轻易地使用Python或者Java创建自定义的测试库
  • 提供了命令行接口和基于XML的输出文件,可以与现有框架集成(如持续集成系统)
  • 提供了多种测试库支持,如用于web测试的Selenium,Java GUI测试,启动进程,Telnet,SSH等
  • 可以创建数据驱动的测试用例
  • 内置支持变量,在不同的环境中特别实用
  • 提供标签来分类和选择测试用例
  • 非常容易与源码控制系统集成,因为测试套件就是文件夹和文本文件
  • 提供了用例级别和测试套件级别的setup和teardown
  • 模块化的架构,支持针对不同接口的应用程序创建测试

以上摘抄自 Robotframework 中文手册

个人小结

  • Robot framework 定义了测试用例的语法,需要学习手册内容
  • RIDE 是 Robot framework 的 GUI,在RIDE上写测试用例很容易上手
  • Robot framework 支持的第三方库,如 robotframework-seriallibrary,是在pyserial的基础上开发的支持 robot framework 的库,提供了 Robot framework 使用的串口相关的关键字
  • Robot framework 中的关键字,多数是库里面实现的类的方法名,比如 add_port 可以映射为关键字Add Port / add port / add_port /,使用方法和函数调用一样。具体查看手册。
  • 学习Python
  • 持续集成:Robot framework + Jenkins

参考文档

Robotframework 中文手册:

        Robot framework用户手册 — robotframework-userguide-cn 3.0.0 文档

        英文版本: Robot framework User Guide

GitHub 中搜索学习:GitHub: Where the world builds software · GitHub

        搜索关键字如:Python, Robot framework, Serial ...

Python 学习:Python3 教程 | 菜鸟教程 (runoob.com)

需求

开发自动化测试工具,使用 Robot framework 框架。

测试串口命令

Robot frame 外部支持库

        Seriallibrary, 下载源码安装

TODO

        基于Seriallibrary,编写串口命令测试用例

        基于pyserial, 编写自定义库,实现 AT 协议

测试HTTP MQTT

Robot frame 外部支持库

        MQTTLibrary, pip install robotframework-mqttlibrary

        HttpLibrary, pip install robotframework-httplibrary

DB, MAP等功能

Robot frame 外部支持库

        DatabaseLibrary, pip install robotframework-databaselibrary

        基于 folium 等实现 map 库?

安装
Python

安装 Python3.7.9, 需勾选添加到PATH

        注:3.7以上版本对Robotframework部分不友好,不推荐

Robot framework

pip install robotframework

pip install wxPython==4.0.7.post2 // UI, RIDE(GUI) 的依赖库

pip install robotframework-ride // GUI

Seriallibrary

robotframework-seriallibrary, python setup.py install 源代码安装,安装后如果导入SerialLibrary失败,uninstall&install pyserial (pyserial 是seriallibrary的依赖库,安装seriallibrary时自动安装)

库的查看
标准库

..Libsite-packagesrobotlibraries

        BuiltIn, Collections, DateTime ....

外部库

..Libsite-packages

        MQTTLibrary, DatabaseLibrary, SerialLibrary....   ---- 安装后目录下才有

 

其他
阿里云阿里云 ECS n4 1核 2 G,CentOS 7.9,个人学习用。目前部署了Java Web 环境,Jenkins,构建了 Robot framework 任务,暂时够用。
阿里云部署开发环境

(假如 Aliyun 外网地址为:120.79.176.140)

Java Web 环境  // 按照ECS上的教程安装好 JDK,Tomcat

远程连接:https://ecs-workbench.aliyun.com/

创建安全组,安全组关联实例,根据需要配置安全组规则

安装Tomcat,修改Tomcat端口为80,安全组添加端口80的规则

./bin/startup.sh 启动Tomcat,在网页中输入:http://120.79.176.140

阿里云部署Jenkins

参考:https://www.cnblogs.com/superjie/p/9876028.html

yum install -y ca-certificates    //解决下载提示证书问题

安装Jenkins,修改Jenkins端口为8686,安全组添加端口8686的规则

service jenkins start 启动Jenkins,在网页中输入:http://120.79.176.140:8686/

激活Jenkins后安装推荐的插件

Jenkins + Robotframework

节点 ( rftest)

        系统管理 -> 全局安全配置

                代理->随机选取,Java Web Start Agent Protocol/4 (TLS 加密)

        系统管理 -> 节点管理

                名称: rftest;

                远程工作目录: D:Jenkins;

                标签: rf;

                用法: 尽可能的使用这个节点;

                启动方式: 通过Java Web启动代理, [√]Use WebSocket;

                可用性: 尽量保持代理在线;

                本地操作: 连接代理。上面的节点有agent.jar链接及命令行连接命令,下载 agent.jar,在本地用命令行连接代理。

构建任务( rf00 )

        新建 Job -> 输入一个任务名称 rf00 -> 构建一个自由风格的软件项目

        General

                [√]限制项目的运行节点, 标签表达式: rf;

        构建

                执行Windows批处理命令, 命令: pybot.bat

                //pybot.bat 所在目录:D:Jenkinsworkspacerf00

                        即:节点设置的远程工作目录+workspace+任务名

                //pybot.bat 内容:robot D:rftesttest_serial

                //D:rftesttest_serial目录是测试用例目录

        构建后操作

                Publish Robot framework Test Results

                        // Jenkins 安装了 Robot framework 插件才有该选项

                Thresholds for build result: 80%, 100%        

Pytest 如果是我个人玩的话,我会选Pytest,Pytest更加灵活一些,比如失败重跑,robotframe在跑完所有用例后再跑失败的用例,Pytest支持在用例失败是重跑几次再继续跑后面的用例。Pytest对并发的支持也更好一些。

                

             

                

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号