01- 关于测试库(Test libraries)

Test libraries provide the actual testing capabilities to Robot Framework by providing keywords. 
There are several standard libraries that are bundled in with the framework, and galore of separately developed external libraries that can be installed based on your needs.
  • Standard: Builtin, OperatingSystem, String, Dialogs, Remote, Telnet, XML, etc.
  • External: Selenium2Library, SSHLibrary, HTTP library, etc.
  • Other: Creating test libraries, etc.
如何查找测试库:
安装测试库
注意:包之间的依赖关系和安装顺序;    
示例 : 以在Windows7-64位系统安装robotframework-selenium2library为例
  1. pip install decorator
  2. pip install selenium
  3. pip install robotframework-selenium2library

02- 测试用例的组织层次结构

(Web Demo —Valid Login)

•测试集(Test Case Suite)

    测试用例被实现的地方,包含了一个或多个测试用例,其本质是一个文本文件(HTML, TSV,TXT,ROBOT)  。在测试集中可以引入扩展库,Resource以及变量。
    为了便于管理,一般是通过引入资源文件(Resource files)的方式来引入扩展库,关键字和变量。测试集里面最好只存有测试用例。
    典型情况下,每个工程都会有至少一个测试组件。在大一些的工程中,把不同功能点的测试切分成多个测试组件是合理的。一个测试集目录可以包含其他测试集目录,这种层次结构可以满足层嵌套的需要。

•测试用例(Test Case)

    一个测试用例对应Test Case Suite下的一个测试用例标识。
    为了方便用例管理,Test Case里面尽量做到方便,简洁,易读。所以Test Case里面很少有内容的判断,一般都是直接调用Keyword。

•自定义关键字(User Keyword ) 

    建议存放在资源文件(Resource files)中。
    可以将自定义关键字理解为是测试步骤的组合,通常用于封装已有关键字的调用,以及测试用例结果的判断。

•变量(Variables)

     不常改变的变量可以放到.py文件中,调试用经常改变的变量可以放在Resources中。
     变量建议存放在资源文件(Resource files)或者python库函数中。
     可分为返回值变量和参数变量。
     返回值变量:通常写在函数名的左边,有几个返回值,则可以写几个变量。
     参数变量:通常写在函数名的右边,有几个参数则必须填几个。Robot有参数提醒功能。

•资源文件(Resource files)

    建议在资源文件中自定义高层关键字,引入扩展库以及自定义变量。

•变量文件(Variable files)  

    可以提供比资源文件更灵活的方式创建变量

•测试库(Test libraries)

    包含最低级别的关键字。
    如果是安装的扩展库,引用后可以直接使用。
    如果是自己编写的扩展库,可以放在.py文件中,然后从相对路径调用后使用。
 

03- 创建简单自定义的test library

•确认要实现的内容

1:公式:(a+b)的a次方,a,b是正整数
2:有一网址(字符串),http://www.example.com?ip=192.187.111.198&code=12345&name=cat,想得到ip内容,即192.187.111.198
3:(用户名+10位随机数+一个key)进行md5加密

•编写test library

测试库以.py为后缀名,文件名与实现该测试库的模块名或者类名相同: <Class name>.py。
根据需要编写testlibrary,定义相关的class及函数等。
返回值在 Python中采用 return 语句。
# -*- coding: utf-8 -*-

import re        ## re 模块提供了一系列功能强大的正则表达式 (regular expression) 工具
import hashlib ## Secure hashes and message digests
import random ## random 模块包含许多随机数生成器
import string ## string 模块提供了一些用于处理字符串类型的函数, class CreatNewLibrary():
def ABA(self,a,b):
'''
公式:(a+b)的a次方,a,b是正整数
Example:
| ${c} | aba | 2 | 3 |
结果${c}=25
'''
return (int(a)+int(b))**int(a) def Find_IP(self,url):
'''
从网址获取IP地址
Example:
| ${ip} | Find IP | http://www.example.com?ip=192.187.111.198&code=12345&name=cat |
结果${ip}=192.187.111.198
'''
ip = re.findall('ip=(.*?)&',url,re.I)
if(ip and ip[0]!=''):
return ip[0]
else:
return "没有匹配到IP" def MD5_RandStr(self,username,key='UYTYUT-65HGj-IYR8760-YRJKKL9'):
'''
(用户名+一个key)进行MD5加密,key有默认的,也可以执行设定
Example :
| ${string} | MD5 RandStr | tester |
| ${string} | MD5 RandStr | tester | UYTYUT-65HGj-IYR8760-YRJKKL9
'''
return hashlib.md5(username+key).hexdigest()

•编译调试test library

保证Test library完整无误,正常运行。

•导入及确认test library

     如果将test library文件放在了testcase的同一目录下,所以直接输入文件名全称即可。
     如果test library文件在其他地方,要保证文件地址信息正确,或者以查找文件的方式导入也可。

正常的情况下,导入完成test library文件名称在settings中应显示为黑色。

按F5键,选择对应的Source名称,正常情况下,可以看到自定义库和说定义的关键字信息。

•应用test library

Test Case的编写及调试
利用自定义库的关键字完成Test Case的编写,并根据相关日志调试
*** Settings ***
Force Tags CreatNewBasicLibrary
Library CreatNewLibrary.py *** Test Cases ***
CreatNewBasicLibrary
${c}ABA 2 3
Log${c}
${ip}Find IPhttp://www.example.com?ip=192.187.111.198&code=12345&name=cat
Log${ip}
${string1} MD5 RandStr tester
Log${string1}
${string2} MD5 RandStr tester123456-654321-98765-56789
Log${string2}

Robot Framework - 1 - 测试用例与测试库的更多相关文章

  1. Robot Framework: 自定义自己的python库

    利用Robot Framework编写测试用例,往往需要开发自己的关键字,有的关键字需要通过自己编写python代码来实现.这在rf中,就需要自己定义python库.这个过程其实不复杂,本文来介绍下. ...

  2. Robot Framework(4)- 测试套件的基本使用

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 因为是基于 ...

  3. Robot Framework之测试用例分层实战

    1.1  测试用例的第一层(交互层) 1. 创建项目资源(Resource). 操作步骤: 点”项目名称”->右键,选New Resource,在弹窗Name 输入框输入资源名称 mykeywo ...

  4. 执行robot framework 的测试用例 命令行pybot使用方式

    1.执行整个项目下的所有用例: pybot 项目路径.例如: pybot D:\robot 2.执行某个suit中的所有用例: pybot 项目路径\suit文件名称. 例如:pybot D:\rob ...

  5. Robot Framework - 2 - 创建测试库

    04- 创建测试库--基础概念 Robot Framework 实际的测试能力是由测试库提供的. ***** 支持的编程语言 Robot Framework 自身是用 Python 编写的,能使用 P ...

  6. Robot Framework(十四) 扩展RobotFramework框架——创建测试库

    4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...

  7. Robot Framework - 4 - 创建和扩展测试库的示例

    创建和扩展Library的示例 示例:Check status on Linux OS 创建与使用library的基本步骤:           1--- library实现的内容和实现的方式     ...

  8. Robot Framework - 3 - 测试库API

    08- 创建测试库--发布测试库 ***** 测试库文档 为了便于维护,测试库文档应该从源代码中生成. Robot  Framework 有自己的文档工具 libdoc.py生成 API 文档. 一个 ...

  9. Robot Framework自动化测试框架初探

    Robot Framework是一款python语言编写,通用的功能自动化测试框架.它使用了比较易用的表格数据语法,基于关键字驱动测试,主要用来验收测试和验收测试驱动开发(ATDD). 本文主要介绍R ...

随机推荐

  1. How to Read a Paper

    How to Read a Paper 原文: https://www.yuque.com/lart/papers/yrkv5u 题目:How to Read a Paper 作者:S. Keshav ...

  2. span的title标签中的换行

    var strs = data.flowSummary;  strs=strs.replace(/燮r燮n/g," "); js的全局替换用/要替换的字符串/g span的titl ...

  3. Django中发件邮箱的设定

    Django中发件邮箱的设定: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'#邮件发送到邮件服务器 #EMAIL_BACK ...

  4. dubbo入门学习 二 RPC框架

    rpc框架解释 谁能用通俗的语言解释一下什么是 RPC 框架? - 远程过程调用协议RPC(Remote Procedure Call Protocol) 首先了解什么叫RPC,为什么要RPC,RPC ...

  5. Redis详细讲解(Redis原理,Redis安装,Redis配置,Redis使用,Redis命令)

    一.Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...

  6. 利用insertd查出更新记录

    DROP TABLE #tableCREATE TABLE #table(CompanyID VARCHAR(20),BillNo VARCHAR(40))UPDATE dbo.SD_Inv_Move ...

  7. 使用Python脚本分析你的网站上的SEO元素

    撰稿马尼克斯德芒克 上2019年1月, Sooda internetbureau Python就是自动执行重复性任务,为您的其他搜索引擎优化(SEO)工作留出更多时间.没有多少SEO使用Python来 ...

  8. (转)MySql中监视增删改查和查看日志记录

    转载地址为:http://blog.51cto.com/hades02/1641652 首先在命令行输入 show global variables like '%general%' ,然后出现下面的 ...

  9. [Java算法] -- 1. 常用排序之冒泡排序和选择排序

    使用Java语言实现冒泡排序和选择排序 推荐一个数据结构可视化的网站:http://zh.visualgo.net/zh (暂时访问不了) 对排序不太熟悉的朋友,建议去上面的网站学习一下,你将会发现一 ...

  10. windows putty xming virt-manager

    记一次windows环境使用linux下使用virt-manager软件的问题 环境:windows server 2008.ubuntu-server 软件:putty.virt-manager.x ...