selenium自动化常见问题及优化

原创 2016年05月30日 14:40:48

问题一:测试用例再执行点击元素时失败,导致整个测试用例失败。如何提高点击元素的成功率?

解决办法:selenium是在点击元素时是通过元素定位的方式找到元素的,要提高点击的成功率,必须保证找到元素的定位方式准确。但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的。需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证我的每一个操作符合我的预期。


问题二:脚本太多,执行效率太低,如何提高测试用例执行效率?

解决办法:Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度的,要确保稳定性,能稳定地实现回归测试才是关键。
我们可以从以下几个方面来提高速度:
一,减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。
二,中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。
三,在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。
四,配置testNG实现多线程。在编写测试用例的时候,一定要实现松耦合,然后在服务器允许的情况下,尽量设置多线程运行,提高执行速度。


问题三:测试脚本不稳定,命名调试通过的,执行到一半的时候又失败。怎么优化?

解决办法:此时我们要分析出不稳定的原因,然后有针对性的去解决问题。主要有以下几个方面 :
一,网速问题:有的时候网页加载的比较慢,在程序执行的时候要操作的元素没有显示出来。这种情况比较常见,运行一次网速好的时候通过了,再运行一次,页面没有打开,就不通过了。为了提高稳定性,我们只能牺牲运行时间了,在经常检测失败的元素前加上等待时间,等要操作的元素出现之后再执行下面的操作。
二,Selelnium的原因:Selenium1.0和2.0还是有区别的,有些儿函数在2.0下运行确实有时而有效,时面无效。如果mouseover()函数,就是这种情况, 我们需要避免使用这类的函数。
三,多线程的时候,测试用例间相互影响。虽然多线程的时候运行速度比较快,但是如果用例之间的耦合性没有设计好,也会影响的,如果用例A先于用例B执行的时候,就会影响到用例B;反之则没有问题。这种情况,如果你的自动化测试工程打算多线程的时候,提前就要把测试用例测试的耦合度比较松,尽量没有任何关系,因为多线程的执行顺序是不受控制的。


问题四:测试用例执行的策略问题

解决办法:自动化测试用例的执行策略是要看自动化测试的目的,通常有如下几种策略:
一,自动化测试用例是用来监控的,在此目的下,我们就把自动化测试用例设置成定时执行的,如果每五分钟或是一个小时执行一次,在jenkins上创建一个定时任务即可。
二,必须回归的用例。有些儿测试用例,如BVT测试用例,我们在公司产品任何变动上线之前都需要回归执行。那我们就把测试用例设置成触发式执行,在jenkins上将我们的自动化测试任务绑定到开发的build任务上。当开发人员在仿真环境上部代码的时候,我们的自动化测试用例就会被触发执行。
三,不需要经常执行的测试用例。像全量测试用例,我们没有必要一直回归执行,必竟还是有时间消耗的,有些非主要业务线也不需要时时回归。这类测试用例我们就采用人工执行,在jenkins创建一个任务,需要执行的时候人工去构建即可。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

关于selenium相关问题及解答

注:问题中答案是根据自身学习经验,及网上大神答案进行相关总结得出,较为粗浅,如有什么遗漏或不正确的地方,还请指出。 Q1.selenium中如何判断元素是否存在?       之前selenium...

selenium webdriver的各种driver效率比较

转载自:http://blog.csdn.net/five3/article/details/19085303 selenium官方加上第三方宣布支持的驱动有很多种;除了PC端的浏览器之外,...

基于Selenium的Web自动化测试脚本在IE上运行慢的解决方法

Selenium对Web浏览器的支持度上,对火狐Firefox的支持是最好的,其次是谷歌的Chrome,然后是IE,有的Web项目需要在三种浏览器上执行,Chrome和IE都需要借助Driver Se...

selenium常见问题(二)

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must b...

selenium使用中遇到的问题

1、Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in P...
  • funi16
  • funi16
  • 2013-06-06 10:38
  • 44818

selenium验证模糊搜索结果是否正确

最近开始写自动化脚本。语言:python 写了个模糊搜索验证的脚本感觉挺有意思的。 先看看图 在右上角输入搜索关键词“数据库”后凡是在标题和内容包含有这个关键字的数据都列出来。 这样的...

简单的Selenium访问控制线程池

思路:频繁开关phantomJS进程比较耗费资源,所以需要维护一个线程池控制访问以减少内存消耗 1. 自定义操作CustomAction接口 public interface CustomActi...

selenium从零开始到放弃之疑难杂症总结

本文是本人正在准备的《Selenium Webdriver 从零开始到放弃》一文中的一个章节,主要用于收集在测试过程中遇到的各种比较奇葩的问题,分享给大家。一方面自己做个总结,另一方面如果有人遇到同样...

如何放慢selenium的运行速度

selenium执行时,有一个默认是运行速度,有时候速度很快,一眨眼就过去了,虽然报成功,但是不确定有没有按照我的步骤来,selenium提供了一个方法,可以用来设置运行速度,selenium.set...

selenium处理HTML5的视频播放

HTML5定义了一个新的元素,指定了一个标准的的方式来嵌入电影片段,IE9+,Firefox,Opera,Chrome都已经支持。下面是一个简单的例子,实现视频的播放和暂停。 package com...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)