Python マルチスレッド Selenium クロスブラウザー テスト手順

PHPz
リリース: 2017-04-02 13:36:13
オリジナル
1389 人が閲覧しました

Web テストでは、ブラウザーの互換性テストが避けられません。自動テストの前には、常に N 個のブラウザーを 1 つ以上のマシンにインストールし、それらのマシン上で異なるブラウザーを手動で実行して、主要なビジネス プロセスと主要な機能モジュールの機能を確認する必要がありました。サーバーは、Web アプリケーションが異なるブラウザーまたはブラウザーの異なるバージョンで正常に動作できるかどうかを検出します。

python Selenium を使用して自動クロスブラウザー テストを実行する方法を見てみましょう。

クロスブラウザ テストとは

クロスブラウザ テストは、Web アプリケーションが異なるブラウザ上で適切に動作することを検証する機能テストの分野です。

クロスブラウザ テストが必要な理由

通常、私たちは皆、Web アプリケーションがユーザーによってどのブラウザでも使用されることを期待しています。たとえば、IE を使用してオープン ソースの Utest Web サイトを開くことを好む人もいますが、Firefox または Chrome を好む人もいます。

私たちは、より多くのユーザーにそれを使用してもらうために、私たちの Web システムがどのブラウザでも正常に動作することを願っています。

クロスブラウザテストが必要な根本原因は次のとおりです:

異なるブラウザではフォントサイズが一致しない

javascrpitの実装が異なる

CSSとHTMLの検証が異なる

一部のブラウザ以下バージョンがサポートしていない HTML5

ページの配置と div サイズの問題

画像の位置またはサイズの問題

ブラウザとオペレーティング システム間の互換性の問題

上記の側面は、レイアウトに影響を与えるだけでなく、関数が利用できないため、クロスブラウザテストが必要です。

クロスブラウザテストの実行方法

Selenium Webdriver を使用すると、IE、Firefox、Chrome などのさまざまなブラウザでテスト ケースを自動的に実行できます。

同じマシン上の異なるブラウザでテスト ケースを同時に実行するには、マルチスレッド テクノロジが必要です。

以下では、Python のマルチスレッド技術に基づいた Selenium 自動テストのために複数のブラウザを同時に起動してみます。

#-*- 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()
ログイン後にコピー

上記のコードを実行すると、3 つのブラウザすべてが Baidu で検索を開始することがわかります。面白いと思いませんか?もちろん、上記は単なるデモンストレーションであり、より実践的な機能をさらに検討する必要があります。

この記事では、最初に Python マルチスレッド テクノロジを使用して、複数のブラウザを起動して Selenium 自動テストを同時実行する方法を説明します。この例を通じて、より深い知識を学び、実際のビジネス テストに基づいてより適切な自動テスト サービスを分類する必要があります。シーン。

Selenium をより深く使用して互換性テストを実行する方法については、Selenium の機能を真に活用するには、まだ綿密な研究と探索が必要です。

以上がPython マルチスレッド Selenium クロスブラウザー テスト手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート