# RF

## 介绍

Robot Framework是一款开源软件,基于Python语言编写

自动化测试框架,能够进行测试用例编写,组织测试计划,执行测试用例,输出测试结果等工作

具有良好的可扩展性,属于关键字驱动, 也具备数据驱动功能

可以进行分布式测试,也可以测试业务类型多样的接口

**使用简介**

测试用例可以用文本文件保存

以html格式提供易读的测试结果报告和日志

自身支持的测试库,包括Selenium,ssh, 数据库等测试

使用者可以自己创建特定需求的测试库,可用Python或Java语言编写

## 环境

1. 安装python3.7.4解释器, 安装路径D:\Program Files (x86)\Python37\,自动添加环境变量path

D:\Program Files (x86)\Python37\Scripts\ 和 D:\Program Files (x86)\Python37\

2. 安装Robot Framework 
   ```pip install robotframework```

可以指定安装的版本(推荐)

``pip install robotframework==3.1.2``

可以指定安装源

```
  pip install robotframework -i https://pypi.tuna.tsinghua.edu.cn/simple
  ```

3. 检查安装 ```pybot --version```
   如果报错,检查D:\Program Files (x86)\Python37\Scripts路径下有没有pybot.bat文件,如果没有可以手动添加一个

```
@Echo off
python -m robot.run %*
```

3. 安装RIDE集成开发环境

```
pip install robotframework-ride
```

4. 查看安装的库pip list

5. 打开RIDE界面

在\python37\Scripts目录下有一个ride.py文件,在该目录下执行python ride.py即可

3. 安装需要的library(可选)

```
  pip install robotframework-selenium2library -i https://pypi.tuna.tsinghua.edu.cn/simple
  ```

5. 安装Sublime text3(可选),然后需要下载sublime-robot-framework-assistant,解压放在Sublime的\Data\Packages\目录下,设置Sublime robot framework语法高亮

## 自定义测试库

静态测试库接口

把python模块转换为测试库

把python模块(源文件或包)里的函数或类的方法映射为关键字

导入测试库使用的库名字与python的模块名或者类名一致

由类创建关键字

由函数创建关键字

反射机制

举例:

- 在Python的库目录D:\Program Files (x86)\Python37\Lib\site-packages下新建一个文件夹,取名为NewLibrary。

NewLibrary就是我们自定义的库的库名。

- 在NewLibrary目录下创建Python模块,即一个Python源文件,比如iperfclient.py

模块中的类方法runIperfClient将会映射成为自定义的关键字

```
#!/usr/bin/env python
#-*- coding: utf-8 -*-

class IperfClient(object):
    def __init__(self):
        pass
    def runIperfClient(self, version, cmd):
        print(version, cmd)

if __name__ == '__main__':
    p1 = IperfClient()
    p1.runIperfClient('version2', 'iperf -c 192.168.1.133 -u -b 100M -l 1200 -i 1')
```

- 在NewLibrary目录下创建文件``__init__.py``,文件名必须固定这样。

该文件的功能,就是把关键字类暴露出来,让rf能知道。

```
#!/usr/bin/env python
#-*- coding: utf-8 -*-

from NewLibrary.iperfclient import IperfClient

class NewLibrary(IperfClient):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'
```

- 这样我们已经自定义了自己的测试库,接下来就可以使用它了

首先在rf中import这个测试库,在suite层级导入,显示黑色表示导入成功

然后在testcase层级使用测试库中的关键字,关键字显示蓝色表示正常。

## Remote远程库

- 使用场景:

测试需要跨越多个物理机器,且有的测试库也必须部署在被测系统上。

比如,RF运行在PC A上,但是被测试系统在PC B上,测试库在部署在PC B上,这是就可以在PC A上调用RF提供的远程库接口,去实际调用PC B上的测试库,

- 远程库接口的原理

什么是远程库接口技术呢?其实很简单,远程库接口就是把原来的测试库变成了三部分

一部分我们可以叫他远程库(Remote Library),第二部分叫做远程服务器(Remote Server),第三部分是真正的测试库(Test Library)。测试库提供真正的测试功能,它被远程服务器包裹起来,通过XML-RPC协议被远程库访问(见下图)。它的实现思路说白了就是设计模式中的Proxy模式。

使用举例:

- 下载robotremoteserver.py放置在远程服务器PC B上

- 在PC B上编写测试库,比如iperfserver.py文件,

