开源测试工具 关于 robot framework 运行时出现假死现象

xujiakai · 2017年03月17日 · 最后由 范范 回复于 2018年08月01日 · 2700 次阅读

“假死” 现象

在公司对一个系统做自动化功能测试,使用的是 robot framework,现在遇到了一个问题,希望大家都来讨论讨论

在完成一个模块的脚本编写后,多次运行没问题,但是隔了几天再来运行的时候,发现脚本运行会出现浏览器那边不动了,脚本这边的时间一直在跑。

就是上图中的 elapsed time 一直会动,然后浏览器那边一点反应都没有。

也是找了很多原因,原来使用了 sleep,以为是 sleep 导致的,就把 sleep 换成了 wait,但还是一直出现这个问题。

有时候是修改完就可以正常运行,然后运行多几次又会出现这种问题。

现在怀疑是不是我用的 xpath 是从 html 开始的。

大家帮忙找找原因,谢谢了。下面贴一下我的部分代码

执行到上面框选的那一步就不会往下走了

共收到 9 条回复 时间 点赞

最终会结束吗?如果不是一直卡住而最终会结束的话,是有日志的。

ovpt 回复

不会结束,有一次放着没结束它,结果本来一分钟的,它跑了半个小时还在跑

ovpt 回复

就是因为没有日志,所以一直找不到具体是什么原因导致的

现在有点怀疑是不是使用过多 wait 也会出现这种问题

这样的话,建议调试一下,手动尝试定位那个元素看看现象:

  • 在 Selenium2Library/keywords/element.py 下面这个位置插入断点

    def click_element(self, locator):
        """Click element identified by `locator`.
        Key attributes for arbitrary elements are `id` and `name`. See
        `introduction` for details about locating elements.
        """
        self._info("Clicking element '%s'." % locator)
    
        # debug
        import pdb; pdb.set_trace()
    
        self._element_find(locator, True, True).click()
    
  • 用 robot/run.py 执行 case 进入调试模式

    run.py 参数 case文件
    
  • 在执行到 "Clicking element xpath=//*[@id="VC_SAM_SAMPLE"]"时,手动尝试用定位元素

    pdb> element = self._element_find(locator, True, True)
    pdb> dir(element)
    pdb> element.click()
    # 看看浏览器上元素是否被点击了
    # 其他方式定位元素,多调试下
    
ovpt 回复

run.py 参数 case 文件
这个参数是什么

xujiakai 回复

参数是可选的,你可以不加。直接用这个命令也可以。

python run.py 你的case

可以从 help 里面列出所有支持的参数,比如设置 loglevel

python run.py --loglevel DEBUG testcase

# 打印help
python run.py --help
ovpt 回复

问题解决了,原因是 **driver.exe 这个进程没退出,我编写脚本的时候都没写退出浏览器,加了退出浏览器就不会出现这种现象了

楼主你好,我也遇到了运行出现假死现象,能告诉我具体的解决方法吗

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册