今天柯莱特问了我两个关于QTP的问题。请大家帮我看看
1,怎样来增加脚本的灵活性?我的回答是:
1,把功能相近的放在一个ACTION 里面。减少每个ACTION的代码量。
2,使用场景恢复功能。
3,参数化脚本。
4,注释脚本。
5,使用VB来做脚本控制。
2,如果对象不能识别,有哪些方法可以处理?
我就回答了一条: 新建虚拟对象 说到脚本的灵活性,我觉的首先得明确“灵活性”的标准,在我的工作中,脚本的灵活性就指它的可扩展性和对数据文件的支持程度,因此需要从以下方面着手:1、将可重用的操作抽象出来,封装成方法,这样通过传递不同的操作我们就可以完成不同的软件行为;2、将测试脚本与测试数据文件分离开来,这样一个脚本就可以驱动不同的测试数据进行测试;3、在对象识别上,应该将对象识别的过程和对象的特征相分离。避免将所有的脚本都线性化的写到一起,这样的脚本基本上没有什么可维护性。
第二个问题,对象不能识别的原因很多,首先应该分析不能识别的原因再对症下药。通用的解决方法是自己编写HOOK,但是难度比较大,其实QTP和RFT的对象获取都是基于HOOK技术的,另外,QTP提供了不同的插件,可以根据软件的特征选择合适的插件。3、用测试对象的相对坐标;4、用屏幕的绝对坐标;5、采用测试工具提供的API接口,如RFT的find方法,QTP的描述性编程,自己动手实现对象的识别。虚拟对象的方法能不用就不用,因为使用了虚拟对象以后会使脚本变的脆弱,增加了维护的工作量
就先象到这么多了,楼下继续。
另外,柯莱特是什么,公司名?人名?其他?
回复 2# 的帖子
自动化测试所用的hook感觉还是比较简单的自己写hook,就是自己写个录制工具。它并不需要你自己去实现hook,而是用MS提供的hook函数来实现,所以难度相对比较低!
你知道QTP对网页操作封装的方法是DOM还是Accesssibility吗?
[ 本帖最后由 shanxi 于 2009-4-19 14:47 编辑 ] 请问dreamever,
3、在对象识别上,应该将对象识别的过程和对象的特征相分离。避免将所有的脚本都线性化的写到一起,这样的脚本基本上没有什么可维护性。
这点怎么理解,能否说的详细些
回复 4# 的帖子
就是对象数据跟操作对象的代码分离呵呵,分离好维护。很老的概念了 嗯,这个。。。。。。
还是不明白:funk:
回复 6# 的帖子
clickonwindow(readfile(a.xml,btna));a.xml数据,btna为a.xml中一项取其值 原帖由 dreamever 于 2009-4-17 15:58 发表 http://bbs.51testing.com/images/common/back.gif
说到脚本的灵活性,我觉的首先得明确“灵活性”的标准,在我的工作中,脚本的灵活性就指它的可扩展性和对数据文件的支持程度,因此需要从以下方面着手:1、将可重用的操作抽象出来,封装成方法,这样通过传递不同的操 ...
很全面了。掌握了这些基本够用了。
是去HP的外包。。。。
其他我也不清楚啊。 谢谢shanxi的耐心解答:handshake 原帖由 bondsha 于 2009-4-17 16:34 发表 http://bbs.51testing.com/images/common/back.gif
其他我也不清楚啊。
电面吗? 电话面试? 对的。。电话面试。。
问了测试经验,项目经验,还有就是关于QTP的上面两个问题 非常喜欢这样的面试问题!! 有深度。。。
第一问:我觉得应该是数据和脚本分离的方法。
第二问:对象不能识别,应该首先考虑有多少对象不能识别,如果太多,就要考虑是否要使用QTP。。 其次就是使用虚拟对象,描述性编程解决,反复调试。。。
一家之言,见笑啊:handshake
回复 1# 的帖子
其实这个虚拟对象在实际运用中很不好用的,还是用描述性编程比较实用一些 第一个问题的答案补充:1:增加对脚本的规范,提示脚本的可移植性,和让脚本尽量执行多个IE版本,和QTP版本。
2:增加在框架中的错误识别的能力和恢复能力。 学习标准化,组件化,松耦合
不能识别的话,借用外部手段和qtp结合搞定它
编程能力很重要哦
页:
[1]