答:selenium脚本的执行速度受到多方面的影响,如网络,页面加载速度,操作的繁琐程度,等待时间等。
提高脚本执行速度,可以从以下几个方面入手:
1. 操作比较繁琐的,比如要点击几个链接才能跳到对应的测试页面,可以考虑直接使用链接地址直接跳转,避免繁琐的操作步骤
2. 等待时间,需要根据实际情况来合理使用三种等待方式
3. 对于页面加载非常缓慢的,可以考虑在不影响测试脚本执行的前提下(比如有很多图片还没加载出来),设置中断时间,中断页面加载。
4. 可以引入selenium-grid分布式及多线程技术,提高脚本的并行运行数量
答:这里要结合实际去分析导致脚本不稳定的因素,是等待时间不合理,还是网速问题,还是多线程运行导致的?
可以从以下几个方面着手:
1. 在频繁出现检查失败的元素前加上等待时间
2. 多用try……catch捕捉处理异常
3. 多线程运行用例的时候,用例之间如果存在依赖关系,比如运行b用例之前,必须先运行a用例,这种情况下,多线程运行用例往往就会出现问题,避免这种问题,最好的方式是,降低用例之间的依赖关系,最好就是用例之间不要用任何依赖关系
答:xpath,或者css通过同级,父级,子级定位
答:会
答:判断脚本运行的实际结果,是否符合预期结果
答:可以从手工测试用例中挑选,优先挑选核心功能业务的用例来实现自动化
答:合理添加等待时间,在进行元素操作前,先判断元素是否存在
答:excel,csv,yaml,json等等都可以。
答:
1.ElementNotSelectableException :元素不能选择异常
2. ElementNotVisibleException :元素不可见异常
3. NoSuchAttributeException :没有这样属性异常
4. NoSuchElementException:没有该元素异常
5. NoSuchFrameException :没有该frame异常
6. TimeoutException :超时异常
7. Element not visible at this point :在当前点元素不可见
答
1.动态id定位不到元素
2.页面里嵌套了框架
3. xpath描述错误
4.点击速度过快,等待时间不足,页面没有加载出来就需要点击页面上的元素
5. 新打开的窗口,没有进行窗口切换
6. 有弹框
答
1.根据业务操作流程,触发页面加载,并设置合理的等待时间。
2.使用js脚本(excute_scripts())直接触发页面加载。
答
1.找开发提供万能验证码(有风险)
2.测试环境屏蔽验证码模块
3.通过设置cookies,跳过验证码
4.图像识别输入
答
1.记录异常运行日志,截图信息
2.用例失败重跑机制
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!