在vbs中没有提供函数重载的功能,在很大程度上造成了开发脚本的不方便,其实在QTP中是可以将方法进行重载的,在QTP帮助里有很详细的说明
其实无非就是两个方法:
1、RegisterUserFunc
原型:
RegisterUserFunc TOClass, MethodName, FunctionName, SetAsDefault
TOClass:测试对象
MethodName:需要被重载的方法
FunctionName:封装的函数名
SetAsDefault:是否作为测试对象的标准方法,默认为false
2、UnRegisterUserFunc
原型:
UnRegisterUserFunc TOClass, MethodName
TOClass:测试对象
MethodName:需要被重载的方法
实例:
对于一个WebEdit的Set方法进行封装并重载
Browser(xx).Page(xx).WebEdit(xx).Set "xxxx"
希望在给这个WebEdit赋值前记录下之前的值,可以使用如下代码
Function MySet (obj, newvalue)
'obj:测试对象
'newvalue:赋的新值
dim oldvalue
ōldvalue = obj.GetROProperty("value")
Reporter.ReportEvent micDone, "previous value", oldvalue
MySet=obj.Set(newvalue)
End Function
然后使用RegisterUserFunc和UnRegisterUserFunc方法:
RegisterUserFunc "WebEdit" , "Set" , "MySet" , False
Browser(xx).Page(xx).WebEdit(xx).Set "xxxx"
UnRegisterUserFunc "WebEdit" , "Set"
或者直接调用
MySet Browser(xx).Page(xx).WebEdit(xx) , "xxxx"
此时,MySet函数实际上是重载了Set方法,并增加了输入旧值的功能
大家可以根据自己的需要来重载QTP的标准方法,在实际运用中有不小的作用
比如:记录下初始值,便于测试后清理环境等
注:
在这里说明的是RegisterUserFunc方式是把方法注册到相应对象,在当前运行时状态下存在,对于一些对象个性化后处理后可以用它来封装一些方法来使用。停止运行后相应方法也会失效;如果想手动使方法失效,可以使用Un RegisterUserFunc。
分享到:
相关推荐
在C++编程语言中,函数重载(Overloading)和缺省参数(Default Arguments)是两个重要的特性,它们极大地增强了代码的灵活性和可读性。本文将深入探讨这两个概念及其在实际编程中的应用。 首先,函数重载允许我们...
### 实验六:函数重载与运算符重载 #### 实验目的 1. **掌握函数重载的方法**:理解并能够实现同一名称但参数不同的多个函数,以便根据不同的参数类型或数量调用相应的函数体。 2. **掌握运算符重载的方法**:学会...
### 函数重载的详解和应用 #### 一、引言 函数重载是C++中一项非常重要的特性,它允许我们定义具有相同名称但参数列表不同的多个函数。这一特性极大地提高了代码的复用性和可读性。本文将详细介绍函数重载的概念、...
函数重载是面向对象编程中的一个关键特性,它允许在同一个作用域内使用相同的名字定义多个函数,但这些函数的参数列表必须有所不同。这通常通过改变参数的数量、类型或者参数的顺序来实现。函数重载使得程序员可以为...
### C++函数重载在员工月工资计算中的应用 #### 一、背景介绍与问题描述 本案例旨在通过设计一个菜单程序,运用C++中的函数重载特性来实现不同类型员工月工资的计算。具体而言,根据不同的员工类型(管理人员、...
C++函数重载、函数模板、类模板 C++函数重载是指在同一个作用域内,允许多个函数具有相同的函数名,但具有不同的参数列表。函数重载的优点是方便使用和记忆。例如: int add(int x, int y); float add(float x, ...
在C++编程语言中,友元(Friend)和函数重载(Function Overloading)是两个重要的概念,它们分别增强了类的封装性和灵活性。本实验旨在通过实际操作让你深入理解这两个特性,并能综合运用到实际编程中。 **一、...
### 两个二维数组相加与相减:使用成员函数重载运算符“+”和“-” 在C++中,运算符重载是一种强大的特性,它允许程序员改变内置运算符的行为,使其适用于自定义类型(如类或结构)。本文将详细介绍如何通过成员...
关于函数重载——复数运算的详细代码,有关于函数重载——复数运算所使用主要代码,以及重要的思想 及函数结构
根据给定文件的信息,本文将围绕C++编程语言中的“类”与“函数重载”的概念,以及如何利用这些概念来实现对不同图形面积的计算展开讨论。 ### 一、理解“类”与“函数重载” #### 1. 类 在C++中,“类”是一种...
### 友元函数与函数重载在C++中的应用 #### 概述 在C++编程语言中,类是封装数据和操作数据的方法的一种手段。然而,在某些情况下,可能需要让一个非成员函数访问类的私有或保护成员。这时就需要使用到友元函数的...
函数重载是面向对象编程中的一个核心概念,它允许程序员在同一个作用域内创建多个同名函数,只要它们的参数列表不同即可。这种特性极大地提高了代码的灵活性和易用性,因为同一个函数名可以被用来执行不同的操作,...
在Java编程语言中,函数重载(Overloading)和覆盖(Overriding)是面向对象特性的重要组成部分,它们分别处理多态性中的静态多态和动态多态。本篇将通过一个具体的例子,深入探讨这两个概念。 函数重载是指在同一...
圆类的定义使用和成员函数重载.cpp
C++ 函数重载和立方值 1、 函数重载 (1) 实验题目: 用函数重载编程,用以实现循环左移、循环右移的位运算(bit),移位位数在1~30000范围内任意
在C++编程语言中,函数重载是一项关键特性,它允许在同一作用域内定义多个同名函数,但每个函数的参数列表必须有所不同。这通常通过改变参数的数量、类型或者顺序来实现。函数重载提供了代码的灵活性和可读性,因为...
用成员函数重载运算符“+”和“-”,将两个二维数组相加和相减。要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
"构造函数重载"的主题主要涉及以下知识点: 1. **构造函数**:构造函数是一种特殊的方法,它的名字与类名相同,没有返回类型,主要负责在创建对象时设置初始状态。当一个类没有显式定义构造函数时,编译器会提供一...
在编程中,函数重载(Overload)是面向对象编程的一个重要特性,它允许在同一作用域内声明多个同名函数,但每个函数的参数列表必须不同。这些函数可能有不同的返回类型,但关键在于它们的参数数量或参数类型不相同。...
函数重载则是C++中的另一个重要特性,允许我们为相同名称的函数提供不同的实现,根据传入的参数类型或数量来选择合适的版本。本教程将深入探讨如何结合模板类和函数重载来实现矩阵的加减乘除运算。 首先,我们需要...