51testing专访web自动化,从入门到进阶

Posted Tynam Yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51testing专访web自动化,从入门到进阶相关的知识,希望对你有一定的参考价值。

原文地址:http://www.51testing.com/zhuanti/interview_index.html#datumout

 

 我一直认为,自动化测试重在设计、构造的思想上,并不是什么技术。如果想入门自动化测试,首先要将自己做手工测试的那一套思想转换成自动化测试思想。例如要如何设计才能让测试用例不断的重复的运行,降低测试用例之间依赖,数据怎么准备,怎么销毁等。其次才是掌握一定的技术知识。下面给大家画了一个图作以简单的说明。

 

以上只是简单的入门知识点,如果需要想研究的透彻,则需要深入的学习,包括selenium源码的研究。

 

 

 自动化测试中有线性模型、模块化驱动模型、数据驱动模型、关键字驱动模型和行为驱动模型。下面给大家分别介绍一下:

线性模型:
线性模型是指将录制或编写的脚本与应用程序的操作步骤对应起来,就像流水线工作一样,每一个步骤对应一行或多行代码。每一条流水线(每个测试脚本)都是相对独立的,且不产生其他依赖与调用,这样产生的脚本叫线性脚本。这是在自动化测试早期采用的一种测试模型,由于工作脚本是线性的,所以也叫线性模型。线性模型的每一个脚本都是独立的,且几乎没有其他依赖和调用。开发成本比较高,而且代码的复用性特别差。

应用场景:

  • 可以快速编写测试脚本。
  • 完成某个操作流程。
  • 需要每个脚本单独运行。
  • 初学自动化测试的人员使用。


 模块化驱动模型:
模块化驱动测试借鉴了开发编程的模块化思想,是将重复的代码提取到一个公共的模块,然后在需要的时候调用封装好的公共模块,如果项目某一个功能有变动,只需要变动相应的脚本,很大程度上提高了编写脚本的效率。比如,登录模块就可以封装在公共模块中,一旦模块中的元素定位有所变动或其他因素影响了模块,只需要在封装的模块中进行调整对应,而不会影响到任何测试用例,机动性、灵活性非常强。维护简单方便,模块变动时只需要对相应的模块封装即可。

应用场景:

  • 使用比较广,目前绝大部分项目都在使用。
  • 多人协作,分模块开发脚本。
  • 代码可以重复使用。


数据驱动模型:
数据驱动是将测试数据和测试脚本分离,通过测试数据的改变驱动自动化的执行,从而产生不同的测试结果。简单地说,就是数据的参数化,输入不同的参数驱动程序执行,从而输出不同的测试结果。数据的保存形式可以是列表、字典,也可以保存在 Excel、数据库、xml 等外部文件中。这样就能够快速地应对测试系统中的大量数据,迅速创建出数百个测试迭代和排列。

应用场景:

  • 可以快速创建大量的测试数据。
  • 一套脚本,多个测试数据应对多个场景。


关键字驱动模型:
关键字驱动和数据驱动很相似,通过关键字的改变引起测试结果的改变,也称为表格驱动测试或基于动作字的测试。关键字驱动模型将测试用例分为 4 个不同的部分:测试步骤、测试对象、测试对象操作和测试对象数据。

  • 测试步骤:对测试步骤的一个动作描述,或者说是在测试对象上执行的动作描述。
  • 测试对象:页面中元素对象的名称,例如邮箱、密码和登录等。
  • 测试对象操作:测试对象上执行的动作名称,例如单击、打开浏览器、输入等。
  • 测试对象数据:数据是指对测试对象执行操作所需的值,例如“邮箱”字段的值为 “tynam@test.com”。


RobotFramework 工具就是遵循关键字驱动模型开发的一个功能强大的测试工具,其封装了底层的代码,提供给用户独立的图像界面,以 “填表格” 形式编写测试用例,降低了脚本的编写难度。

应用场景:

  • 通过可视化工具创建测试用例,适合编写简单的脚本。
  • 项目稳定,测试人员易上手。


行为驱动模型:
行为驱动开发英文名为 Behave Driven Development,简称 BDD,是一种敏捷开发方法,主要是从用户的需求出发强调系统行为。将此模型借鉴到自动化测试中称其为行为驱动测试模型,它是一种通过使用自然描述语言确定自动化测试脚本的模型。用例的写法基本和功能测试用例的写法类似,具有良好协作的益处。这种测试模型使每个人都可以参与到行为开发中,而不仅仅是程序员。每个测试场景都是一个独立的行为,以避免重复,并且已有的行为可以重复使用。

应用场景:

  • 行为驱动模型的思想非常有价值,但是国内还不太流行,在真实的自动化项目中还没有多少人使用。
  • 人人都可以写测试用例。

以上便是对五种自动化模型的简单介绍。对于这五种自动化模型的实现,有一个简单的Demo可供大家参考,下载地址:https://github.com/tynam-yang/AutomatedTestModel

 

 

以上是关于51testing专访web自动化,从入门到进阶的主要内容,如果未能解决你的问题,请参考以下文章

移动web性能优化从入门到进阶

SQL Server AlwaysON从入门到进阶——存储

KMP算法-从入门到进阶

Python 爬虫利器 Selenium 从入门到进阶

Python入门自学进阶-Web框架——16Django登录/注册

Python入门自学进阶-Web框架——16Django登录/注册