Robot Framework - 入门与操作(4)

练习:创建和扩展Library

示例:Check status on Linux OS

创建与使用library的基本步骤

1--- library实现的内容和实现的方式

2--- library的编写:名称、类别、引用的模块、关键字、注释等

3--- library的编译调试方式、文档生成、导入及确认。。。

4--- Test Case的编写与调试

5--- 扩展已存在的测试库的方式

1--- library实现的内容和方式

实现的内容:

以SSH方式登陆Linux系统,检查CPU,Memory,Disk等使用状态是否在期望的范围内

实现的方式:

利用现有的SSHLibrary来实现SSH登陆Linux系统

创建相应关键字来实现单项的检查,包含内容获取、分析和判断

2--- library的编写

名称、类别、引用的模块、关键字、注释等

名称:LibraryCheckLinuxOS.py

类别:静态库

引用的模块:SSH Library、re

关键字:为每一个独立检查项建立静态关键字

注释:添加Library说明及关键字的使用方法

。。。。。。

# -*- coding: utf-8 -*-

import re
from SSHLibrary import SSHLibrary

class LibraryCheckLinuxOS:
    """This is an example for creating a library ."""

    ROBOT_LIBRARY_SCOPE = ‘TEST SUITE‘  #测试库的范围
    __version__ = ‘0.1‘  #声明测试库的版本

    def creat_ssh_connection(self,ipaddress,port,user,login):
        ‘‘‘
        根据输入的IP、端口、用户名及密码,建立相应的SSH连接.

        Example :

        | creat ssh connection | 10.68.75.111 | 22 | mcadmin | testsc |
        ‘‘‘
        self.mc = SSHLibrary()
        self.mc.open_connection(ipaddress,port)
        self.mc.login(user,login)

    def check_disk(self,quota=80):
        ‘‘‘
        检查磁盘的空间是否满足特定的要求。默认已使用空间要求小于80%.

        Example :

        | check disk | 80 |
        ‘‘‘
        self.mc.start_command("df -h")
        diskstatus = self.mc.read_command_output()
        match_one = re.findall(r"\d+\%",diskstatus,re.M)
        match_two = ‘ ‘.join(match_one)
        matchobj = re.findall(r"\d+",match_two)
        if int(max(matchobj)) < int(quota):
            print "The disk status is OK !"
        else:
            raise UserWarning("There‘s something wrong with your disk.")

    def check_rpm(self,rpmname):
        ‘‘‘
        检查特定的安装包是否安装.
        Example:
        | check rpm | name |
        ‘‘‘
        self.mc.start_command("rpm -qa|grep %s" % rpmname)
        checkstatus = self.mc.read_command_output()
        if checkstatus == rpmname:
            print "The %s is installed !" % rpmname
        else:
            raise UserWarning("There‘s something wrong with your rpm.")

    def check_service(self,servicename):
        ‘‘‘
        检查特定服务的状态.
        Example:
        | check service | name |
        ‘‘‘
        self.mc.start_command("service %s status" % servicename)
        checkstatus = self.mc.read_command_output()
        match = re.findall(r"running",checkstatus,re.M)
        if len(match) > 0:
            print "The service status is OK !"
        else:
            raise UserWarning("The service status is not running.")

    def check_process(self,processname):
        ‘‘‘
        检查特定进程的状态.
        Example:
        | check process | name |
        ‘‘‘
        self.mc.start_command("ps -ef | grep %s" % processname)
        checkstatus = self.mc.read_command_output()
        match = re.findall(r"%s" % processname,checkstatus,re.M)
        if len(match) >= 2 :
            print "The process status is OK !"
        else:
            raise UserWarning("The %s is not running." % processname)

    def check_memory(self,value=80):
        ‘‘‘
        检查内存的使用状态.
        Example:
        | check memory | value |
        ‘‘‘
        self.mc.start_command("free -m")
        checkstatus = self.mc.read_command_output()
        match = re.findall(r"\d+",checkstatus,re.M)
        quota =(float(match[1])/float(match[0]))*100
        if int(quota) <= int(value):
            print "The memory is OK !"
        else:
            raise UserWarning("Please check the status of memory" )      

