自动化测试:对象库VS描述性编程

  自动化脚本编写都涉及到对控件的操作,那么是把这些要操作的控件放在一起进行管理,还是把控件放到脚本中在操作时进行描述呢,这一直都是很有争论的问题。两种操作方式都有其优劣,不能绝对的说其中某一种一定比另一种好,根据不同的应用场景,选择不同的操作方式,才能扬长避短。

  对象库,就是把控件放在一处地方集中进行描述、管理,使用时只需要使用该控件的别名即可。如:

  LoginPage.StandButton.click

  它的优点:

  一、这样的脚本看起来很简洁

  二、控件的描述只需要在对象库做一次,不需要反复的在脚本中做

  三、如果控件发生了变化,那么你需要做的仅仅是维护对象库,不需要去维护所有的脚本

  四、控件对象可以共享,你做过的工作,不需要别人再来做一次

  五、对象库可以提前构建,不依赖对象的具体实现,这样我们的测试脚本也就可以提前编写,推动整个自动化工作前移

  六、其它…………

  它的缺点:

  一、脚本是很简洁了,但其可读性变差了,至少增加了读脚本的成本

  二、既然放在一地方进行维护,就涉及到命名规范的建立,否则就会乱

  三、维护的时候,加大了评估所带来的影响的难度,因为你可能不知道这个对象在哪里被引用了

  描述性编程,就是在编写测试脚本时描述需要操作的控件。如:

  p.button(“#name_submit”).click

  它的优点:

  一、脚本编写很灵活

  二、脚本可读性相对对象库来说,会好很多

  三、整个自动化测试框架会相对简单,带来的是自动化测试相对稳定

  四、一定程度上降低了脚本之间的耦合性,控件的维护不会影响到其它脚本

  五、其它…………

  它的缺点:

  一、最大的缺点是显而易见的,脚本的维护难度加大了,如果控件发生了变化,维护的工作量很大

  二、控件的描述要反复的做,不能共享

  三、测试脚本相对来说变的复杂了,没有对象库的脚本简洁

  四、正是因为脚本的编写依赖着控件的描述,所以脚本的编写也很难提前

  上面罗列了部分两种操作模式各自的优缺点,如何做出正确的选择,就需要根据应用场景有所取舍。

  对于大型的、持续优化的被测系统,对象库使用的选择要优与描述性编程,这种场景下的自动化测试不是各自独立的,不是临时性的。对象库的前期投入,表面上可能是会加大自动化的成本,但它的共享和维护都降低了后续自动化的成本,而且为自动化测试脚本的关键字驱动打下了基础,并且可以推动控件定义中的一些标准和规范的实施,这是可以提高被测试系统的可测试性以及稳定性。

自动化测试 - RFT系列教程11: RFT中的描述性编程 - 详解find方法 描述性编程是QTP中提高脚本利用率的一种常用的方式,它可以类似下面的语句 Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Click 通过某些控件属性的描述来定位控件,这样既提升了脚本的灵活性又摆脱了对对象库的依赖。而在RFT中,也有一些方法和技巧帮助我们达到相同的效果,这一节,我们将会详细了解RFT中的描述性编程的特性,同时由于工具实现的不同,我也会指出在RFT中使用描述性需要注意的一些问题。 阅读详情

相关推荐

从零开始学习信号完整性(SIPI)--2

上一节我们已经谈过,信号完整性研究的是如何使驱动器输出的信号传输到接收器件并被正确的接收。 信号完整性的三要素包含了:信号、驱动接收芯片、传输通道。 这其中信号是主体,我们要做的主要工作就是设计好信号的传输路径为信号的正确传输扫清障碍。要做信号完整性分析与设计首先要了解信号的特性,以及信号质量的判别标准。 对一个信号进行描述通常需要如下几个指标: 信号特性的描述 摆幅:信号从低电平到高电平之间的电压差,对于单端信号通常由信号的供电电压决......

qq_29476769的博客 2万+

UI层自动化测试框架(四):对象库层

引言本章主要介绍自动化测试框架–对象库层。该层是UI自动化中比较关键的一层,设计自动化框架,不可避免的就是对象库,有一个好的对象库,可以让整个测试框架可维护性更高,大大增强了代码的复用性。讲之前先和大家普及个一概念:PO模式PO模式那什么叫PO模式,为什么要用PO模式?引用如下一段话,你就会恍然大悟~ PO模式,全称Page Object模式,是Selenium中的一种测试设计模式,主要是将每一

CharliChen 's Blog 1万+

GIS小白也能看懂的实战:5步教你将ArcGIS里的等高线和水系完美导入CAD做规划图

本文详细介绍了如何将ArcGIS中的等高线和水系数据高效导入CAD,制作专业规划底图的5个关键步骤。从数据准备、ArcGIS处理到CAD优化,涵盖坐标系设置、数据裁剪、格式转换等实用技巧,特别适合设计规划领域的新手快速掌握GIS与CAD协同工作流程。

weixin_27966471的博客 426

描述性编程与对象库编程的对比

     项目中一直使用的是描述性编程,维护期间的感触就是描述性编程的自动化脚本维护太费力,如果系统改版就要基本把脚本全部翻新,我们现在就面临这个问题。因为还没换过工作,所以对对象库编程还只是练习,我个人感觉对象库编程的优势还是很明显的,一直期望在项目中能真正应用对象库编程方式。     个人感觉 描述性编程的优点是脱离对象库,识别对象时不容易出错;缺点是维护脚本太繁琐,尤其遇到系统改版时。幸亏...

weixin_34313182的博客 312

光猫改桥接后,一根网线搞定IPTV和上网的保姆级教程(附VLAN配置避坑点)

本文详细介绍了光猫改桥接后如何通过单线复用技术实现IPTV和上网功能共存。从VLAN配置原理到具体操作步骤,包括光猫超级管理员权限获取、VLAN绑定设置及路由器IPTV功能配置,提供了全面的保姆级教程。特别针对常见问题如IPTV信号丢失、网速下降等给出了实用解决方案,帮助用户轻松避坑。

weixin_29927965的博客 1772

宝骏kiwi 630 730 560 E100 E200 E300 310 510 610 330 530维修手册电路图资料线路图接线图更新

2020-2022年宝骏RS-3维修手册和电路图。2020-2022年宝骏RS-3维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2021年宝骏RC-6维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RS-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2020年宝骏RM-5维修手册和电路图。2019-2021年宝骏510维修手册和电路图。2019-2021年宝骏510维修手册和电路图。

weixin_45821055的博客 1771

对象库编程VS描述性编程

对象库编程和描述性编程的区别? 描述性编程采用的是描述属性的方式来识别对象,不需要对象库。开发的脚本可移植性强。不过对于脚本的编写能力也比较的强。 对象库编程则是完全依靠QTP自带的对象库进行识别对象,有些限制,对象库如果出现了一些对象属性的变动或者是脚本一到别的机器上,可能就不能识别对象,导致不能回放脚本。 专家建议,刚开始学习是使用对象库编程进行学习QTP的自动化流

Apple_lx的博客 1357

完整版:ultralytics下运行yoloworld并训练

本文介绍了Ultralytics YOLO环境的快速配置与使用流程:1) 通过conda创建Python 3.9环境并安装依赖包;2) 配置中科大镜像源加速安装PyTorch和Ultralytics;3) 准备YOLO格式数据集并修改data.yaml配置文件;4) 提供模型预测、训练和验证的常用指令,包括predict/train/val等命令参数设置。文章还包含CLIP模型下载、权重文件获取以及本地安装等注意事项,完整覆盖了从环境搭建到模型部署的全过程。

