51Testing软件测试论坛

标题: selenium rc的性能问题 [打印本页]

作者: afeng    时间: 2009-8-13 21:10
标题: selenium rc的性能问题
前段时间在网上down了一套别人写好的调用selenium rc的程序,不过作者可能为了通用性,用了xpath来定位,而ie对xpath的性能支持实在太差,执行一个命令要1-2秒钟,这样一个窗口有时需要5-10分钟,简直难以忍受,在实习生的怨声载道中,不得不改进方法,于是用dom代替xpath,代码上反而比以前减少了很多,而且1秒钟能执行几十个命令,一个原本需要10分钟的测例现在1分钟就搞定了,效率大大提高,执行用例的人也不再叫慢了,呵呵,其实也蛮简单,大概用了半天时间就搞好了,看来自动化测试里还是有很多东西要学的
作者: supermichael    时间: 2009-8-14 10:14
楼主简单写个例子吧~
作者: afeng    时间: 2009-8-14 12:10
比如xpath=//table[@id='%1$s']//tr[%2$s]//td[%3$s]//input[@type='text' and @name='%4$s']
现在用dom=document.getElementById('%1$s').cells[%2$s]
具体语法可以网上查查,很多帮助的
作者: supermichael    时间: 2009-8-14 12:13
标题: 回复 3# 的帖子
感谢感谢~
作者: afeng    时间: 2009-8-14 13:50
大家互相学习
作者: shanxi    时间: 2009-8-15 20:13
xpath 可是SC的标配

真的很慢!?
作者: wendy811110    时间: 2009-8-16 16:55
有没有其他更加详细的例子??
作者: park_p    时间: 2009-8-17 11:41
还有这一说,以前没考虑过,只是发现一样的代码在firefox下执行速度确实比ie下快很多,原来是xpath影响了解析速度啊?哈哈,照你的说法,用dom方式识别方式在ie下和firefox下执行速度相同么??可是最简单的id=xxxxx这样的选择器,在ie下好像还是明显慢于firefox,这是为啥呢?难道selenium对应id=xxxxx这样的实现不是通过dom的getElementById()而是通过xpath=//xxxx[@id=xxxxx]么?
作者: xiaoshancom    时间: 2009-8-17 12:08
xpath 主要用于解析XML结点
跟dom不沾边
作者: park_p    时间: 2009-8-17 12:24
是的,xpath是为xml解析用的,可是selenium可以通过xpath来定位元素,估计它是把html当成xml来做的解析吧,具体也不清楚是什么机制,但是selenium确实可以用xpath定位和操作页面元素,新的html规范不是越来越xml化,越来越规范了嘛
作者: xiaoshancom    时间: 2009-8-17 13:21
标题: 看了下源码,搞清楚了
Selenium IDE录制时生成XHTML文件

见例
//selenium-ide\trunk\src\content\testSuite.js

// TODO make this configurable
TestSuite.header =
    '<?xml version="1.0" encoding="UTF-8"?>\n' +
    '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n' +
        '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n' +
    "<head>\n" +
    '  <meta c http-equiv="content-type" />' + "\n" +
    "  <title>Test Suite</title>\n" +
    "</head>\n" +
    "<body>\n";

TestSuite.footer =
    "</body>\n</html>\n";

[ 本帖最后由 xiaoshancom 于 2009-8-17 13:24 编辑 ]
作者: afeng    时间: 2009-8-17 14:54
ie对xpath的支持不好,而dom的速度要块很多,至于原因没有功夫细究




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2