python+selenium自动化测试-29自动化执行效率和稳定性问题

用webdriver进行web端自动化时,一开始还惊讶300多个用例为何运行了将近一个钟,后来发现一个.py里面用例明明只有十多个,但执行却用了140多秒,也就不惊讶了。做电商后台自动化,业务逻辑比较多,操作步骤也比较繁琐。但是,也是可以通过优化代码,从而提高测试用例执行效率和稳定性的。

优化代码,可以从以下九个方面着手:

1、原则:稳定优先级高于运行速度

Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间,运行脚本的线程数等。所以不能单方面追求运行速度,要确保稳定性,能稳定地实现回归测试才是关键。

2、sleep解决操作过快导致资源紧张问题

元素定位到了,操作过快,也会导致操作失败,无法正常进行下一个步骤。例如,新增某条记录,数据都刚准备完毕了,就立刻点击提交,导致资源使用紧张(可能是因为服务器的响应速度慢)。这时候,sleep就发挥着重要作用,它强制页面等待一段时间,等资源有所释放,再去操作页面元素。

3、不存在的元素查找时间超长

自动化过程中,发现查询一个不存在的元素,查找时间是很长的,那是因为在setUp()里面设置了隐式等待driver.implicitly_wait(time)。隐式等待是设置全局的查找页面元素的等待时间,在这个时间内没找到指定元素则抛出异常。这告诫我们,在删除记录时,记录最好不要全部删除,implicitly_wait(time)也不宜设置过长,否则,如果去查找一个不存在的元素,会因为隐式等待增加用例的平均执行时间,导致效率低下。

4、用Firefox自动化测试,稳定性比chrome要好

通过观察Firefox和chrome作为驱动浏览器进行自动化测试,Firefox的稳定性要比chrome的高。如用到send_keys()的时候,偶尔会发现,chrome传值不完整的问题,其中一个原因估计是传值的时候,chrome将字符串拆解成单个

猜你喜欢

转载自blog.csdn.net/qq_24601279/article/details/103912535
今日推荐