文章来源:http://blog.sina.com.cn/s/blog_6c038b900100n7yp.html
RegisterUserFunc在QTP的帮助文档中可以看到,作用是用来自定义QTP对象下的方法。在实际的工作中这个方法是经常用到的,因为它能帮我们节省不少的时间。比如QTP的“SET”,这是个用来向输入框中填入数值的方法,object.set "XXX",这个方法在实际应用中可能会带来不便,比如实现修改操作的测试。首先测试用例中如果描述只针对个别字段进行修改操作;然后你的测试框架又对修改页面整个进行了整个封装(做成了一个方法,以便于重用)。这时出现的问题是,你需要把所有的字段都输上值,而个别值需要改动。原因很清楚了,因为如果你只输入要修改的字段的值而不输入不要修改的字段时,set方法也会将字段至为空(object.set "")。可以想象这样的工作量是庞大的,因为谁都不想记录新增时的信息。。那么我们需要在测试框架中进行稍微的改造。需要实现:当输入“”时不做任何操作,但是这样又会出现一个问题,如果想将字段值为空怎么办?需求是填入一个关键字来标识为空,比如“empty”这样我们的需求就明确了。下面方法是我针对我目前的框架进行的修改,希望对看了这篇文章的你有所启发。
Public Function user_set(test_object,val)End Function
user_set 是改造后的方法,用过QTP提供的RegisterUserFunc方法覆盖其原本的set方法就好了
RegisterUserFunc "webedit","set","user_set"