##from SSHLibrary import SSHLibrary
##
##    def check_memory(self,ipaddress,user,login):
##        mc = SSHLibrary()
##        mc.open_connection(ipaddress)
##        mc.login(user,login)
##        mc.start_command(‘free -m‘)
##        return mc.read_command_output()

##class LibraryCheckLinuxOS:
##
##    ROBOT_LIBRARY_SCOPE = ‘TEST SUITE‘  #测试库的范围
##    __version__ = ‘0.1‘  #声明测试库的版本
##
##    def creat_ssh_connection(self,ipaddress,port,user,login):
##        self.mc = SSHLibrary()
##        self.mc.open_connection(ipaddress,port)
##        self.mc.login(user,login)
##
##    def check_loadavg(self):
##        self.mc.start_command(‘cat /proc/loadavg‘)
##        print self.mc.read_command_output()
##
##    def check_memory(self):
##        self.mc.start_command(‘free -m‘)
##        print self.mc.read_command_output()
##
##    def check_disk(self):
##        self.mc.start_command(‘df -h‘)
##        print self.mc.read_command_output()

## 检查Linux OS的磁盘空间
##    $ df -h
##    Filesystem            Size  Used Avail Use% Mounted on
##    /dev/mapper/VG00-sysimg
##                           19G  2.7G   16G  15% /
##    /dev/sda1              99M   19M   75M  21% /boot
##    tmpfs                 2.0G   20K  2.0G   1% /dev/shm
##    /dev/mapper/vg01-mmsc_var
##                           35G  435M   33G   2% /var/mnt/mmsc_var
##    /dev/mapper/vg03-ldap
##                          985M  114M  821M  13% /var/mnt/local/ldap
##    /dev/mapper/vg02-clusterlvol.001
##                          2.0G   37M  1.8G   2% /var/mnt/cluster_lvol

## 检查Linux OS的内存状态
##    $ free -m
##                 total       used       free     shared    buffers     cached
##    Mem:          3949       1911       2037          0        336       1245
##    -/+ buffers/cache:        329       3619
##    Swap:            0          0          0

## 检查Linux OS是否安装了特定的程序包
##    $ rpm -qa |grep SS_MMSC-5.0.6
##    SS_MMSC-5.0.6-30

## 检查Linux OS特定进程的状态
##    # ps -ef |grep xkrmanmx
##    mcadmin  19215 19200  1 11:16 ?        00:00:05 xkrmanmx
##    root     21723 17643  0 11:24 pts/0    00:00:00 grep xkrmanmx

实现如下功能:

  • 检查Linux OS是否安装了特定的程序包
  • 检查Linux OS特定的服务启动状态
  • 检查Linux OS特定进程的状态
  • 检查Linux OS内存使用状态

3--- library的编译

调试方式、文档生成、导入及确认。。。

调试方式:使用 Robot Framework 本身来验证测试库。

文档生成:CMD界面下,在同一目录执行“python -m robot.libdoc LibraryCheckLinuxOS LibraryCheckLinuxOS.html”

导入及确认:与测试文件放在同一目录,直接导入,使用F5快捷键方式确认关键字内容。

。。。。。。

4 --- Test Case的编写与调试

5 --- 扩展已存在的测试库的方式

因现有的library代码结构简单,实现功能雷同单一,并且不需要重新打包。

所以采用直接修改其源代码的方式,添加相应关键字。

其他的扩展方法

*** 使用继承来扩展一个已存在的库。

*** 直接使用其他测试库

*** 从 Robot Framework 中获取活动的测试库实例

*** 使用动态库或者混合库 API 的测试库

原文地址:https://www.cnblogs.com/anliven/p/10010299.html

时间: 2024-08-24 12:49:10

Robot Framework - 入门与操作(4)的相关文章

Robot Framework - 入门与操作(5)

