谈到Robot  Framework 分层的思想,就不得不提“关键字驱动”。

关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同。

在上一节的selenium API 中所介绍的方法其实就是关键字,如“open browser” 就是一个关键字。从底层去看它就是一个通过编程去现实的一个方法。

def  open_browser(url,browser):
#通过browser找到相应的浏览器驱动,调用浏览器,借助python的httplib、urllib模块将url传递给浏览器。从而实现open brwoser 的目的。

通过上面的伪代码表述的“关键字”的底层其实还是程序定义的方法。

  回到分层的思想上,在程序设计的讲究设计模式,设计模式其实就是根据需求使用抽象与封装,其实就是分层思想。把一个实现过程分成不同多层。提高的灵活性,从而达到可扩展性和可维护性。

  再回到自动化的话题上,我们可以把操作步骤封装一个一个的方法(关键字),通过调用关键字来实现测试用例。

参考本系列的第一节创建一条百度搜索的测试用例。

我现在要写5条百度搜索的用例:

  可以在Test_suit测试套件下创建5条测试用例。其实对于每一条测试用例来说,只是搜索的内容不同,脚本步骤是完全一样的。这样做无疑增加的脚本的冗余,而且不便于维护。假如,百度输入框的定位方式变了,我不得不打开每一条用例进行修改。

我们可以过创建关键字的方式,从而实现分层的思想来解决这个问题。

Robot  Framework 关键字                      

1、创建资源

右键“测试项目”选择“new resource”创建资源。

输入资源名称:

2、创建关键字

右键“业务关键字”选择“new User Keyword” 来创建用户关键字。

输入关键字的名称:

3、编辑关键字

分析:

对于一个测试用例来说,用户关心的是输入什么内容,得到什么结果。

所以,对于“百度搜索”关键字来说,需要创建两个接口变量${search}和${result} 两个变量,用于接收输入内容和预期结果。

点击Arguments输入框,定义变量,多个变量从用“|”隔开。

在百度搜索中使用参数化变量。

4、添加创建的资源

切换到测试套件(Search)页面,添加资源(业务关键字.txt)

5、调用关键字

现在就可以在测试用例中使用创建的关键字了(百度搜索)。

对于每一条用例来说,调用“百度搜索”关键字,输入搜索内容,输入预期结果即可。不同关心用例是如何执行的。如果百度输入框的定位发生了变化,只用去修改“百度搜索”关键字即可,不用对每一条用例做任何修改。大大提高的用例的维护性和扩展性。

到此,Robot  Framework +selenium 自动化测试粗犷的讲完了。当然还有更多API 的使用,和细枝末节的设置没有介绍。但我们已经可以拿它来开展自动化工作了

最新文章

  1. 程序设计入门——C语言 第4周编程练习 1 素数和(5分)
  2. Solr官方文档翻译-About & Getting Started
  3. Case 架构的实际应用-2
  4. SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
  5. fragment详解(官方文档)
  6. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(一)
  7. Dynamics CRM2015 非基础语言环境下产品无法新建的问题
  8. 实现CString的Format功能,支持跨平台
  9. Hadoop 搭建集群的步骤
  10. 数据库操作中如何批量执行多个sql文件?
  11. java线程间的通信方式
  12. 基于 Python 官方 GitHub 构建 Python 文档
  13. Effective Java 第三版——67. 明智谨慎地进行优化
  14. 在eclipse中使用Tomcat时出现Could not publish server ...错误
  15. Intellij IDEA 生成返回值对象快捷键
  16. WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version
  17. win10装回win7。PE下把原来的系统盘格掉,再安装hdd,重启就好了
  18. noip第10课资料
  19. MAC软件下载比较好的三个第三方网站
  20. 在虚拟机中使用Ghost系统盘安装

热门文章

  1. STL 中的map 与 hash_map的理解
  2. day 21 01 序列化模块和模块的导入的复习以及包的初识
  3. Ocelot Consul
  4. SDOI2010粟粟的书架
  5. 来到cnblong dayone
  6. 2个list取交集
  7. SFML从入门到放弃(1) 窗口和交互
  8. kali linux之Msf-exploit模块,生成payload
  9. 【lojg152】 乘法逆元 2(数学)
  10. 五,Smarty模板技术/引擎——自定义函数机制