51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6875|回复: 9
打印 上一主题 下一主题

selenium测试脚本稳定性

[复制链接]
  • TA的每日心情
    难过
    2016-1-26 14:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2016-1-15 16:41:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    10测试积点
    问一下,大家在自动化测试运行过程中有没有测试case不稳定的情况?都是怎么解决的?具体表现就是大概500条case,每次整体运行时随机出现错误,错误率1-2%

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

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

    最佳答案

    查看完整内容

    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; } } 你可以添加如下代码,做一个低柜调用来判断和查找元素。对 ...
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 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;
                    }
            }

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

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-8-4 11:02
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2016-1-20 16:56:10 | 只看该作者
    调用js比较好

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    难过
    2016-1-26 14:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2016-1-29 15:15:25 | 只看该作者
    webdriver发送的事件和js跟页面上原来的事件之间是怎么执行的?是在一个线程里?
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2015-3-16 21:26
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

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

    使用道具 举报

    该用户从未签到

    6#
    发表于 2016-2-1 10:55:41 | 只看该作者
    这种失败是正常的失败,运行case越多,可能非正常的失败情况也多,建议你怎加是失败处理机制。
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2016-1-26 14:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
     楼主| 发表于 2016-2-2 14:34:29 | 只看该作者
    zhang1987yuan 发表于 2016-2-1 10:55
    这种失败是正常的失败,运行case越多,可能非正常的失败情况也多,建议你怎加是失败处理机制。

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

    使用道具 举报

  • TA的每日心情
    难过
    2016-1-26 14:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
     楼主| 发表于 2016-2-2 14:40:40 | 只看该作者
    zzhengjian 发表于 2016-1-30 23:21
    webdriver里判断元素的visibility 不仅仅是判断css 的display 属性, 同时元素还要满足大小不为0, 而这些 ...

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

    使用道具 举报

  • TA的每日心情
    难过
    2016-1-26 14:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2016-2-3 11:42:14 | 只看该作者
    zhang1987yuan 发表于 2016-2-3 09:09
    static boolean ElementExist(By Locator) {
                    try {
                            diver.findElement(Locator);

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

    使用道具 举报

    该用户从未签到

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

    这个还不简单,你判断下你认为出现的元素出现了,然后再去操作不就行了。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 17:58 , Processed in 0.070064 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表