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. MR执行环境有两种

    本地测试环境(windows): 在windows的hadoop目录bin目录有一个winutils.exe 1.在windows下配置hadoop的环境变量 2.拷贝debug工具(winutils ...

  2. 印度视觉设计师Rishab平面设计作品,简直太美了!

    来自印度的视觉设计师Rishab Jindal(@iamrishabjindal) 你别以为仅仅是视觉上吸引你眼球. 其实融入和宗教和z哲学. 你慢慢品味一下. 这张有点意思 有一种末日丧尸围城的氛围 ...

  3. openstack 王者归来学习笔记

    rpc.call方法执行的流程:(下次看代码的时候可以根据这流程来看,注意:由于rpc服务器和客户端具有很松的耦合性,因此以上步骤并不是绝对的.) 1.rpc服务器定义和启动rpc服务 2.rpc服务 ...

  4. GUI学习之十——QFrame和的QAbstractScrollArea学习总结

    上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类 一.QFrame类 1.描述 QFrame的 ...

  5. UI行业发展预测 & 系列规划的调整

    又双叒叕拖更了,上一篇还是1月22号更新的,这都3月9号了…… 前面几期把职业规划.能力分析.几个分析用的设计理论都写完了,当然实际工作中用到的方法论不止上面这些,后续会接着学习: 如果你的目标是一线 ...

  6. 关于numpy.maximum函数的测试

    atr.py import numpy as np a = np.arange(9)print("a:",a)print(a[0:3])print(a[3:6])print(a[6 ...

  7. 85、int 、NSInteger、NSUInteger、NSNumber的区别和联系

    NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short int, in ...

  8. SpringBoot_配置文件

    Properties配置 SpringBoot中采用了大量的自动化配置,但是对开发者而言,在实际项目中不可避免会有一些需要自己手动配置,承载这些自定义配置的文件就是resources 目录下的appl ...

  9. 2019.03.26 bzoj4448: [Scoi2015]情报传递(归并排序+树链剖分)

    传送门 题意简述: 给一棵nnn个点的树,树上每个点表示一个情报员,一共有mmm天,每天会派发以下两种任务中的一个任务: 1.搜集情报:指派T号情报员搜集情报 2.传递情报:将一条情报从X号情报员传递 ...

  10. Codeforces 863 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 简要题解?因为最后一题太毒不想写了所以其实是部分题解... A题 传送门 题意简述:给你一个数,问你能不能通过加前导000使其成为一个回文数 ...