当前位置 : 主页 > 网络安全 > 测试自动化 >

安装 RobotFramework 可视化工具 RIDE

来源:互联网 收集:自由互联 发布时间:2021-06-19
1. 概述 robot framework 的安装 可视化工具 ride 的安装 2. 准备 安装缘由 来自一本书 书名: Robot Framework自动化测试修炼宝典 豆瓣上有好评不少, 坏评也不多, 而且是 为数不多 的 robot framewo

1. 概述

  1. robot framework 的安装
  2. 可视化工具 ride 的安装

2. 准备

  1. 安装缘由
    1. 来自一本书
      1. 书名: Robot Framework自动化测试修炼宝典
      2. 豆瓣上有好评不少, 坏评也不多, 而且是 为数不多 的 robot framework 的中文书籍
      3. 如果一定要用 robot framework, 可以简单入门
      4. 看到后面, 就会知道这本书有多么的 垃圾, 跟 真香 二字, 完全不沾边
  2. 环境
    1. 虚拟机
      1. win10
        1. 8G 内存
        2. 30G 硬盘
    2. python
      1. python 2.7.15

3. 安装

  1. 概述
    1. 整个安装过程, 极为简单, 我第一次使用 pip, 几乎没有碰到任何问题
    2. pip 基本可以解决一切问题, 没有书上说的那么复杂
    3. 过程很简单, 所以我就写的很略

1. 打开虚拟机

  1. 概述
    1. 后面操作都是在 虚拟机 中进行
    2. 如果直接在 物理机 上操作, 请忽略这一步

2. 安装 python

  1. 从 python 官网下载 安装包, 注意版本是 python 2.7
  2. 下载完毕后, 安装
  3. 配置 python 环境变量, 包括 python 目录, 和 python/script 目录

3. 使用 pip 安装 robot framework

  1. 验证 pip
    1. 打开 cmd
    2. 输入命令 pip --help, 正确的话, 可以看到 python 的帮助信息
  2. 安装 robot framework
    1. 在 cmd 输入命令 pip install robotframework
    2. 等待安装完毕

4. 使用 pip 安装 wxpython

  1. 概述
    1. 这玩意是 python 的一个 图形组件,
    2. 和 微信 没有一点关系
  2. 安装 wxpython
    1. 命令 pip install wxpython

5. 使用 pip 安装 ride

  1. 概述
    1. ride 是 robot framework 的可视化工具
  2. 安装 ride
    1. 命令 pip install robotframework-ride

6. 运行 ride

  1. 命令 ride.py, 召唤 ride 窗口

3. 可能遇到的问题

1. 概述

  1. ride 无法运行的提示

2. 异常原文

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\robotide\__init__.py", line 83, in main
    _run(inpath, not noupdatecheck, debug_console)
  File "C:\Python27\lib\site-packages\robotide\__init__.py", line 102, in _run
    from robotide.application import RIDE
  File "C:\Python27\lib\site-packages\robotide\application\__init__.py", line 16, in <module>
    from .application import RIDE, Project
  File "C:\Python27\lib\site-packages\robotide\application\application.py", line 22, in <module>
    from robotide.namespace import Namespace
  File "C:\Python27\lib\site-packages\robotide\namespace\__init__.py", line 16, in <module>
    from .namespace import Namespace
  File "C:\Python27\lib\site-packages\robotide\namespace\namespace.py", line 31, in <module>
    from robotide.publish import PUBLISHER, RideSettingsChanged, RideLogMessage
  File "C:\Python27\lib\site-packages\robotide\publish\__init__.py", line 123, in <module>
    from .messages import *
  File "C:\Python27\lib\site-packages\robotide\publish\messages.py", line 21, in <module>
    from .messages2 import *
  File "C:\Python27\lib\site-packages\robotide\publish\messages2.py", line 24, in <module>
    from robotide.publish import publisher
  File "C:\Python27\lib\site-packages\robotide\publish\publisher.py", line 24, in <module>
    from pubsub import pub
  File "C:\Python27\lib\site-packages\pubsub\pub.py", line 146
    def getDefaultPublisher() -> Publisher:
                              ^
SyntaxError: invalid syntax

3. 安装过程中的一个提示

  1. 概述
    1. 安装过程中, 出现了一个提示, 被我忽略了
    2. 表示 pypubsub 组件版本不匹配
  2. 异常提示
robotframework-ride 1.7.3.1 has requirement Pypubsub==3.3.0, but you'll have pypubsub 4.0.0 which is incompatible.

4. 问题解决

  1. 概述
    1. 替换组件
  2. 卸载就组件
pip uninstall pypubsub
  1. 安装新组件
pip install pypubsub==3.3.0

5. 结果

  1. 再次尝试运行 ride, 可以正确启动

4. 事后的一些想法

  1. 关于那本书
    1. 出书的门槛, 真是低啊, 写序的那些人, 看过书吗?
  2. robotframework
    1. ride
      1. 全书主要在讲这个东西
        1. 最后 30 页 讲了讲代码, 也没细看
    2. 图形工具
      1. 直观简单
      2. 效率低下
      3. 我不信 robotframework 是完全基于这么一套 ui 界面来做的
      4. Jmeter 也有类似的模式
      1. ui 界面用于调试
      2. 产生脚本后, 可以用 命令行 来执行
      3. 甚至可以跑 分布式
      4. jmeter 也可以做拓展的开发
  3. 关于 组件版本
    1. 场景
      1. 同一台服务器
      2. 运行多个 python 应用
      3. 其中有若干应用使用同一组件
      4. 但是对组件的版本, 要求不一样
    2. 解决方案
      1. 使用 virtualenv 可以解决这个问题
      2. ref: https://www.cnblogs.com/yangliheng/p/6214507.html
  4. 关于 关键字驱动 测试工具
    1. robot 是关键字驱动的测试工具, 系统自带常用关键字
    2. 新引入的关键字, 可以支持新功能
    3. 但是给我直观的感觉, 就是把常见行为封装好, 然后传递参数; 比如 打开页面, 封装一个 打开的方法, 传参 url, 就可以号称是关键字驱动了
    4. 关键字驱动的好处, 可能是用例编写起来比较接近参数化
      1. 比如, 我把用例存在 文件 或者 数据库 里
      2. 对读取的行, 依次执行, 就可以把用例执行完
      3. 用例的解析, 可能需要一个 解析关键字 的方法, 然后一个把后面的参数传给解析好的方法就行了
      4. 感觉不是什么难事, 之前做过的事, 是契合这个思路的
网友评论