文件中定义的类方法runIperfServer将会被映射成关键字

其中host是PC B的地址,PC A通过这个地址连接到PC B

```
  import sys
  from robotremoteserver import RobotRemoteServer
  
  class iperfServer(object):
      def __init__(self):
          pass
  
      def runIperfServer(self, version, cmd):
          print(version, cmd)
  
  if __name__ == '__main__':
      RobotRemoteServer(iperfServer(), host = '192.168.100.53', port = 8270, *sys.argv[1:])
  ```

- 在PC B上运行``python iperfserver.py``

- 接下来就可以在PC A上使用远程库了

首先在PC A的RF的suite层级上导入Remote库, 参数是远程服务器的地址和端口

然后就可以在testcase层级使用远程库里的关键字了

python RF使用笔记相关推荐

  1. 【Tools】python环境操作笔记

    python环境操作笔记 1.安装Python虚拟环境 2.python pip 添加清华镜像 3.Ubuntu卸载python后出现系统崩溃以及各种问题的解决方法 4.Python下关于 tkint ...

  2. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  3. Python中知识点笔记

    Python中知识点笔记 Wentao Sun. Nov.14, 2008 来这个公司11个月了,最开始来的一个笔记本用完了,里面都是工作时记录的一些片段,看到一块自己当时学/写 python程序时记 ...

  4. python 队列 一次取多个_Queue 队列模块-Python成为专业人士笔记

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 介绍 队列模块能实现多生产者.多消费者的队列 ...

  5. python 慕课课程笔记(一)

    python 慕课课程笔记 1.python 是动态语言,而 java 是静态语言.动态语言变量本身的类型时不固定的,而静态语言在变量定义时就必须指定变量的类别. 2. 在python 代码中书写 a ...

  6. python 正则学习笔记

    python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...

  7. python笔记视频_终于拿到!清华大佬Python视频+书+笔记汇总

    终于拿到!清华大佬Python视频+书+笔记汇总 清华学姐推荐的Python视频400集,拿走不谢!

  8. Python 三维可视化笔记1 -- TVTK库

    Python 三维可视化笔记1 – TVTK库 Python 三维可视化系列笔记是笔者在学习黄天羽老师的<Python科学计算三维可视化>课程及笔者实践三维可视化的笔记. 课程链接: Py ...

  9. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

最新文章

  1. python 线程锁 共享全局变量 线程通信
  2. Robots.txt和Robots META
  3. selenium-如何多次循环某一个脚本
  4. Ajax里的onreadystatechange的作用
  5. Nginx的Gzip和sendfile的共存问题
  6. CF449 C. Jzzhu and Apples
  7. 深入Atlas系列:Web Sevices Access in Atlas示例(4) - 使用HTTP GET调用Web Services方法...
  8. 笨办法学 Python · 续 练习 21:二分搜索
  9. 强化学习——From drew追寻Mitsuha的学习笔记
  10. MySQL数据库导入SQL[ERR]Unknown collation: ‘utf8mb4_0900_ai_ci‘的解决办法
  11. Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题
  12. FigDraw 8. SCI 文章绘图之饼图 (Pieplot)
  13. 2021西安ec final游记
  14. 游戏开发中防外挂的那些事儿
  15. 21天养成编程习惯:09月Scratch编程训练营计划!
  16. 【风电功率预测】麻雀算法优化BP神经网络风电功率预测【含Matlab源码 1319期】
  17. 功率放大器驱动容性负载、感性负载,有哪些注意事项?
  18. 作为打工人,普通人努力的意义何在?
  19. 自己动手、丰衣足食!箭头 → ← → ← ---2
  20. 阿里P8大牛亲自教你!树莓派docker

热门文章

  1. 【UnityShader】游戏人物角色捏脸妆容亮片
  2. 编辑中的word变成只读_word只读模式怎么取消,word只读模式怎么改
  3. 服务器装机选哪个系统好,服务器该装08系统好还是03系统好?
  4. picker多选 vant_浅谈vant组件Picker 选择器选单选问题
  5. NBS-Predict:基于脑网络的机器学习预测
  6. 数学笔记14——微积分第一基本定理
  7. python提取数组元素_使用python提取数组元素的一部分
  8. Entity Framework 学习建议及自学资源
  9. esp32 micropython蓝牙 搜不到_esp 使用几次后蓝牙搜索不到问题?
  10. win32 透明窗口无边框模版