python RF使用笔记

python RF使用笔记,第1张

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)Python37scripts 和 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)Python37scripts路径下有没有pybot.bat文件,如果没有可以手动添加一个

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

3. 安装RIDE集成开发环境

```
pip install robotframework-ride
```

4. 查看安装的库pip list

5. 打开RIDE界面

在python37scripts目录下有一个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的DataPackages目录下,设置Sublime robot framework语法高亮

## 自定义测试库

静态测试库接口

把python模块转换为测试库 

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

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

由类创建关键字

由函数创建关键字

反射机制

举例:

- 在Python的库目录D:Program Files (x86)Python37Libsite-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模式。

![image-20210531100450582](D:自动化测试imagesimage-20210531100450582.png)

使用举例:

- 下载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层级使用远程库里的关键字了 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5625145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存