跨浏览器测试

时间:2022-08-06 13:11:12

需要跨浏览器测试的根源是:

  1. 在不同浏览器字体大小不匹配

  2. javascrpit的实现不一样

  3. css、html的验证有所区别

  4. 有的浏览器或低版本不支持HTML5

  5. 页面对齐和div大小问题

  6. 图片位置或大小问题

  7. 浏览器和操作系统间的兼容问题

如果我们使用selenium webdriver,那我们就能够自动的在IE、firefox、chrome、等不同浏览器上运行测试用例。

为了能在同一台机器上不同浏览器上同时执行测试用例,我们需要多线程技术。

下面我们基于python的多线程技术来尝试同时启动多个浏览器进行selenium自动化测试。

#-*- coding:utf-8 -*-

from selenium import webdriver
import
sys
from
time import sleep
from threading import Thread
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_0001]百度搜索"
   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"
       }  
        
   # 构建线程
   threads = []  
   for b, url in data.items():  
      t = Thread(target=test_baidu_search,args=(b,url))
      threads.append(t)  
   
   # 启动所有线程
   for thr in threads:
       thr.start()

运行上述代码,你会发现IE、firefox、chrome都会启动开始进行百度搜索,是不是很有意思?当然上面只是简单的演示,更多更实用的能力有待挖掘。