AutoIT自动化测试进阶

上传人:m**** 文档编号:546574121 上传时间:2022-11-24 格式:DOCX 页数:3 大小:84.34KB
返回 下载 相关 举报
AutoIT自动化测试进阶_第1页
第1页 / 共3页
AutoIT自动化测试进阶_第2页
第2页 / 共3页
AutoIT自动化测试进阶_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《AutoIT自动化测试进阶》由会员分享,可在线阅读,更多相关《AutoIT自动化测试进阶(3页珍藏版)》请在金锄头文库上搜索。

1、Javascript图表数据自动化米集在一些数据挖掘、报表统计的系统中,经常会用到一些Javascript图表来展 示统计结果。针对这样的应用,也经常会被要求实现图表数据及展示情况的自动化 验证。比如,下图中的这个系统,就提出这样的一个需求:收集当鼠标移到每个条 形或者折线处页面产生的Tool tip中的数据。分析页面之后,发现Tool tip所在的标签没有Id,并且它在页面的位置(我是 指X、Y,而非DOM元素对象在DOM Tree中的位置)会根据选择的条形或折线发生 变化。最关键的一点是整个图表中,无论是 ToolTip还是条形或折线所在的 Element,都没有Id和Name。这样一来,

2、就不能通过Id和Name来找到这些页面 元素对象了。而如果用QTP中的位置去定位ToolTip也因为位置变化,很难实现, 那些矩形或者折线除了属性x、y、height、weight有区别外,其他完全一样,因 此QTP识别起来也只能靠节点在Dom Tree中的位置了。这意味着,我们可能需要 使用其他的一些定位方式,比如Xpath或者CSS。继续分析页面。在IE8中,使用开发人员工具可以看到每个条形或者折线所在的DOM Tree位可以看到这些条形或者折线都位于一个标签为shape的节点中。 然而通过FireFox中的FireBug,看到的又是另外一番景象。可以看到所有的条形和折线都位于rec t标

3、签中。看到这里,我们就应该有这 样的一种意识,这个页面会因为Javascript在不同浏览器渲染出现差别,可能存 在兼容性或者性能方面的问题。事实上,在做自动化测试的时候就已经发现了这个 页面在IE系列浏览器中存在严重的前端性能问题。在实现一个自动化测试需求或者一条自动化测试用例时(我是指实现),往往 要经历分析需求或者用例,分析页面,然后设计方案,最后才实现脚本。下面设计 方案,如何去收集Tool tip中的数据。方案一:使用AutoIT的MouseMove方法在图表上移动鼠标光标,触发页面的 MouseOver事件,当产生Tool tip时,就获取这个ToolTip对象及节点中的数据。 步

4、骤如下:(1)首先获取到图表所在的Element对象(2)然后遍历其子节点,获取所有的条形或折线的DOM元素(3)计算条形或折线的DOM元素所在的位置(X、Y)(4)使用AutoIT的MouseMove移动鼠标到条形或折线的DOM元素所在位置(5)获取产生的Tool tip对象(6)再获取tootip所在节点中的数据。这个方案的难点在于:需要计算条形或者折线Dom元素对象所在的位置(相对 屏幕),这样才能使用MouseMove来准确的移动。这个计算本身就是比较复杂的, 可以使用类似以下方法来计算。var btn 二 document .getElementById(btnOK);var x =

5、 0; var y = 0; do x += btn.o ffse tLef t;y += btn.o ffse tTop; while(b tn 二 btn.o ffse tParen t)还得考虑偏移量。也就是说在计算出的位置上考虑偏移量,这样计算出一个范 围,当鼠标移到这个范围中时,就能触发这个MouseOver事件。方案二:使用f ireEvent触发OnMouseOver事件。这是最简单的方法,也是我 最终选用的方法。相比这个方案,方案一就显得太暴力了。具体的步骤如下:(1)首先获取到图表所在的Element对象(2)然后遍历其子节点,获取所有的条形或折线的DOM元素(3)使用 fi

6、reEvent(onmouseover)触发 MouseOver 事件(4)获取产生的Tool tip对象(5)再获取tootip所在节点中的数据。比较两个方案,第二个方案显然更合适。根据这个方案,最终使用AutolT实 现的脚本如下:J f rK-lwi Wi i/&ippart.lCrMt nCkjI-(La! -ff vhKui/1.52.1.d.in. hCiBMIrtpvi TfT 用 H酌摩晖-i 丄 myT KDltl_rA|i C| I IB*l;41 0|a SdutalE. i3iih_甲 iig 卜刑 * rV 静doH, izs|i$山甘韵对 上* Jcnwuav ff

7、rwrl.I tBhj_Vaqa!. Cp I Em) j ca Uncrticrnj - fOKT* ETdd.Tp_ gntCEit - 3. 1e.bb.| 4:M峠申卸f j. VA(iE.|if”. MBai U*HB.|J * Hn-t总共只有17行代码,很easy的完成了这个需求。当然这里是因为使用了一个 轻量级的小框架,所以脚本会比较少,对象识别的东西都在框架底层完成了。比如 下面这一句:$Chart = $Sub_Page.Op(“ 图表,“获取这个对象,)$Sub_Page是页面对象。Op是这个页面对象的所有子元素对象操作入口,它有 三个参数,分别为“对象名称”,“操作描述”,“值”。比如说打开百度后点击搜索按钮,可以这么写:$Badu_Page.Op(搜索按钮,点击它,)有点关键字的味道。后面再慢慢介绍如何使用AutolT设计一个轻量级的测试 框架。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号