python RF使用笔记
# 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使用笔记相关推荐
- 【Tools】python环境操作笔记
python环境操作笔记 1.安装Python虚拟环境 2.python pip 添加清华镜像 3.Ubuntu卸载python后出现系统崩溃以及各种问题的解决方法 4.Python下关于 tkint ...
- python做直方图-python OpenCV学习笔记实现二维直方图
本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...
- Python中知识点笔记
Python中知识点笔记 Wentao Sun. Nov.14, 2008 来这个公司11个月了,最开始来的一个笔记本用完了,里面都是工作时记录的一些片段,看到一块自己当时学/写 python程序时记 ...
- python 队列 一次取多个_Queue 队列模块-Python成为专业人士笔记
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 介绍 队列模块能实现多生产者.多消费者的队列 ...
- python 慕课课程笔记(一)
python 慕课课程笔记 1.python 是动态语言,而 java 是静态语言.动态语言变量本身的类型时不固定的,而静态语言在变量定义时就必须指定变量的类别. 2. 在python 代码中书写 a ...
- python 正则学习笔记
python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...
- python笔记视频_终于拿到!清华大佬Python视频+书+笔记汇总
终于拿到!清华大佬Python视频+书+笔记汇总 清华学姐推荐的Python视频400集,拿走不谢!
- Python 三维可视化笔记1 -- TVTK库
Python 三维可视化笔记1 – TVTK库 Python 三维可视化系列笔记是笔者在学习黄天羽老师的<Python科学计算三维可视化>课程及笔者实践三维可视化的笔记. 课程链接: Py ...
- Python 网络爬虫笔记11 -- Scrapy 实战
Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...
最新文章
- python 线程锁 共享全局变量 线程通信
- Robots.txt和Robots META
- selenium-如何多次循环某一个脚本
- Ajax里的onreadystatechange的作用
- Nginx的Gzip和sendfile的共存问题
- CF449 C. Jzzhu and Apples
- 深入Atlas系列:Web Sevices Access in Atlas示例(4) - 使用HTTP GET调用Web Services方法...
- 笨办法学 Python · 续 练习 21:二分搜索
- 强化学习——From drew追寻Mitsuha的学习笔记
- MySQL数据库导入SQL[ERR]Unknown collation: ‘utf8mb4_0900_ai_ci‘的解决办法
- Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题
- FigDraw 8. SCI 文章绘图之饼图 (Pieplot)
- 2021西安ec final游记
- 游戏开发中防外挂的那些事儿
- 21天养成编程习惯:09月Scratch编程训练营计划!
- 【风电功率预测】麻雀算法优化BP神经网络风电功率预测【含Matlab源码 1319期】
- 功率放大器驱动容性负载、感性负载,有哪些注意事项?
- 作为打工人,普通人努力的意义何在?
- 自己动手、丰衣足食!箭头 → ← → ← ---2
- 阿里P8大牛亲自教你!树莓派docker
热门文章
- 【UnityShader】游戏人物角色捏脸妆容亮片
- 编辑中的word变成只读_word只读模式怎么取消,word只读模式怎么改
- 服务器装机选哪个系统好,服务器该装08系统好还是03系统好?
- picker多选 vant_浅谈vant组件Picker 选择器选单选问题
- NBS-Predict:基于脑网络的机器学习预测
- 数学笔记14——微积分第一基本定理
- python提取数组元素_使用python提取数组元素的一部分
- Entity Framework 学习建议及自学资源
- esp32 micropython蓝牙 搜不到_esp 使用几次后蓝牙搜索不到问题?
- win32 透明窗口无边框模版