发生背景:

    跨浏览器测试是功能测试的一个分支,用以验证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自动化跨浏览器执行测试(简单多线程案例)的更多相关文章

  1. Selenium_python自动化跨浏览器执行测试

    Selenium_python自动化跨浏览器执行测试(简单多线程案例)  转:https://www.cnblogs.com/dong-c/p/8976746.html 跨浏览器测试是功能测试的一个分 ...

  2. python+selenium实现跨浏览器兼容性测试

    python https://www.python.org/ python是一种脚本语言, 易学易用,可以助你快速实现业务逻辑,高效集成系统. ----- http://zh.wikipedia.or ...

  3. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  4. 在线HTTP速度测试(响应时间测试)及浏览器兼容测试

    一.前言 网站的响应时间,是判断一个网站是否是好网站的重要的因素之一.百度首页的响应时间在全国各个省份小于10ms.这个响应时间远远好于竞争对手.根据美丽说的技术负责人分析,美丽说访问速度提升10%, ...

  5. Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...

  6. 【Python】详解Python多线程Selenium跨浏览器测试

    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏 ...

  7. (译)学习如何构建自动化、跨浏览器的JavaScript单元测试

    作者:Philip Walton 译者:Yeaseon 原文链接:点此查看 译文仅供个人学习,不用于任何形式商业目的,转载请注明原作者.文章来源.翻译作者及链接,版权归原文作者所有. ___ 我们都知 ...

  8. jmeter接口自动化-通过csv文件读取用例并执行测试

    最近在公司测试中经常使用jmeter这个工具进行接口自动化,简单记录下~ 一.在csv文件中编写好用例 首先在csv文件首行填写相关参数(可根据具体情况而定)并编写测试用例.脚本可通过优先级参数控制执 ...

  9. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题

    虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现 ...

随机推荐

  1. ASP.NET Core 添加静态目录访问、使其它目录可被访问

    使用app.UseFileServer 在 public void Configure(){}中,修改或添加 app.UseFileServer(new FileServerOptions() { F ...

  2. 沉淀再出发:Tomcat的实现原理

    沉淀再出发:Tomcat的实现原理 一.前言 在我们接触java之后,相信大家都编写过服务器程序,这个时候就需要用到Tomcat了.Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统 ...

  3. December 06th 2016 Week 50th Tuesday

    Behind every beautiful thing, there is some kind of pain. 美丽背后,必有努力. No pains, no gains. But it seem ...

  4. rpc、socket、tcp/udp简要梳理

    RPC:远程过程调用(分布式.微服务间的方法调用) HTTP:无状态,每次请求都要发送一个request,服务器响应之后就断掉(http header中的keep-alive指的是tcp) TCP:面 ...

  5. urllib下使用Xpath表达式示例

    urllib下使用Xpath表达式示例 使用xpath表达式需要先将需要匹配的数据转换成tree格式,这就需要先装lxml模块.安装方法可以使用pip安装. 示例代码: import urllib.r ...

  6. Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using password: YES)错误解决方案

    Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.proper ...

  7. cocos2d-x中关于打包成APK的问题

    转载自:http://blog.csdn.net/u013315178/article/details/51254630 之前在网上看了很多的帖子大多数用ide 来打包 太麻烦了 而且一般没有人现场指 ...

  8. 如何在Ubuntu中添加中文输入法

    首先打开终端,输入以下命令 打开终端输入以下命令 弹出设置IBus首选项对话框,单击输入法文本框,再单击添加按钮,选中汉语中的拼音,单击添加,设置完毕. 最后单击输入法图标的选项中的首选项中的拼音模式 ...

  9. 设置eclipse默认编码格式

    Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window->Prefere ...

  10. LINUX升级PHP版本至5.4.26

    参考网址:http://www.itbulu.com/wdcp-php54.html文件:链接:http://pan.baidu.com/s/1slbbNxr 密码:s0yb 1.运行下载PHP版本文 ...