- Selenium + Python 自动化测试环境搭建
- 怎样开始用selenium进行自动化测试(个人总结)
- 关于学习selenium进行自动化测试所需要学的知识
- Selenium 使用介绍
- Selenium 命令列表
- Selenium 快速入门
- Web软件测试工具Selenium:如何选取元素
- Selenium RC在浏览器兼容性测试的用武之地
- selenium开源功能测试工具
- Selenium执行测试脚本稳定性的一些经验分享交流
- Web测试工具Selenium入门心得
- Selenium自动化测试用例设计注意事项(一)
- 基于TestNG 与Selenium 的自动化测试设计与实施
- 毁三观的 Selenium 自动化测试框架
- Selenium自动化测试用例设计注意事项(二)
- 用Selenium实现页面自动化测试
- Selenium实战:.Net下的自动化测试搭建
- 用 Selenium 自动化验收测试(一)
- 用 Selenium 自动化验收测试(三)
- 使用开源工具SeleniumRC进行功能测试
- 用 Selenium 自动化验收测试(二)
- 用 Selenium 自动化验收测试(四)
- 应用Selenium和Ruby进行面向领域的Web测试
- WebTest比拼Selenium:模拟和真实浏览器上的测试
- Selenium实例:AJAX自动化测试应用
- Selenium-集成测试工具
- 基于FireFox的测试插件 – Selenium IDE
- 基于Selenium和VSTT的网站测试自动化系统
- selenium参考手册中文翻译
- 《Selenium2自动化测试实战–基于Python语言》
- selenium webdriver (python) 第三版
- selenium-webdriver(python) (十六) –unittest 框架
- selenium webdriver (python) 第一版PDF
- selenium-webdriver(python) (十五) — 鼠标事件
- selenium-webdriver(python) (十四) — webdriver原理
- selenium-webdriver(python) (十三) — cookie处理
- 轻松自动化—selenium-webdriver(python) (十二)
- 轻松自动化—selenium-webdriver(python) (十一)
- 轻松自动化—selenium-webdriver(python) (十)
- 轻松自动化—selenium-webdriver(python) (八)
- 轻松自动化—selenium-webdriver(python) (七)
- 轻松自动化—selenium-webdriver(python) (六)
- 轻松自动化—selenium-webdriver(python) (五)
- 轻松自动化—selenium-webdriver(python) (三)
- 轻松自动化—selenium-webdriver(python) (二)
- 轻松自动化—selenium-webdriver(python) (一)
- 译:selenium webdriver (python)
- 菜鸟学自动化测试(九)—-WebDirver
- 菜鸟学自动化测试(八)—-selenium 2.0环境搭建(基于maven)
- Selenium3.0 自动化测试
- JavaScript(Node.js)+ Selenium自动化测试
- selenium操作隐藏的元素
- selenium处理select标签的下拉框
- 在Python中实现PageFactory模式
- 《selenium2 Java 自动化测试实战(第二版)》 更新2016.5.3
- 基于selenium的pyse自动化测试框架
- 自动化基础普及之selenium是啥?
- 在做自动化测试之前你需要知道的
- 自动化测试如何解决验证码的问题
- 菜鸟学自动化测试(六)—-selenium 命令之文字范本匹配
- 菜鸟学自动化测试(五)—–selenium命令之定位页面元素
- 菜鸟学自动化测试(四)—-selenium 命令之验证页面元素
- 菜鸟学自动化测试(三)—-selenium 命令
- 菜鸟学自动化测试(二)—-selenium IDE 功能扩展
- 菜鸟学自动化测试(一)—-selenium IDE
- selenium RC 环境配置
- Selenium的基本使用
- 敏捷自动化测试
- Web测试工具Selenium入门心得
Selenium执行测试脚本稳定性的一些经验分享交流
关于工作中使用Selenium执行测试脚本稳定性的一些经验分享
公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下。
CASE执行游览器:ie firefox chrome
稳定性问题
一、在持续执行WEB自动化的过程中,如需持续执行脚本,比如持续跑脚本24小时,48小时,甚至一周时间。测试CASE会间歇性发生持续加载页面无响应的情况。此现象发生后,测试CASE就会因为持续加载页面这个动作而无响应。后续CASE也不会执行直到当前人为手工解决当前的测试进程。
现象:页面持续加载 无反应,测试CASE 中断无法继续执行。
解决方案:
1)如上图
建议使用线程的方式来监控测试进程的WEB加载执行状态。若超时后则从线程中FAIL当前CASE,使脚本可以持续运行。
方法
在页面会发生跳转的时候 启一个 Thread来监控进程的状况,在Thread的run方法定义一个 计时器,如果计时器超时,则可以刷新页面,计时器清零,若此时刷新页面后,计时器再次超时,则线程会关闭当前进程的游览器,FAIL掉当前的CASE,TestNG会自动启动下一个测试CASE。并且在全部测试CASE执行完毕后,TestNG会记载执行失败的CASE,然后从新执行CASE。
部分Thread 代码
Refresh code:
干掉线程的 code
这里是关掉chrome的进程 来达到关闭游览器的目的。
通过上述步骤则可以控制游览器加载的过程从而解决CASE中加载页面无响应导致的CASE暂停问题。
我们发现使用WebDriver的过程中,TESTCASE在执行时,并非只有GET(Url)的时候会发生测试CASE卡主的问题,以下是对会发生此情况的函数的补充
driver.findelement(String locator) //查找页面元素
driver.refush(); //刷新页面
driver.getpagesource(); //获取页面html文本输出
element.click();//点击页面元素
见过检查发现上述函数在加载页面或查找页面元素的时候,若发生由于网络原因或者页面模块加载出现问题时,页面都会在这个过程中卡住,直接的后果就是这个CASE持续执行几小时没结果。在 稳定性1文中我们已经介绍过处理的方法,在这里只针对某一个函数去放出部分代码,
具体思路为
以driver.refush();为例
线程实现的代码
核心调用的刷新页面的函数
refreshThread();实现
调用流程
主CASE执行刷新函数?刷新函数调用子线程?子线程执行刷新?执行完毕告诉主线程OK。
若主线程判断子线程超时既页面卡主的情况,则主线程会关闭子线程执行相应的FAIL操作。
欢迎交流~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论