软件自动化测试框架
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件自动化测试框架
自动化测试框架的学习和使用
培训内容目录
• 什么是自动化测试框架? • 自动化框架思想 • 自动化测试框架设计原则
• 关键字驱动的自动化测试框架
• Robot Framework+Selenium2自动化测试框架
文章地址:/front/det-1.html
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(三)
• 根据库提供的关键字编写测试用例
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(四)
• 测试结果查看
文章地址:/front/det-1.html
测试扩展库开发(一)
•编写一个简单的 python扩展库 •引入库的相对 /绝对路径
文章地址:/front/det-1.html
测试扩展库开发(二)
•利用扩展库关键字编写自动化测试用例
文章地址:/front/det-1.html
自动化框架设计的原则
测试框架脚本应与业务、数据分离。 测试框架与被测应用程序独立。 测试框架应易于扩展、维护。
测试脚本所使用的测试语言应该是与框架独立的。 测试框架不应该让框架的复杂性影响到测试人员。
文章地址:/front/det-1.html
关键字驱动的自动化测试框架(一)
什么是自动化测试框架?
在了解什么是自动化测试框架之前,先了解一下什么叫 框架?框架是整个或部分系统的可重用设计,表现为一组 抽象构件及构件实例间交互的方法;另一种定义认为,框架 是可被应用开发者定制的应用骨架。前者是从应用方面而 后者是从目的方面给出的定义。 从框架的定义可以了解, 框架可以是被重用的基础平台;框架也可以是组织架构类 的东西。其实后者更为贴切,因为框和架本来就是组织和 归类所用的。 所以自动化测试框架的定义为:由一个或多个自动化测 试基础模块、自动化测试管理模块、自动化测试统计模块 等组成的工具集合。也可以是一种思想和方法的集合。
文章地址:/front/det-1.html
框架分类
• 按框架的定义来分 自动化测试框架可以分为:基础功能 测试框架、管理执行框架。 • 按不同的测试类型来分 可以分为:功能自动化测试框架、 性能自动化测试框架。 • 按测试阶段来分 可以分为:单元自动化测试框架、接口 自动化测试框架、系统自动化测试框架。 • 按组成结构来分 可以分为:单一自动化测试框架、综合 自动化测试框架。 • 按部署方式来分 可以分为:单机自动化测试框架、分布 式自动化测试框架。
关键字驱动的自动化测试框架是对数据驱动的逻 辑扩展,用关键字的形式将测试逻辑封装在数据文件中, 测试工具只要能够解释这些关键字即可对其应用自动化, 它的核心思想可以概括为三个分离。 • 界面元素名与测试内部对象名的分离 在被测应用程序和录制生成的测试脚本之间增加一个抽 象层,它可以将界面上的所有元素映射成相对应的一个逻 辑对象,测试针对这些逻辑对象进行,界面元素的改变只 会影响映射表,而不会影响测试。 • 测试描述与具体实现细节的分离 测试描述只说明软件测试要做什么以及期待什么 样的结果,而不管怎样执行测试或怎样证实结果。
文章地址:/front/det-1.html
数据驱动思想
• 所谓数据驱动思想 从数据文件读取输入数据,通过变量 的参数化,将测试数据传入测试脚本,不同的数据文件对 应不同的测试用例。 关键是其思想能够好的应用到你的框架中。就是 变量不变,数据驱动结果,不同的数据导致了不同的结果 的产生。而对于数据的导入,可以通过很多方式,例如: EXCLE表、XML(用在WEB中)、数据库(DB)、C键字思想 关键字驱动或者一个关键字,对对象的 抓取,其测试对象就是一种面向对象的思想,例如:QTP、 RFT中,对象可以为一个数据封装为一个关键字(即可以将 gui元素封装成了一个个关键字),这样可以对其关键对象 进行各种操作了,不同的对象可以驱动不同的测试流向与 结果。 关键字驱动测试是数据驱动测试的一种改进类型, 它将测试逻辑按照关键字进行分解,形成数据文件,关键 字对应封装的业务逻辑。 关键字主要包括:被操作对象 (Item)、操作(Operation)和值(value),依据不同 对象还有其它对应参数。关键字驱动的主要思想是:脚本 与数据分离、界面元素名与测试内部对象名分离、测试描 述与具体实现细节分离。可根据界面的变化更新对应的关 键字对象,而不用重新录制脚本。
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(一)
• 新建测试项目、测试套件,并引入所用到的库
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(二)
• 查询提供的关键字及使用方法
学习思考
• 定制化Robot Framework的GUI界面开发? • 分布式自动化测试工具(Selenium Grid)? • 关键字库的扩展及简化? • 自动化测试用例编写的有效性? • 自动化测试应用范围?
文章地址:/front/det-1.html
Robot Framework+Selenium2框架
• Robot Framework 的架构是一个通用的验收测试和验收测 试驱动开发的自动化测试框架(ATDD)。它具有易于使用 的表格来组织测试过程和测试数据。 • Selenium2 是用于测试 Web 应用程序用户界面 (UI) 的常 用框架。它是一款用于运行端到端功能测试的工具。拥有 简洁的API,WebDriver和WebElement对象,更好的抽象。 且支持多中操作系统,多语言,多浏览器。 • Robot Framework+Selenium2:基于Selenium2提供的测试 库,通过Robot Framework以关键字编写、组织测试用例, 执行并收集分析结果,形成一套web应用自动化测试的解决 方案(即以关键字驱动的自动化测试框架)。
文章地址:/front/det-1.html
库思想
• 所谓测试库思想 就是模块化思想的升华,其为应用程序 的测试创造了库文件(可以是APIs、DLLs等),这些库文 件为一系列函数的集合。其与模块化思想不同的是,其拓 展了接口思想,即可以通过接口去传递参数,而不是一个 封死的模块,可以说是一个多了一个“门”的交互型模块。 例如:还是以上那个测试用例,只是将用户名输 入、密码输入、确定登录、取消登录封装成一个库,这个 库含有一个函数Login,这个函数Login接收两个参数“用 户名、密码”,对输入不同的用户名和密码可以进行不同 的测试用例。
文章地址:/front/det-1.html
关键字驱动的自动化测试框架(二)
这样做是因为测试的实现细节通常与特定的平台以及特定 的测试执行工具有着密切的联系。这种分离使得测试描述 对于应用实现细节是不敏感的,而且有利于测试在工具和 平台间的移植。 • 脚本与数据的分离 最后,可以把测试执行过程中所需的测试数据从 脚本中提取出来,在运行时测试脚本再从数据存放处读取 预先定制好的数据,这样脚本和数据可以独立维护。
文章地址:/front/det-1.html
环境安装
• python • wxpython • Robot Framework • RIDE • Selenium2Library (为了python良好的兼容性、以及robot framework扩展库的 更好支持,推荐使用ubuntu系统)
文章地址:/front/det-1.html
自动化测试框架思想
模块化 思想
库思想
数据驱 动思想
关键字 驱动思 想
文章地址:/front/det-1.html
模块化思想
• 所谓模块化思想 就是将一个测试用例中的几个不同的测 试点拆分并且将其单个点的测试步骤进行了封装,形成了 一个模块。 例如:一个测试用例要对一个登录程序进行测试, 其中包括:用户名输入、密码输入、以及确定登录;那么 就可以将用户名输入、密码输入、确定登录、取消登录四 个操作分别封装在四个不同的模块中。测试时,只需调用 其模块即可。这样的话,当一个模块有变化,你只需单独 维护那个模块即可,也可以根据模块的不同组合成不同的 测试用例。
自动化测试框架的学习和使用
培训内容目录
• 什么是自动化测试框架? • 自动化框架思想 • 自动化测试框架设计原则
• 关键字驱动的自动化测试框架
• Robot Framework+Selenium2自动化测试框架
文章地址:/front/det-1.html
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(三)
• 根据库提供的关键字编写测试用例
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(四)
• 测试结果查看
文章地址:/front/det-1.html
测试扩展库开发(一)
•编写一个简单的 python扩展库 •引入库的相对 /绝对路径
文章地址:/front/det-1.html
测试扩展库开发(二)
•利用扩展库关键字编写自动化测试用例
文章地址:/front/det-1.html
自动化框架设计的原则
测试框架脚本应与业务、数据分离。 测试框架与被测应用程序独立。 测试框架应易于扩展、维护。
测试脚本所使用的测试语言应该是与框架独立的。 测试框架不应该让框架的复杂性影响到测试人员。
文章地址:/front/det-1.html
关键字驱动的自动化测试框架(一)
什么是自动化测试框架?
在了解什么是自动化测试框架之前,先了解一下什么叫 框架?框架是整个或部分系统的可重用设计,表现为一组 抽象构件及构件实例间交互的方法;另一种定义认为,框架 是可被应用开发者定制的应用骨架。前者是从应用方面而 后者是从目的方面给出的定义。 从框架的定义可以了解, 框架可以是被重用的基础平台;框架也可以是组织架构类 的东西。其实后者更为贴切,因为框和架本来就是组织和 归类所用的。 所以自动化测试框架的定义为:由一个或多个自动化测 试基础模块、自动化测试管理模块、自动化测试统计模块 等组成的工具集合。也可以是一种思想和方法的集合。
文章地址:/front/det-1.html
框架分类
• 按框架的定义来分 自动化测试框架可以分为:基础功能 测试框架、管理执行框架。 • 按不同的测试类型来分 可以分为:功能自动化测试框架、 性能自动化测试框架。 • 按测试阶段来分 可以分为:单元自动化测试框架、接口 自动化测试框架、系统自动化测试框架。 • 按组成结构来分 可以分为:单一自动化测试框架、综合 自动化测试框架。 • 按部署方式来分 可以分为:单机自动化测试框架、分布 式自动化测试框架。
关键字驱动的自动化测试框架是对数据驱动的逻 辑扩展,用关键字的形式将测试逻辑封装在数据文件中, 测试工具只要能够解释这些关键字即可对其应用自动化, 它的核心思想可以概括为三个分离。 • 界面元素名与测试内部对象名的分离 在被测应用程序和录制生成的测试脚本之间增加一个抽 象层,它可以将界面上的所有元素映射成相对应的一个逻 辑对象,测试针对这些逻辑对象进行,界面元素的改变只 会影响映射表,而不会影响测试。 • 测试描述与具体实现细节的分离 测试描述只说明软件测试要做什么以及期待什么 样的结果,而不管怎样执行测试或怎样证实结果。
文章地址:/front/det-1.html
数据驱动思想
• 所谓数据驱动思想 从数据文件读取输入数据,通过变量 的参数化,将测试数据传入测试脚本,不同的数据文件对 应不同的测试用例。 关键是其思想能够好的应用到你的框架中。就是 变量不变,数据驱动结果,不同的数据导致了不同的结果 的产生。而对于数据的导入,可以通过很多方式,例如: EXCLE表、XML(用在WEB中)、数据库(DB)、C键字思想 关键字驱动或者一个关键字,对对象的 抓取,其测试对象就是一种面向对象的思想,例如:QTP、 RFT中,对象可以为一个数据封装为一个关键字(即可以将 gui元素封装成了一个个关键字),这样可以对其关键对象 进行各种操作了,不同的对象可以驱动不同的测试流向与 结果。 关键字驱动测试是数据驱动测试的一种改进类型, 它将测试逻辑按照关键字进行分解,形成数据文件,关键 字对应封装的业务逻辑。 关键字主要包括:被操作对象 (Item)、操作(Operation)和值(value),依据不同 对象还有其它对应参数。关键字驱动的主要思想是:脚本 与数据分离、界面元素名与测试内部对象名分离、测试描 述与具体实现细节分离。可根据界面的变化更新对应的关 键字对象,而不用重新录制脚本。
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(一)
• 新建测试项目、测试套件,并引入所用到的库
文章地址:/front/det-1.html
使用RIDE编写第一个测试用例(二)
• 查询提供的关键字及使用方法
学习思考
• 定制化Robot Framework的GUI界面开发? • 分布式自动化测试工具(Selenium Grid)? • 关键字库的扩展及简化? • 自动化测试用例编写的有效性? • 自动化测试应用范围?
文章地址:/front/det-1.html
Robot Framework+Selenium2框架
• Robot Framework 的架构是一个通用的验收测试和验收测 试驱动开发的自动化测试框架(ATDD)。它具有易于使用 的表格来组织测试过程和测试数据。 • Selenium2 是用于测试 Web 应用程序用户界面 (UI) 的常 用框架。它是一款用于运行端到端功能测试的工具。拥有 简洁的API,WebDriver和WebElement对象,更好的抽象。 且支持多中操作系统,多语言,多浏览器。 • Robot Framework+Selenium2:基于Selenium2提供的测试 库,通过Robot Framework以关键字编写、组织测试用例, 执行并收集分析结果,形成一套web应用自动化测试的解决 方案(即以关键字驱动的自动化测试框架)。
文章地址:/front/det-1.html
库思想
• 所谓测试库思想 就是模块化思想的升华,其为应用程序 的测试创造了库文件(可以是APIs、DLLs等),这些库文 件为一系列函数的集合。其与模块化思想不同的是,其拓 展了接口思想,即可以通过接口去传递参数,而不是一个 封死的模块,可以说是一个多了一个“门”的交互型模块。 例如:还是以上那个测试用例,只是将用户名输 入、密码输入、确定登录、取消登录封装成一个库,这个 库含有一个函数Login,这个函数Login接收两个参数“用 户名、密码”,对输入不同的用户名和密码可以进行不同 的测试用例。
文章地址:/front/det-1.html
关键字驱动的自动化测试框架(二)
这样做是因为测试的实现细节通常与特定的平台以及特定 的测试执行工具有着密切的联系。这种分离使得测试描述 对于应用实现细节是不敏感的,而且有利于测试在工具和 平台间的移植。 • 脚本与数据的分离 最后,可以把测试执行过程中所需的测试数据从 脚本中提取出来,在运行时测试脚本再从数据存放处读取 预先定制好的数据,这样脚本和数据可以独立维护。
文章地址:/front/det-1.html
环境安装
• python • wxpython • Robot Framework • RIDE • Selenium2Library (为了python良好的兼容性、以及robot framework扩展库的 更好支持,推荐使用ubuntu系统)
文章地址:/front/det-1.html
自动化测试框架思想
模块化 思想
库思想
数据驱 动思想
关键字 驱动思 想
文章地址:/front/det-1.html
模块化思想
• 所谓模块化思想 就是将一个测试用例中的几个不同的测 试点拆分并且将其单个点的测试步骤进行了封装,形成了 一个模块。 例如:一个测试用例要对一个登录程序进行测试, 其中包括:用户名输入、密码输入、以及确定登录;那么 就可以将用户名输入、密码输入、确定登录、取消登录四 个操作分别封装在四个不同的模块中。测试时,只需调用 其模块即可。这样的话,当一个模块有变化,你只需单独 维护那个模块即可,也可以根据模块的不同组合成不同的 测试用例。