提升RFT动态识别效率:描述性编程解决方案

需积分: 9 1 下载量 170 浏览量 更新于2024-07-25 收藏 367KB DOC 举报
"RFT(Rational Functional Tester)是一种功能强大的自动化测试工具,常用于软件测试,特别是针对复杂的UI交互。本文主要探讨了RFT在动态识别页面对象时遇到的问题及解决方案,即描述性编程的应用,以提升测试脚本的效率和可读性。" 在RFT中,识别网页元素主要有两种方法:静态识别和动态识别。静态识别依赖于对象库,而动态识别则通过RFT的`find`方法或递归查找机制来定位对象。然而,动态识别存在三个主要问题: 1. **识别速度慢**:在某些情况下,动态识别一个对象可能需要4-5秒,这极大地影响了测试执行的效率。 2. **识别难度大**:对于HTML编写不规范的对象,如缺少`id`或`name`属性的元素,RFT的识别能力受限,尤其是一些复杂或不标准的HTML结构。 3. **脚本编写复杂**:使用动态识别编写的测试脚本往往难以理解和维护,因为它们通常涉及复杂的查找逻辑。 为了解决这些问题,RFT引入了以下特性: - **页面对象缓存**:通过缓存节点路径,可以在后续的测试过程中快速找到已识别过的对象,从而显著提升识别速度。 - **根据页面信息描述对象**:允许测试人员基于页面可见的文字或其他属性来描述对象,增加了识别手段,使得即使HTML结构不规范,也能有效定位元素。 - **描述性编程**:这是RFT的一个强大特性,它允许用自然语言的方式描述对象,使得脚本更直观易读,例如,使用`Browser().Page().WebEdit("name:=username").set "123"`这样的语法,比RFT的原生方式更简洁明了。 描述性编程是RFT的一个重要补充,它借鉴了QuickTest Professional(QTP,现称UFT - Unified Functional Testing)的理念,将对象的属性名和值作为字符串组合,形成一种更接近人类语言的表达方式,降低了脚本编写和维护的难度。通过这种方式,测试人员可以更加方便地定位和操作网页上的各种元素,如输入框、链接、按钮等。 RFT的描述性编程旨在提高测试脚本的可读性和执行效率,减少因HTML结构复杂性导致的识别问题,并通过缓存机制优化性能。对于那些需要处理大量动态页面元素的自动化测试场景,掌握描述性编程技巧至关重要,它能帮助测试团队更高效、更稳定地完成测试任务。