博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Robot Framework - 4 - 创建和扩展测试库的示例
阅读量:7086 次
发布时间:2019-06-28

本文共 6019 字,大约阅读时间需要 20 分钟。

创建和扩展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 refrom SSHLibrary import SSHLibraryclass 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

你可能感兴趣的文章
输得太不光彩!Uber司机把算法当游戏
查看>>
亚信安全成为 “上海网络与信息安全监测预警平台” 首批发起单位
查看>>
构建基于容器的本机监控系统 应该注意什么?
查看>>
从CSE Asia 2016亚洲消费电子展看智能设备安全
查看>>
阿里CEO张勇:网络安全需要全生态协作
查看>>
科技改变未来 物联网痛下决心治电梯吃人
查看>>
在Azure中部署Kubernetes容器集群
查看>>
滨湖区胡埭建智能交通缓解交通压力
查看>>
《深度学习:Java语言实现》一一第2章 机器学习算法——为深度学习做准备
查看>>
坚持做创业护卫队的770天
查看>>
《ANSYS Workbench 14有限元分析自学手册》——导读
查看>>
OC之构造方法
查看>>
AppleWatch开发入门二——界面布局
查看>>
6个你必须用到AJAX的地方与6个不必用到的地方
查看>>
OpenExpressApp 框架结构(2)
查看>>
[总结]无线测试
查看>>
⑫云上场景:筋斗云,基于分布式云服务器的深度挖掘
查看>>
Waiting Auto-INC LOCK导致死锁
查看>>
wake-up signal SIGALRM from alarm() or setitimer(). SIG_DFL & SIG_IGN
查看>>
HTTP/2 对 Web 性能的影响(上)
查看>>