Python自动化测试全攻略:五种自动化测试模型详解在软件系统开发过程中扮演着越来越重要的角色。与传统的人工测试技术相比,自动化测试具有可操作性好、重复性好、效率高等特点,能够更全面、更快速地执行测试用例,在保证产品质量的前提下实现软件产品的快速开发。迭代。(图片来源于网络)关于自动化测试的定义,本文不再赘述。一般来说,自动化测试是指部分或完全替代人工工作,结合测试工具和测试规范,自动执行测试脚本,提高测试效率的过程。因此,我们可以将自动化测试理解为一个集成系统,它包括测试功能的函数库、测试数据源、测试对象标准以及各种可复用的模块。与人工测试相比,自动化测试的主要进步在于引入了自动化测试模型。自动化测试工具是“死的”,没有任何想象力。因此,自动化测试的好坏完全取决于测试工程师对测试模型的选择。更高性能的测试模型将带来更快的测试速度和更高的测量精度。什么是自动化测试模型?自动化测试发展至今,先后产生了五种测试模型:线性模型、模块化驱动模型、数据驱动模型、关键字驱动模型和行为驱动模型。为了帮助刚接触自动化测试行业的从业者快速掌握使用这些测试模型的基本方法,葡萄城公开课特别邀请了《Python Web自动化测试入门与实战》的作者杨丁佳老师解读《Python自动化测试全攻略》网上给我们,通过示例代码详细讲解了这五种自动化测试模型的优缺点。欢迎所有同学点击这里报名:http://live.vhall.com/756567602。线性模型被记录或脚本化,一个脚本完成一个场景(一组完整的功能操作),通过脚本的回放进行自动化测试。测试脚本如下图所示(公开课后可以下载完整代码):从上图可以看出,线性测试模型的优点是每个脚本都是独立的,任何脚本文件都可以独立运行;当然,它的缺点也很明显,就是测试用例的开发和维护成本非常高。在这种模式下,数据和脚本混合在一起。如果数据发生变化,需要修改脚本,用例的复用性差。模块化驱动模型把脚本中可复用的部分取出来,写成一个通用的模块,需要的时候调用,可以大大提高测试人员编写脚本的效率。测试脚本如下图所示(公开课后可以下载完整代码):如上图,模块化驱动模型是将测试脚本中相同部分的代码分开,形成一个模块或图书馆。这样做有两个好处:提高开发效率和代码复用性,测试人员不需要重复写同一个脚本,如果事先写好一个测试模块,后面只需要调用,不会重复造轮子。这简化了代码的维护。如果测试模块发生变化,只需要修改login.py文件中对应模块的代码即可,所有调用该模块的脚本都不需要修改。即便如此,模块化驱动模型仍然未能将数据和用例完全分离,这对后期的维护工作会产生一定的影响。数据驱动模型为了解决线性模型和模块化驱动模型的缺点,数据驱动模型诞生了。模型会根据数据的变化引起测试结果的变化,这显然是一个非常先进的概念和想法。简单来说,模型是数据的参数化呈现,即通过输入不同的参数来驱动程序执行,输出不同的测试结果。测试脚本如下图所示(公开课后可以下载完整代码):这种模式最大的好处就是实现了测试数据和测试脚本的分离,不管我们读的是数组,字典,functions,或者csv,txt等文件,我们可以传递参数来驱动脚本执行,返回不同的测试结果。关键词驱动模型这是一种功能性的自动化测试模型,通过改变关键词来改变测试结果。QTP、robotframework等都是关键字驱动的自动化测试工具。这类工具的典型特征是拥有一套简单易用的可视化界面。测试人员需要做的就是在表单中填写测试脚本,填好之后思考三个问题:我要做什么?给谁?怎么做?本文中使用的SeleniumIDE是一个关键字驱动的自动化工具。SeleniumIDE的脚本通常包括命令(command)、对象(target)和值(value)三部分。测试脚本可以直接在浏览器中运行。就像真正的用户在操作一样。通过上述格式描述不同的测试对象,可以得到不同的测试结果。关键字驱动模型以对象为出发点,降低了编写自动化测试用例的难度。对于不懂代码的同学来说非常直观。可视化界面带来更高的工作效率和更低的维护门槛。Behavior-DrivenModel最后,本文将介绍一种国外非常流行的测试模型——Behavior-DrivenModel。离场强调系统行为。在自动化测试中借鉴BDD,生成行为驱动的测试模型。该模型使用自然描述语言来确定自动化测试脚本。它的优点是可以用自然语言编写测试用例。测试脚本如下图所示(公开课后可下载完整代码):如上图所示,用例的编写方式与功能测试用例基本类似,良好合作的好处。Behavior-DrivenTesting模型使每个人都可以参与开发测试,而不仅仅是程序员。该模型下的每一个测试场景都是一个独立的行为,已有的行为可以被复用。测试报告如下图:扩展知识目前Python中最流行的BDD框架是Behave,它和其他基于Gherkin的Cucumber框架非常相似,当然还有其他的BDD框架,比如pytest-bdd和萝卜等。在使用Selenium进行自动化测试时,需要注意以下几点:在寻找网页元素时,注意网页中框架的使用。首先,使用browser.switch_to.frame("contentFrame")命令进入框架选择想要的内容。元素。记得用完要回到上一帧,browser.switch_to.parent_frame()。webmtc主要通过id选择和xpath获取元素,webmtc网页中使用的类比较少。请注意,页面刷新后代码将找不到框架。例如,呼叫建立后页面会刷新,多点会议创建后页面会刷新,点击设置界面和通话界面的页面也会刷新。以上就是这五种自动化测试模型的基本介绍。在本次公开课中,讲师不仅会依次演示各个模型的测试代码,还会重点讲解Web自动化测试的相关技术(包括从自动化测试的基础到改进,从理论到实践,从单一知识点到项目应用等)进行详细解读,可以帮助自动化测试零基础的初学者和想进入自动化测试行业的开发者快速掌握自动化测试的基础知识,并具备一定的Web自动化测试开发能力。欢迎所有同学点击这里报名:http://live.vhall.com/756567602。
