自动化脚本编写都涉及到对控件的操作,那么是把这些要操作的控件放在一起进行管理,还是把控件放到脚本中在操作时进行描述呢,这一直都是很有争论的问题。两种操作方式都有其优劣,不能绝对的说其中某一种一定比另一种好,根据不同的应用场景,选择不同的操作方式,才能扬长避短。
对象库,就是把控件放在一处地方集中进行描述、管理,使用时只需要使用该控件的别名即可。如:
LoginPage.StandButton.click
它的优点:
一、这样的脚本看起来很简洁
二、控件的描述只需要在对象库做一次,不需要反复的在脚本中做
三、如果控件发生了变化,那么你需要做的仅仅是维护对象库,不需要去维护所有的脚本
四、控件对象可以共享,你做过的工作,不需要别人再来做一次
五、对象库可以提前构建,不依赖对象的具体实现,这样我们的测试脚本也就可以提前编写,推动整个自动化工作前移
六、其它…………
它的缺点:
一、脚本是很简洁了,但其可读性变差了,至少增加了读脚本的成本
二、既然放在一地方进行维护,就涉及到命名规范的建立,否则就会乱
三、维护的时候,加大了评估所带来的影响的难度,因为你可能不知道这个对象在哪里被引用了
描述性编程,就是在编写测试脚本时描述需要操作的控件。如:
p.button(“#name_submit”).click
它的优点:
一、脚本编写很灵活
二、脚本可读性相对对象库来说,会好很多
三、整个自动化测试框架会相对简单,带来的是自动化测试相对稳定
四、一定程度上降低了脚本之间的耦合性,控件的维护不会影响到其它脚本
五、其它…………
它的缺点:
一、最大的缺点是显而易见的,脚本的维护难度加大了,如果控件发生了变化,维护的工作量很大
二、控件的描述要反复的做,不能共享
三、测试脚本相对来说变的复杂了,没有对象库的脚本简洁
四、正是因为脚本的编写依赖着控件的描述,所以脚本的编写也很难提前
上面罗列了部分两种操作模式各自的优缺点,如何做出正确的选择,就需要根据应用场景有所取舍。
对于大型的、持续优化的被测系统,对象库使用的选择要优与描述性编程,这种场景下的自动化测试不是各自独立的,不是临时性的。对象库的前期投入,表面上可能是会加大自动化的成本,但它的共享和维护都降低了后续自动化的成本,而且为自动化测试脚本的关键字驱动打下了基础,并且可以推动控件定义中的一些标准和规范的实施,这是可以提高被测试系统的可测试性以及稳定性。
相关推荐
【QTP描述性编程】是自动化测试工具QuickTest Professional(现在称为UFT,Unified Functional Testing)中的一个重要概念。QTP,作为一款功能强大的自动化测试工具,由HP(现为Micro Focus)开发,广泛应用于软件的...
在QTP中,描述性编程(Descriptive Programming)是一个重要的概念,它为自动化测试提供了一种灵活的、不依赖于对象库的方式来定位和操作应用程序中的对象。 描述性编程的核心思想是将需要识别的对象的属性直接写入...
通过对QTP中的描述性编程实现参数化的深入理解,我们可以更加高效地利用QTP来进行自动化测试。参数化不仅能够提高测试脚本的灵活性,还能帮助我们更好地管理和维护测试数据。此外,掌握一些基本的调试技巧对于快速...
在以下情况下,你可能需要使用描述性编程: 1. **对象属性变化**:当被测应用中的对象识别属性(如名称、位置等)发生变化,导致QTP无法正常识别时。 2. **动态对象**:测试中涉及的对象是动态生成或其属性随时间...
通过这些技术的综合运用,QTP的描述性编程可以帮助测试人员编写出更灵活、可读性强且适应性强的自动化测试脚本,提升测试效率和质量。在实际项目中,应根据具体需求选择合适的技术和方法,以实现最佳的测试效果。
### QTP描述性编程 #### 一、QTP与对象库的基本概念 在自动化测试工具QTP(Quick Test Professional)中,对象库是存放被测试应用程序...描述性编程作为一项重要的技术手段,在QTP自动化测试中扮演着不可或缺的角色。
- **描述性编程与对象库编程**:对比两种编程方式的特点和适用场景。 - **关键鉴别属性与可选鉴别属性**:介绍这两种属性的区别及其在对象识别中的作用。 - **对象智能识别**:简要介绍对象智能识别的概念及其在提高...
"基于C# UI Automation自动化测试自动化测试示例工程" 是一个使用C#编程语言构建的项目,其核心目标是实现UI(用户界面)自动化测试。UI Automation是.NET Framework提供的一种用于测试Windows应用程序用户界面的...
### QTP描述性编程技术详解 #### 一、概述 QTP(Quick Test Professional),现称为UFT(Unified Functional Testing),是...通过掌握上述两种描述性编程的方法及相关技巧,可以显著提升自动化测试项目的效率和质量。
- **描述性编程**:这种方式不需要对象库,对象在运行时动态获取,增加了脚本的灵活性和适应性。 - **脚本组合方式**: - **Selenium IDE**:适用于简单的测试场景,通过录制和回放的方式进行测试,易于上手但功能...
对象库是QTP中用于存储和管理测试对象的地方,它是实现自动化测试稳定性和可维护性的关键。 ##### 1.5.3 一个简单的实例介绍对象库原理、机制及操作流程 对象库的工作原理是将测试过程中涉及的所有对象存储起来,...
【文档描述】:该文档详细阐述了WEB自动化测试的关键思路、编码基础和框架介绍,旨在提供一套有效的自动化测试解决方案。 【标签】:“WEB自动化测试框架文档.doc” 【主要内容概要】: 1. 自动化测试的关键思路 ...
Python自动化测试是现代软件开发流程中的重要组成部分,它利用Python编程语言来编写脚本,以自动执行测试用例,从而提高测试效率,减少手动测试的工作量,并确保软件质量。Python因其简洁明了的语法和丰富的第三方库...
标题和描述中提到的“UI自动化测试稳定与效率提升之美的报告”,从内容上来看,涉及了如何在开发和运行自动化脚本时处理UI元素调整和突发情况,以及如何在提升脚本稳定性的同时保持高效率,这表明该报告聚焦于提高UI...
6. 测试报告:虽然描述中没有提到,但通常自动化测试会生成测试报告,记录每个测试用例的结果(成功或失败)。这有助于分析测试结果,追踪问题,并且可以提供给团队成员或管理者查看。 7. 重复性与可扩展性:自动化...
【QTP脚本设计】阶段,将深入探讨QTP的高级特性和脚本技巧,如对象库管理、描述性编程、模块管理和数据驱动测试。同时,介绍如何扩展QTP的能力,如使用DLL、ActiveX和DotNetFactory,以及异常处理。同样,这个部分也...
Java自动化测试是软件开发过程中一个重要的环节,它利用编程语言如Java来实现测试脚本,以提高测试效率,减少人工错误,并确保软件质量。在Java自动化测试中,我们通常会用到一系列工具和技术,包括单元测试、集成...