weixin_50209871的博客 1345

描述性编程简单运用

1、描述性编程:      我们都知道QTP对象的鉴别原理,在QTP回放时,通过脚本中对应对象库中的对象的属性与真实测试对象的属性进行对比并且能够唯一匹配之后才能够对对象进行操作。而描述性编程其实就是通过把对象库中的对象属性的描述全部通过脚本体现出来,并且可以脱离对象库进行运行脚本。   2、描述性编程语法: 1 2 3 4

huangjuntao_1的博客 567

Jetson Nano系统重装的艺术:从格式化到烧录的深度解析

本文详细解析了Jetson Nano系统重装的完整流程,从SD卡格式化到系统镜像烧录的进阶技巧,包括硬件选择、软件准备、常见问题处理及深度学习环境配置。特别推荐使用三星EVO Plus SD卡和官方电源以确保稳定性,适合开发者快速掌握嵌入式设备系统重装的核心技术。

weixin_28273593的博客 611

Crawl4AI实战:5分钟搞定电商价格监控爬虫(附Python代码)

本文详细介绍了如何利用开源AI网络爬虫框架Crawl4AI快速构建电商价格监控系统。通过Python实战代码,展示了从环境配置、智能内容提取到多平台适配、定时任务与数据可视化的完整流程,帮助运营人员和技术开发者高效实现自动化价格追踪与竞品分析。

weixin_29090917的博客 414

使用对象库(OR)还是描述性编程(DP)

<br />Descriptive Programming (DP) vs Object Repository (OR)<br />by Anshoo Arora on August 10, 2009<br /> photo credit: dkalo<br />DP vs OR: Which is better?<br />This has been a never ending debate and if you follow QTP forums, you will see a thread pop-

lishanshan523的专栏 575

VMware使用Windows、WinXP等虚拟机上不了网的解决办法(管用)

