编写QTP插件来识别Extjs控件

3atesting推出了一门自动化测试设计的课程,学员在上课过程中提出了Extjs控件如何识别的问题,故此我花费了2天时间研究了一下Extjs的工作原理。编写了一个 QTP关于Extjs的插件!
(如何编写Extjs---QTP插件,具体详解内容已经纳入到3atesting自动化测试课程中,会花费一天时间详细讲解各种配置信息和编写的方法)
详情可以参看:http://www.3atesting.com/peixun/html/gjgn.htm
研究之初:对于我本人来说,我不太熟悉javascript和extjs控件!基本上没有接触过。为了做这个插件,我首先在网络上下载了一本javascript的书籍,以及下载了extjs控件环境和相应的API资料。差不多花费了一天时间来学习javascript和Extjs控件使用方法(这个时候没有必要去学究竟如何去写一个高质量js程序,关键去看看它的使用方法和原理的东西就成了)
扩展开发所涉及到的工具:
web extensibility的插件编写的可视化编辑器
:因为写Web插件的时候会编写XML文件,繁杂的配置信息手写起来非常麻烦,所以我找了一个QTP集成的编辑器
DOM跟踪插件
:主要分析DOM的结构,方便来了解跟踪什么事件以及对应的属性信息
(自动化测试设计培训中都会将工具赠送给学员)

这些都准备好之后,我找了一个实例来着手编写Extjs插件!实例是一个ext grid,具体可以参看下面图片


DOM分析结果如下:

 



使用插件之前QTP识别的结果:
采取插件之后识别的模式:
然后我们进行了自定义扩展,主要是在QTP和Extjs建立了一个桥梁,然后可以实时去获取extjs控件的所有方法和信息!例如
我这里增加了2个方法:
getrowcount(获取总行数)
getcell(row,cell)获取指定单元格的数据信息
msgbox  Browser("Stateful Array Grid Example").Page("Stateful Array Grid Example").ExtJSGrid("ExtJSGrid").GetRowCount
msgbox  Browser("Stateful Array Grid Example").Page("Stateful Array Grid Example").ExtJSGrid("ExtJSGrid").GetCell(2,0)

运行结果如下:

 

你可能感兴趣的:(功能测试自动化)