Creating test data ***** Test suites 测试集没有测试用例个数的限制,但建议不要超过 10 个测试用例. 除非是使用数据驱动模式,这种模式的测试用例仅包含一个高级别关键字. 测试集的注释是在测试集的设置表格中使用 Documentation 标示. 除注释之外的其他元数据可以使用测试集表格中的 Metadata 设置. 这种方式的元数据将在测试报告和日志中显示出来. 测试集的 setup 和 teardown 都可以使用参数. 一个测试集的 setup 将在所有

Robot Framework - 入门与操作(3)

08- 创建测试库--发布测试库 ***** 测试库文档 为了便于维护,测试库文档应该从源代码中生成. Robot  Framework 有自己的文档工具 libdoc.py生成 API 文档. 一个关键字文档的第一行通常应该包括该关键字的简要概述. 这行内容会被 libdoc.py 当作关键字的 tool tip,也会被显示到测试日志中. Robot  Framework User Guide : Library documentation tool (libdoc) 举例: python -

robot framework 入门

obot framework 入门 2012-12-23 12:47:16 分类: LINUX 其实我不喜欢动不动就框架,动不动就架构,整出一坨专业术语搞的玄而又玄,让人云山雾绕,我想做的事情很简单,自动地测试我的多个程序,更友好的显示出我的程序的测试结果. 当我的程序比较少的时候,我可以手工的执行测试程序,察看结果.但是如果的程序多了之后,我不能天天手工去执行,这样的话,太费时了,而且,通过不通过还要自己去看 $?. 有人说,你写好的程序,不改动,为啥天天测一遍.实际情况是,有时候我会改这些程

使用Robot Framework框架远程操作UNIX系统

bot Framework是一个强大的自动化测试框架,依靠社区力量编写的Test Library为它提供了非常强的扩展性.下面我将介绍的就是如何使用第三方提供的扩展测试库(Test Library)来远程登录Unix,并在上面做常见操作. 环境准备(W32环境下): 1.首先我们得拥有Robot Framework的运行环境. a.必须安装python,因为Robot Framework是用python实现的,目前Robot Framework只支持Python2.X版本. b.安装Robot

Robot Framework 入门教程总结

Robot Framework 作为一款通用测试框架,可加载多种测试库.驱动多种测试工具,并可对各种自定义脚本进行集成.对于Robot Framework,我准备将其分为 入门--Robot Framework的安装使用及基本内容,初步实现简单测试实例: 实战--以几种常见的被测件作为案例,进行实际的侧实演示: 详解--对Robot Framework的官方文档及内置库进行详细介绍: 测试库--对常用的测试库进行介绍,并进行简单实例演示: 源码分析--对Robot Framework源码进行分析

Robot Framework:Excel操作

robot framework 操作Excel需要安装库 ExcelLibrary pip install robotframework-ExcelLibrary 将ExcelLibrary 导入到robot framework中 使用例子: 遇到问题: FAIL : NotImplementedError: formatting_info=True not yet implemented   原因是因为 xlrd只能操作.xls格式,文件直接改后缀名会报错,需要重新保存为.xls文件 FAIL

2小时入门Robot Framework

1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 Robot Framework官方网站:http://robotframework.org/ 1.2.安装 1.2.1.Robot Framework Robot Framework支持Python和Jython,本文档针对ubuntu下Python进行讲解 下载地址:https://pypi.p

Robot Framework 快速入门

Robot Framework 快速入门 目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变量 组织测试用例 测试套件 启动和卸载 使用标签 创建测试库 介绍概述 Robot Framework 是一个关键词驱动的自动测试框架.测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序.因为Robot Fra

Robot Framework(Databaselibrary库操作)

1.安装 DatabaseLibrary 库 DatabaseLibrary 下载地址:https://pypi.python.org/pypi/robotframework-databaselibrary/0.6在线文档:http://franz-see.github.io/Robotframework-Database-Library/如果像安装普通的 Python 程序,可以下载 tar.gz 文件,解压并运行 setup.py 文件进行安装. 因为在上一小节中我们已经安装了 pip,所以