QA

  • 抱歉,我更新下邮箱地址。也可以加我微信(WillNi001),简历发送到我微信上,回复更及时。

  • 谢谢~ 我会转告他们

  • 好的,我等会把中文版的放在前面

  • 测试设计和执行的时候还是要做的,万一有问题再修补代价就大了。我一般是参考开发的意见,但执行都是从产品使用角度来执行。

  • 求助帖真多呀 at 2017年03月17日

    我觉得很多人都有一个想法/念头闪现过,就是改善测试行业。能够努力让更多的人认识到,测试人员是一个项目的标配。测试人员在项目中承担的责任和对项目的贡献是不低于开发人员的。包括刚进入这个行业的测试人员,可能也会被不重视测试的项目或管理者误导,以至于在没有完全了解测试行业所涉及、需要掌握的各种技术前,对自己的职业规划有了动摇。

    我觉得这个社区有这么多资深的人,有必要整理一个测试领域的可视化的技能树(或许已经有了)。测试人员自己可能的发展方向,评估自己的兴趣方向,沿着某一分支或多个分支深入研究。

    有了测试领域技能树的同时,让更多的人了解到:测试的每一项技能都是给项目的顺利进行增加了信心的;少了测试,项目风险是很大的。

    有很长的路要走。

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

    python run.py 你的case
    

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

    python run.py --loglevel DEBUG testcase
    
    # 打印help
    python run.py --help
    
  • 我猜你这个问题是不是能够定位到元素,只是在点击的时候出现错误。你可以简单调试下,验证一下问题具体是出在什么地方。

    # 插入断点调试 或者用python -m pdb 脚本文件
    import pdb; pdb.set_trace()
    dr.find_element_by_id('topLoginItem').click()
    

    如果验证下来,能够定位元素但是点击有问题,十有八九是 Edge Webdriver 的问题。试用最新的 Edge Webdriver 或者用 Javascript 定位元素。先验证一下,再找解决办法。

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

    • 在 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()
      # 看看浏览器上元素是否被点击了
      # 其他方式定位元素,多调试下
      
  • 最终会结束吗?如果不是一直卡住而最终会结束的话,是有日志的。

  • 我的思路还是 robotide/__init__.py 文件出错位置前插个断点,看下运行时的搜索路径。因为从 ride 的代码逻辑上看,import wx 时捕获到异常,就是说你单独执行 ride 命令 (相当于/usr/bin/env python ride) 的时候,找不到 “/usr/local/lib/wxPython-unicode-2.8.12.1/lib/python2.7”。我的猜测是只查找了 “/System/Library/Frameworks/Python.framework/Versions/2.7”。但是需要加上断点打印一下。

    你用"python"(或者指定绝对路径的 python) 打开解释器时,sys.path 是有 wxPython 的。你可以试试指定解释器: python ride。但是上面的办法是最快最直接的。

QA