这个情况一般出现在可以插网线的电脑上,比如台式机和有网线插口的笔记本。需要转换器才能插网线的笔记本一般不会出现这种情况. 查看主机的IP地址和虚拟机的IP地址是否在同一网段,如果在的话,虚拟机就能上网了!!(备注:虚拟机中的IP地址一定要和主机中的用来上网的那个连接的IP地址相同哦)。

爱吃雪糕的小布丁的博客 1万+

Ranorex VS. QTP

原文:Ranorex与QTP的详细比较——版主吐血力作http://uniontesting.com/thread-21128-1-1.html平台简要介绍 1.QTP平台:配套使用QTP+TDS+ALM这三个软件。脚本开发在TDS(Test Design Studio)中,调试运行在QTP中,因为QTP的IDE太差,开发效率实在很低,所以引入TDS。自动化测试用例在ALM中管理,采用BPT框架。

软件质量优化 4700

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

红米12C刷机变砖?NV数据损坏的底层修复与备份指南

刷机是Android用户绕不开的话题,但很多人只关注系统包和工具,却忽略了手机内部还有一层“出厂级”的关键数据——NV数据。NV(Non-Volatile Data)存储着设备的IMEI、基带参数、Wi-Fi/蓝牙MAC地址等唯一身份信息,一旦在刷机过程中因分区表错乱、错误擦除或意外断电而损坏,手机就会表现为无信号、IMEI变0、基带未知甚至开机卡Logo。理解NV分区的原理,是进阶玩机的基础能力。对红米12C这类采用MTK平台的机型而言,nvram和nvdata分区尤为脆弱。掌握正确的备份策略、选择匹配的

weixin_34162228的博客 324

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Object Repository VS Descriptive Programming

There is no specific answer as to which of the two (object repository or descriptive programming) is better. There are certain situations when using descriptive programming has its own benefits (with

Good Good Study 696

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【51testing测试丛书系列之QTP自动化测试技术领航】初始目录展示

这次非常高兴能够与51testing以及人民邮电出版社进行合作出书,deadline为今年下半年。目前进度差不多到一半了,每一个章节每一个段落我们都会非常的用心,为了照顾新人,在介绍基础知识点时我们也不会忽略任何重要的细节。大家有什么需求也可以直接在此处回复,我们会在这段时间收集大家的需求并进行综合考虑后加入到书内,任何需求都可以。 书名为:《QTP自动化测试技术领航》合作方:  51testin

iQuickTest 领先技术研究专栏 7741

Selenium之POM模式:自定义 VS PageFactory

什么是POM(page object model)?从英文解释为页面对象模式,说的很清楚,玩过QTP的朋友就有点懵懂了;不错,就是有点对象库的意思。还记得前面说的QTP故事的时候说到对象库编程与描述性编程吗?可以回去看看。对象库就更好理解了,就是管理对象的一个仓库,而从selenium的POM模式来说,是每个页面的对象分为一个对象库;再说明白点就是每个页面的对象定位管理起来。 一、自定义...

雨墨轩痕 1120

QTP自动化测试培训大纲

QTP 自动化测试培训大纲 面向目标 :软件测试工程师、 QA 、测试经理 采用教材:《QTP自动化测试进阶》 课程大纲 : 1 、如何开展自动化功能测试? 2 、 GUI 测试工具原理 练习 1 :自己动手设计和编写一个小型的基于 GUI 的自动化测试工具。 3 、 QTP 基本概念、 QTP 基本使用方法( QTP 检查点、参数化、 DataTa...

kuwoleft 144

WatiN与QTP的选择

最近测试组在做一个测试工具的调研,自己写了点看法,准备找个机会反映一下。     工具主要优缺点分析: 工具 QTP WatiN 优点 1、 功能全面。培训一次之后,可以应用在各种功能测试中。 2、 学习成本低。Vbs脚本简单易学,适合没有任何编程基础的测试人员使用。工具自身的学习也非常简单,有相关配套的中文教程,非常适合没有

hairstyle4064的专栏 454

自动化测试概念介绍

什么是自动化测试? 概念:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率。 本质:编程测试,即编写一个程序测试另一个程序。 过程:录制脚本——修改录制脚本——回放脚本——查看报告 手工测试和自动化测...

na2609613672的博客 8573

Page Object 模式很火,UI 自动化测试到底要不要用?怎么用?

本文作者为霍格沃兹测试学院第 9 期学员 zzt,文末领取思寒老师分享的《移动自动化测试 PO 模式实战》视频课程。业务背景我们是一家手游公司,前端使用 Unity。Ap...

霍格沃兹测试学院的博客 1000
上一篇: 单元测试工具C++ Test简介
下一篇: 软件测试之路 用思想和灵魂不断创作
bitzsoft
博客等级 码龄19年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值