clarkar 发表于 2016-1-15 16:41:24

selenium测试脚本稳定性

问一下,大家在自动化测试运行过程中有没有测试case不稳定的情况?都是怎么解决的?具体表现就是大概500条case,每次整体运行时随机出现错误,错误率1-2%

比如
clickID("id1");//点开按钮
waitID("id2");//等待弹出页面的元素变得可见
就这种都有概率失败,找不到id2。。。。。:@
其中clickID还用jQuery.active == 0判断了AJAX请求完成。

另外,问一下,我想判断一个元素是否显示(可见),是用visibilityOf()方法好,还是调用js判断好?

zhang1987yuan 发表于 2016-1-15 16:41:25

        static boolean ElementExist(By Locator) {
                try {
                        diver.findElement(Locator);
                logger.debug("元素查找成功:"+Locator);
                  return true;
                }
                catch (org.openqa.selenium.NoSuchElementException ex) {
                logger.debug("元素查找失败:"+Locator+"错误信息为:");
                ex.printStackTrace();
                        return false;
                }
        }

你可以添加如下代码,做一个低柜调用来判断和查找元素。对元素查找可以设定时间和次数限制。

fhhh_eyou 发表于 2016-1-20 16:56:10

调用js比较好

clarkar 发表于 2016-1-29 15:15:25

webdriver发送的事件和js跟页面上原来的事件之间是怎么执行的?是在一个线程里?

zzhengjian 发表于 2016-1-30 23:21:02

webdriver里判断元素的visibility 不仅仅是判断css 的display 属性, 同时元素还要满足大小不为0, 而这些都集成在了isdisplayed 这个api里面, 所以判断可见的话是用visibilityOf()方法更能满足webdriver的初衷。webdriver模拟的就是用户操作,所以你发送的命令告诉它要执行什么是单个命令单步执行的(当然js的异步你也可以了解下)。
另外,浏览器中的js是单线程的,只是可以异步执行。

zhang1987yuan 发表于 2016-2-1 10:55:41

这种失败是正常的失败,运行case越多,可能非正常的失败情况也多,建议你怎加是失败处理机制。

clarkar 发表于 2016-2-2 14:34:29

zhang1987yuan 发表于 2016-2-1 10:55
这种失败是正常的失败,运行case越多,可能非正常的失败情况也多,建议你怎加是失败处理机制。

已经添加了失败重跑机制,不过为什么呢,这个失败不应该被当成理所当然啊。。。

clarkar 发表于 2016-2-2 14:40:40

zzhengjian 发表于 2016-1-30 23:21
webdriver里判断元素的visibility 不仅仅是判断css 的display 属性, 同时元素还要满足大小不为0, 而这些 ...

是的,我看webdriver文档上写的还有好几种情况,现在用的就是isdisplayed这个,我现在的问题就是:
比如我发了个点击请求,浏览器接到了,点击的事件就被加到了执行的队列里,点击结束后的就算执行完毕了,又触发了页面本身的点击事件;这时点击事件本身已经结束了,selenium 客户端这边又发下一个请求,这个请求的事件应该在最后。
如果这么考虑有问题吗?这样为啥还会有“点快了”这种情况。。。

clarkar 发表于 2016-2-3 11:42:14

zhang1987yuan 发表于 2016-2-3 09:09
static boolean ElementExist(By Locator) {
                try {
                        diver.findElement(Locator);


问题并不是找不到元素,而是有时候太“能找到元素”了,总感觉会点快,我希望能够在页面完全稳定以后再进行下一步操作。。。

zhang1987yuan 发表于 2016-2-4 07:27:03

clarkar 发表于 2016-2-3 11:42
问题并不是找不到元素,而是有时候太“能找到元素”了,总感觉会点快,我希望能够在页面完全稳定以后再进 ...

这个还不简单,你判断下你认为出现的元素出现了,然后再去操作不就行了。
页: [1]
查看完整版本: selenium测试脚本稳定性