Robot Framework - 4 - 创建和扩展测试库的示例
创建和扩展Library的示例
示例:Check status on Linux OS
创建与使用library的基本步骤:
1--- library实现的内容和方式
2--- 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的编译
4 --- Test Case的编写与调试

5 --- 扩展已存在的测试库的方式
Robot Framework - 4 - 创建和扩展测试库的示例的更多相关文章
- Robot Framework(5)- 使用测试库
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 在RF 测 ...
- Robot Framework(五)使用测试库
使用测试库 测试库包含那些最低级别的关键字,通常称为 库关键字,实际上与被测系统交互.所有测试用例总是使用某些库中的关键字,通常是通过更高级别的用户关键字.本节介绍如何使用测试库以及如何使用它们提供的 ...
- Robot Framework(8)- Collections 测试库常用的关键字列表
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 所有关键字 ...
- Robot Framework(6)- BuiltIn 测试库常用的关键字列表
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 所有关键字 ...
- Robot Framework(7)- DateTime 测试库常用的关键字列表
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 所有关键字 ...
- robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
(一)自定义和浏览器相关的关键字 以下代码GitHub 版本库地址: https://github.com/blairwind/blog_rf SeleniumLibrary的扩展文档中提供了3种增加 ...
- Robot Framework - 2 - 创建测试库
04- 创建测试库--基础概念 Robot Framework 实际的测试能力是由测试库提供的. ***** 支持的编程语言 Robot Framework 自身是用 Python 编写的,能使用 P ...
- RobotFramework自动化测试框架(3)- RobotFramework扩展测试库、资源文件、变量文件
扩展测试库 扩展测试库可使用python或java语言编写.后直接导入需要使用的测试用例文件即可. 具体的实现和操作,后续补充.请参考官网. 资源文件 在资源文件中定义用户关键字,它提供了共享机制,即 ...
- Robot Framework - 5 - 创建测试数据
Creating test data User Guide - Creating test data:http://robotframework.org/robotframework/latest/R ...
随机推荐
- 一、PyQt5基础概念与安装配置
一.初识PyQt5 对于桌面程序开发,用户图形界面(GUI)的设计非常重要.一款美观.易用的用户界面可以很大程度上提高对使用这的友好度.由于Python最初是作为脚本语言开发,并没有GUI功能.但Py ...
- python数据结构(二)------元组
元组是不可变序列,因此,元组的操作非常简单,本文就简单介绍一下,并解释下元组存在的意义: 2.2.1 元组的创建 2.2.2 tuple函数 2.2.3 基本元组操作 2.2.4 元组存在的意义 2. ...
- 第四周助教工作总结——NWNU李泓毅
1. 助教博客链接: https://www.cnblogs.com/NWNU-LHY/ 2. 作业要求链接: www.cnblogs.com/nwnu-daizh/p/10487329. ...
- jieba库的使用和好看的词元
一.jieba库的使用与说明 1.jieba库基本介绍 jieba库是优秀的中文分词第三方库 -中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 ...
- 解决.Net Core跨域问题
什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 跨域的几种情况 1.端口和协议的不同,只能通过后台来解决 2.localhost和127.0.0.1虽然 ...
- (PMP)第1章-----引论
1.指南概述和目的: 2.基本要素: 项目:创造独特的产品,服务或成果而进行的临时性工作.特点:1.临时性 临时性并不一定意味着项目时间短.2.独特性 3.渐进明细性 项目管理:就是将知识,技 ...
- SpringCloud-分布式配置中心(基于SpringBoot2.X)
一.配置中心的作用:可以将多种应用的配置进行集中式的管理,将这些配置统一存放到git或svn里面存储: 二.搭建SpringCloud-Config-Server 2.1如图后续步骤勾选Config ...
- apache kylin的单节点及多节点安装
Kylin的使用安装文档Kylin简介Kylin是什么Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区.它提供Hadoop之上的SQL查询接口及多维分析(OLAP) ...
- nice coding (与其亡羊补牢,不如未雨绸缪)
一.需求前 架构规范 建模规范 编码规范(流程控制,方法抽取,日志打印等) <Effective Java> <Design Patterns> 二.需求中 1. 明确需求(别 ...
- ajax轮询与长轮询
刚刚网了关于轮询的知识,必须拿到自己这里来做个备份了! 其实以前用ajax轮询做个及时数据更新的,只是当时做了不知道那个就是轮询. 首先我们什么时候会想到用轮询技术呢? 一般而言,最多的是及时信息 ...