>  기사  >  백엔드 개발  >  Python 다중 스레드 Selenium 브라우저 간 테스트 지침

Python 다중 스레드 Selenium 브라우저 간 테스트 지침

PHPz
PHPz원래의
2017-04-02 13:36:131382검색

웹 테스트에서 피할 수 없는 테스트는 브라우저 호환성 테스트입니다. 자동 테스트 이전에는 항상 하나 이상의 컴퓨터에 N 브라우저를 설치한 다음 브라우저에서 주요 비즈니스 프로세스와 주요 기능 모듈 기능을 수동으로 확인하는 데 어려움을 겪었습니다. 웹 애플리케이션이 다른 브라우저나 다른 버전의 브라우저에서 정상적으로 작동할 수 있는지 여부.

python 셀레늄을 사용하여 자동화된 크로스 브라우저 테스트를 수행하는 방법을 살펴보겠습니다.

크로스 브라우저 테스트란

크로스 브라우저 테스트는 웹 애플리케이션이 다양한 브라우저에서 제대로 작동하는지 확인하는 기능 테스트의 한 분야입니다.

크로스 브라우저 테스트가 필요한 이유

일반적으로 우리 모두는 사용자가 모든 브라우저에서 웹 애플리케이션을 사용할 것으로 기대합니다. 예를 들어, 일부 사람들은 IE를 사용하여 오픈 소스 Utest 웹 사이트를 여는 것을 좋아하지만 일부 사람들은 Firefox 또는 Chrome을 선호합니다.

저희 웹 시스템이 모든 브라우저에서 정상적으로 작동하여 더 많은 사용자가 이를 사용할 수 있기를 바랍니다.

크로스 브라우저 테스트가 필요한 근본 원인은 다음과 같습니다.

글꼴 크기가 브라우저마다 일치하지 않습니다

javascrpit 구현이 다릅니다

css, html 인증 다름

일부 브라우저나 하위 버전에서는 HTML5

페이지 정렬 및 div 크기 문제

이미지 위치 또는 크기 문제

브라우저와 운영 체제 간의 호환성 문제

위의 측면은 레이아웃에 영향을 미칠 뿐만 아니라 기능을 사용하지 못할 수도 있으므로 크로스 브라우저 테스트를 수행해야 합니다.

크로스 브라우저 테스트 방법

Selenium Webdriver를 사용하면 IE, Firefox, Chrome 등 다양한 브라우저에서 자동으로 테스트 케이스를 실행할 수 있습니다.

동일한 머신의 서로 다른 브라우저에서 동시에 테스트 사례를 실행하려면 멀티스레딩 기술이 필요합니다.

아래에서는 Python의 멀티스레딩 기술을 기반으로 한 셀레늄 자동화 테스트를 위해 여러 브라우저를 동시에 시작하려고 합니다.

#-*- coding:utf-8 -*-
 
author = u'苦叶子'
 
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()

위 코드를 실행하면 세 가지 브라우저 모두 Baidu에서 검색을 시작하는 것을 볼 수 있습니다. 흥미롭지 않나요? 물론 위의 내용은 단순한 시연일 뿐이며 점점 더 많은 실제 기능을 탐구해야 합니다.

셀레늄을 더욱 심층적으로 활용하여 호환성 테스트를 수행하는 방법에 대해서는 셀레늄의 기능을 제대로 활용하기 위해서는 여전히 심층적인 연구와 탐구가 필요합니다.

위 내용은 Python 다중 스레드 Selenium 브라우저 간 테스트 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.