Maison  >  Article  >  développement back-end  >  Instructions de test multi-navigateurs Python multithread Selenium

Instructions de test multi-navigateurs Python multithread Selenium

PHPz
PHPzoriginal
2017-04-02 13:36:131367parcourir

Dans les tests Web, un test inévitable est le test de compatibilité du navigateur. Avant les tests automatisés, nous avions toujours du mal à installer N navigateurs sur une ou plusieurs machines, puis à vérifier manuellement le processus métier principal et les fonctions clés des modules de fonction sur différents navigateurs pour les détecter. si notre application Web peut fonctionner normalement sur différents navigateurs ou différentes versions de navigateurs.

Voyons comment utiliser python sélénium pour effectuer des tests automatisés entre navigateurs.

Qu'est-ce que les tests multi-navigateurs

Les tests multi-navigateurs sont une branche des tests fonctionnels permettant de vérifier que les applications Web peuvent fonctionner correctement sur différents navigateurs.

Pourquoi des tests multi-navigateurs sont nécessaires

Normalement, nous nous attendons tous à ce que les applications Web soient utilisées par nos utilisateurs sur n'importe quel navigateur. Par exemple, certaines personnes aiment utiliser IE pour ouvrir le site Web open source Utest, mais d'autres aiment Firefox ou Chrome.

Nous espérons que notre système Web pourra fonctionner normalement sur n'importe quel navigateur, afin d'inciter davantage d'utilisateurs à l'utiliser.

La cause première de la nécessité de tests multi-navigateurs est :

La taille de la police ne correspond pas dans les différents navigateurs

L'implémentation de javascrpit est différente

css, html La vérification est différente

Certains navigateurs ou versions inférieures ne prennent pas en charge HTML5

Problèmes d'alignement des pages et de taille div

Position de l'image ou problèmes de taille

Problèmes de compatibilité entre les navigateurs et les systèmes d'exploitation

Les aspects ci-dessus affectent non seulement la mise en page, mais peuvent même entraîner l'indisponibilité de la fonction, nous devons donc effectuer des tests entre navigateurs.

Comment effectuer des tests multi-navigateurs

Si nous utilisons Selenium Webdriver, nous pouvons exécuter automatiquement des cas de test sur différents navigateurs tels que IE, Firefox, Chrome, etc.

Afin d'exécuter des cas de tests simultanément sur différents navigateurs sur la même machine, nous avons besoin d'une technologie multi-threading.

Ci-dessous, nous essayons de démarrer plusieurs navigateurs en même temps pour des tests automatisés Selenium basés sur la technologie multithread de 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()

Exécutez le code ci-dessus et vous constaterez que les trois navigateurs commenceront à rechercher sur Baidu. N'est-ce pas intéressant ? Bien entendu, ce qui précède n’est qu’une simple démonstration et de plus en plus de capacités pratiques doivent être explorées.

Cet article démontre dans un premier temps l'utilisation de la technologie multithread Python pour démarrer plusieurs navigateurs pour des tests automatisés Selenium simultanés. Grâce à cet exemple, vous devriez acquérir des connaissances plus approfondies et trier des solutions plus appropriées en fonction de l'activité réelle. tests. Scénarios commerciaux de tests automatisés.

Quant à la façon d’utiliser le sélénium plus en profondeur pour effectuer des tests de compatibilité, il reste des recherches et des explorations approfondies pour vraiment faire bon usage des fonctionnalités du sélénium.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn