Selenium_python自动化跨浏览器执行测试
Selenium_python自动化跨浏览器执行测试(简单多线程案例)
跨浏览器测试是功能测试的一个分支,用以验证web应用在不同浏览器上的正常工作,通常情况下,我们都期望web类应用能够被我们的用户在任何浏览器上使用,例如有的人喜欢IE浏览器上使用,有的人喜欢firefox或者有的人喜欢Chrome。我们期望系统在任何浏览器上正常使用可以吸引更多的用户来使用。
问题根源:
需要我们跨浏览器测试的根源是:
1、web不同和css样式在不同浏览器中显示结果是不一样的;(非常让前段开发头疼的ie一直伴随这windows这么些年)
2、javascrpt在不同浏览器中实现方式不一样,例如某些点击后动作和点击后返回结果等等;
3、有的低版本浏览器不支持h5;
4、图片位置大小问题、字体大小问题;
5、div、span...等标签float属性问题等;
6、浏览器和操作系统间的兼容问题;
以上几点轻微的是页面样式不一样,严重的会导致某些功能不可用;
解决思路:
如何执行跨浏览器测试,手工就是安装多个浏览器执行手工点点测试,但是发现问题有时候可能是之前的缓存等,然后关掉浏览器清除历史浏览记录重新做一遍操作,自动化如何解决这个问题呢?我们可以使用Selenium webdriver在不同的浏览器(Firefox、IE、Chrome...)上运行测试用例执行测试;
下面我们基于Python的多线程技术来尝试启动多个浏览器进行selenium执行自动化测试;
具体代码如下:
#-*-coding:utf-8-*-
__author__='dong.c'
from selenium import webdriver
import sys
import thread
import threading
from time import sleep
reload(sys)
sys.setdefaultencoding("utf-8")
def test_baidu_search(browser,url):
driver = None
#你可以自定义这里,添加更多浏览器支持进来
if browser == "ie":
driver = webdriver.ie()
elif browser == "firefox":
driver = webdriver.Firefox()
elif browser == "chrome":
driver = webdriver.Chrome()
if driver == None:
exit()
print u"开始【case_001】百度搜索"
driver.get(url)
print u"清除搜索中的数据,输入搜索关键词"
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"博客园")
print u"单击 百度一下 按钮 开始测试"
driver.find_element_by_id("su").click()
sleep(3)
print u"关闭浏览器,退出webdriver"
driver.quit()
if __name__ == "__main__":
#浏览器和首页url
data = {
"ie":"http://www.baidu.com",
"firefox":"http://www.baidu.com",
"chrome":"http://www.baidu.com"
}
#构建并启动线程
for b,url in data.items():
t = threading.Thread(target = test_baidu_search,args=(b,url))
t.start()
运行结果:
运行上述代码,你会发现3个浏览器都会启动开始进行百度搜索,这里只是做了最简单核心区域的多线程的演示,你可以整理下写入unittest中加上一些断言,梳理出更加适合自动化的测试业务场景,至于如何更加深入利用selenium把软件兼容性做的更好,还有更多的需要挖掘;
Selenium_python自动化跨浏览器执行测试的更多相关文章
- Selenium_python自动化跨浏览器执行测试(简单多线程案例)
发生背景: 跨浏览器测试是功能测试的一个分支,用以验证web应用在不同浏览器上的正常工作,通常情况下,我们都期望web类应用能够被我们的用户在任何浏览器上使用,例如有的人喜欢IE浏览器上使用,有的人喜 ...
- python+selenium实现跨浏览器兼容性测试
python https://www.python.org/ python是一种脚本语言, 易学易用,可以助你快速实现业务逻辑,高效集成系统. ----- http://zh.wikipedia.or ...
- 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...
- 在线HTTP速度测试(响应时间测试)及浏览器兼容测试
一.前言 网站的响应时间,是判断一个网站是否是好网站的重要的因素之一.百度首页的响应时间在全国各个省份小于10ms.这个响应时间远远好于竞争对手.根据美丽说的技术负责人分析,美丽说访问速度提升10%, ...
- Python多线程Selenium跨浏览器测试
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...
- 【Python】详解Python多线程Selenium跨浏览器测试
前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...
- (译)学习如何构建自动化、跨浏览器的JavaScript单元测试
作者:Philip Walton 译者:Yeaseon 原文链接:点此查看 译文仅供个人学习,不用于任何形式商业目的,转载请注明原作者.文章来源.翻译作者及链接,版权归原文作者所有. ___ 我们都知 ...
- 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题
虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现 ...
- Selenium Grid跨浏览器-兼容性测试
Selenium Grid跨浏览器-兼容性测试 这里有两台机子,打算这样演示: 一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.16 ...
随机推荐
- windows10 安装 Mysql8.0
目录 1.Mysql8.0下载 2.配置环境变量 3.在安装目录下创建my.ini文件 4 初始化Mysql 5 安装至系统服务 6 更改密码 1.Mysql8.0下载 2.配置环境变量 将下载后文件 ...
- THUSC 2021 游记
想了想不往博客园放不行,还是放上来了. 原文 \[\texttt{Brief Introduction} \] 众所周知,THUSC2021 5 月 15-16 日在杭州市 XJ 中学举办,然而由于 ...
- java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal报错处理
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is ja ...
- Vue父子组件通信(父级向子级传递数据、子级向父级传递数据、Vue父子组件存储到data数据的访问)
Vue父子组件通信(父级向子级传递数据.子级向父级传递数据.Vue父子组件存储到data数据的访问) 一.父级向子级传递数据[Prop]: ● Prop:子组件在自身标签上,使用自定义的属性来接收外界 ...
- 【LeetCode】1465. 切割后面积最大的蛋糕 Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 找最大间隔之积 日期 题目地址:https://lee ...
- 【九度OJ】题目1078:二叉树遍历 解题报告
[九度OJ]题目1078:二叉树遍历 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1078 题目描述: 二叉树的前序.中序.后序遍历 ...
- 【LeetCode】212. Word Search II 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 前缀树 日期 题目地址:https://leetco ...
- Sort(hdu5884)
Sort Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Essentially No Barriers in Neural Network Energy Landscape
目录 梗概 主要内容 path的定义 path的逼近 Mechanical Model Nudged Elastic Band 局部最优 Draxler F, Veschgini K, Salmhof ...
- Flink sql 之 微批处理与MiniBatchIntervalInferRule (源码分析)
本文源码基于flink1.14 平台用户在使用我们的flinkSql时经常会开启minaBatch来优化状态读写 所以从源码的角度具体解读一下miniBatch的原理 先看一下flinksql是如何触 ...