selenium 是一個web的自動化測試工具,很多學習功能自動化的同窗開始首選selenium ,相由於它相比QTP有諸多有點:html
* 免費,也不用再爲破解QTP而大傷腦筋java
* 小巧,對於不一樣的語言它只是一個包而已,而QTP須要下載安裝1個多G 的程序。node
* 這也是最重要的一點,無論你之前更熟悉C、 java、ruby、python、或都是C# ,你均可以經過selenium完成自動化測試,而QTP只支持VBS python
* 支持多平臺:windows、linux、MAC ,支持多瀏覽器:ie、ff、safari、opera、chromemysql
* 支持分佈式測試用例的執行,能夠把測試用例分佈到不一樣的測試機器的執行,至關於分發機的功能。linux
工具選擇 :android
Python版本: 選擇2.7.2, Why? 目前大部分第三方庫和工具對2.7都有簡單的安裝包,不須要本身作太多處理,比2.6內置了一些包,不須要再安裝; Python3.x不支持Se2.0web
Selenium版本:選擇2.0+,Why? 由於從2.0開始,Se已經和WebDriver集成在一塊兒了,WebDriver提供了很是多的API和自動化測試處理方法。sql
腳本開發:Eclipse(JDK:選擇1.6版本),其中插件選擇:PyDevchrome
代碼庫管理:SVN,使用SVN對整個框架下的內容進行版本管理
環境搭建步驟(Windows7,64位)
根據下面的地址,直接一鍵安裝,所有默認方式。
下載地址:http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
而後設置Python的環境變量, Path:「C:\Python27;」
其實SetupTools就是一個幫助你安裝第三方工具包的加強工具軟件,根據下面的地址下載,而後一鍵安裝。下載地址:
備註:
安裝setuptools的時候,不能再註冊表中識別出來python2.7
在網上找了方法,僅做筆記,供下次使用方法:
新建一個register.py 文件,把一下代碼貼進去,保存(C盤)
#
# script to register Python 2.0 or later for use with win32all
# and other extensions that require Python registry settings
#
# written by Joakim Loew for Secret Labs AB / PythonWare
#
# source:
# http://www.pythonware.com/products/works/articles/regpy20.htm
#
# modified by Valentine Gogichashvili as described in http://www.mail-archive.com/distutils-sig@python.org/msg10512.html
import sys
from _winreg import *
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
installpath, installpath, installpath
)
def RegisterPy():
try:
reg = OpenKey(HKEY_CURRENT_USER, regpath)
except EnvironmentError as e:
try:
reg = CreateKey(HKEY_CURRENT_USER, regpath)
SetValue(reg, installkey, REG_SZ, installpath)
SetValue(reg, pythonkey, REG_SZ, pythonpath)
CloseKey(reg)
except:
print "*** Unable to register!"
return
print "--- Python", version, "is now registered!"
return
if (QueryValue(reg, installkey) == installpath and
QueryValue(reg, pythonkey) == pythonpath):
CloseKey(reg)
print "=== Python", version, "is already registered!"
return
CloseKey(reg)
print "*** Unable to register!"
print "*** You probably have another Python installation!"
if __name__ == "__main__":
RegisterPy()
輸入如下命令(register.py 存放在 C盤底下)
顯示「python 2.7 is already registered」
再安裝setuptools的時候,就能自動識別出來python2.7了。
win7是 64的緣由,在安裝python(32位)時,若是選擇只爲當前用戶,以上問題是不會出現的,若是選擇全部用戶,那就用上面的方法解決吧。
代碼來自:http://tech.valgog.com/2010/01/after-installing-64-bit-windows-7-at.html
利用第二步安裝的SetupTools進行安裝,打開DOS界面,進入到目錄:
C:\Python27\Scripts, 而後敲入命令: easy_install pip, 等待完成就OK。
若是聯網下載失敗的話,則:
解壓pip-1.5.5.tar.gz,將解壓文件放到C:\下,在DOS環境進入C:\pip-1.5.5,執行命令:python setup.py install
請注意安裝路徑。默認在:C:\Python27\Scripts。
打開DOS界面,進入到目錄: C:\Python27\Scripts,
而後敲入命令: pip install selenium or pip install –U selenium,其中:裏面一些警告能夠暫時不用管,若是想找到緣由,Pls 百度 or 谷歌 一下!
注:關於網上的有一段環境搭建步驟描述,那個是指支持Se1.0版本的,2.0版本不須要那個啓動server-jar文件 (2.21.0版本須要這個服務器)
在記事本中編寫下面的代碼:(保存爲 pytest.py,而後直接運行便可!)
from selenium import webdriver
browser = webdriver.Firefox() # Get local session of
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo" in browser.title
browser.close()
若是代碼運行成功,就表示Selenium安裝成功了! Very Good!
第六步:安裝webdriver
安裝Chrome driver
chrome driver的下載地址在這裏。
一、 下載解壓,你會獲得一個 chromedriver.exe文件(我點開,運行提示started on prot 9515 ,這是幹嗎的?端口9515被佔了?中間折騰了半天),後來才知道須要把這傢伙放到chrome的安裝目錄下...\Google\Chrome\Application\ ,而後設置path環境變量,把chrome的安裝目錄(個人:C:\Program Files (x86)\Google\Chrome\Application):
二、 而後解壓chromedriver.exe到Python的安裝目錄下,如C:\Python27。
三、 驗證腳本以下:
# coding = utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
print driver.title
driver.quit()
又報了個錯:
"ChromeDriver executable needs to be available in the path. "
selenium.common.exceptions.WebDriverException: Message: ChromeDriver executable
needs to be available in the path. Please download from http://chromedriver.stor
age.googleapis.com/index.html and read up at http://code.google.com/p/selenium/w
iki/ChromeDriver
這個是path環境變量未設置成功緻使。若是配了系統環境變量重啓後也沒用還報這個錯,用下面這種方法設環境變量就ok啦:
import os
from selenium import webdriver
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()
還報個錯:
Chrome version must be >= 27.0.1453.0\n (Driver info: chromedriver=2.0,platform=Windows NT 5.1 SP3 x86)
說我chrome的版本沒有大於27.0.1453.0 ,這個好辦,更新到最新版本便可。
安裝IE driver
ie driver的下載地址在這裏,記得根據本身機器的操做系統版原本下載相應的driver。
1、
複製IEDriverServer.exe到C:\Python27 ;
將IEDriverServer.exe文件放到IE的安裝目錄下。
2、配置IE的保護模式
若是要使用webdriver啓動IE的話,那麼就須要配置IE的保護模式了。
把IE裏的保護模式都選上或都勾掉就能夠了。(更改IE的internet選項->安全,將Internet/本地Internet/受信任的站定/受限制的站點中的啓用保護模式所有去掉勾,或者所有勾上。)
三、驗證腳本以下:
# coding = utf-8
from selenium import webdriver
iedriver = "C:\Program Files (x86)\Internet Explorer\IEDriverServer.exe"
driver = webdriver.Ie(iedriver)
driver.get('http://www.baidu.com')
print driver.title
driver.quit()
報了個錯:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unexpected error launchi
ng Internet Explorer. Protected Mode settings are not the same for all zones. En
able Protected Mode must be set to the same value (enabled or disabled) for all
zones.
這個緣由是微軟自IE7之後加入了Protected Mode的概念,此時把IE裏的保護模式都選上或都勾掉就能夠了。
又出現一個錯誤:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Unexpected error launchi
ng Internet Explorer. Browser zoom level was set to 129%. It should be set to 10
0%
這個是因爲瀏覽器縮放致使的問題,這個多是你無心中按住了Ctrl鍵且滾動了鼠標滾輪,或者是你不當心按住CTRL鍵時碰到NB觸摸板塊的滾動功能了。按住Ctrl鍵不放,再滾動鼠標中鍵,查看狀態欄右邊顯示爲「100%」便可。
安裝firefox webdirver
Selenium IDE是Firefox的一個插件,是能夠進行腳本錄製以及案例轉換,因此Selenium IDE+Firebug會成爲你往後寫測試案例的兩大助手
一、將selenium-ide-1.6.0.xpi拖進firefox瀏覽器,即開始安裝。 Firefox瀏覽器選裝firebug、FirePath插件。
或者直接在火狐的「附加組件」中,搜索Selenium IDE(Selenium IDE Button 1.2.0)和firebug(firebug-2.0.7)下載安裝便可
二、問題:firefox瀏覽器不能安裝插件,提示services.addons.mozilla.org:443 使用了無效的安全證書。
正常狀況下不會這樣 應該是用了代理或者是系統時間不對。看一下有沒有添加證書的選項
三、驗證腳本以下:
# coding = utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
print driver.title
driver.quit()
備註:
構建Python+Selenium2自動化測試環境完成以後,就須要測試支持python的selenium的版本是否都支持在不一樣瀏覽器上運行,當前咱們分別在三個最通用的瀏覽器上經過腳原本測試。
一、在IE瀏覽器上運行測試腳本,首先須要下載IEDriverServer.exe,放在IE瀏覽器的安裝目錄且同級目錄下,腳本以下:
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
iedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe"
os.environ["webdriver.ie.driver"] = iedriver
driver = webdriver.Ie(iedriver)
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()
driver.quit()
二、在Chrome瀏覽器上運行測試腳本,首先須要下載ChromeDriver.exe,放在Chrome瀏覽器的安裝目錄且同級目錄下,腳本以下:
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()
driver.quit()
三、在Firefox瀏覽器上運行測試腳本,具體以下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("selenium")
elem.send_keys(Keys.RETURN)
assert "Google" in driver.title
driver.close()
driver.quit()
總結:經過以上三個不一樣瀏覽器上的測試,說明selenium在python中的運用於其Java版本都是同樣。因爲Firefox是默認安裝 路徑,webdriver能夠正常訪問找到他,若是非系統默認安裝路徑,則須要跟IE和Chrome同樣來設置driver路徑。
一、PyCharm是一種Python IDE,帶有一整套能夠幫助用戶在使用Python語言開發時提升其效率的工具,好比調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完 成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用於支持Django框架下的專業Web開發。
二、Eclipse-PyDev插件
關於這個插件的安裝,就很少說了!網上不少!能夠看看下面的連接:
http://www.cnblogs.com/Bonker/p/3584707.html
在 Eclipse 菜單欄中,選擇 Window > Preferences > Pydev > Interpreter - (Python/Jython),在這裏配置 Python/Jython 解釋器,下面以 Python 爲例介紹如何配置。
首先須要添加已安裝的解釋器。這裏,Python 安裝在 C:\Python27 路徑下。單擊 New,選擇 Python 解釋器 python.exe,打開後顯示出一個包含不少複選框的窗口,選擇須要加入系統 PYTHONPATH 的路徑,單擊 Ok。
接下來,檢查一下配置的結果是否正確。
在 System PYTHONPATH 裏,檢查是否包含配置過程當中加入的那些路徑。這裏列出了全部的系統所需的庫文件夾。
另外,在 Forced builtin libs 裏,列出了 Python 的內置庫。對於 Python 而言,這樣的內置庫大約有50個,而對於 Jython 來講,則有30個左右。
這樣,Python 解釋器就配置好了。
1、配置pip包管理工具的環境變量path
C:\Python27\Scripts
若未安裝pip的包管理工具則:
在C:\Python27\Scripts路徑下敲入命令: easy_install pip, 等待完成就OK
2、安裝Python操做excel讀寫的xlrd模塊
pip install xlrd
3、安裝sendkeys模擬鍵盤事件的模塊包
pip install SendKeys-0.3-cp27-none-win_amd64.whl
4、安裝pywin32模塊的包,其中包括win32gui模塊
下載nodejs安裝包(http://nodejs.org/download/)安裝
測試安裝是否成功:
運行cmd,輸入node -v
安裝android的sdk包,(http://developer.android.com/sdk/index.html),運行依賴 sdk中的 'android'工具。並確保你安裝了Level17或以上的版本 api。設置ANDROID_HOME 系統變量爲你的 Android SDK 路徑,並把tools和platform-tools兩個目錄加入到系統的 Path路徑裏。
變量: ANDROID_HOME
值: D:\android-sdk
設置: Path
值: %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
安裝Apache Ant(http://ant.apache.org/bindownload.cgi)。解壓縮文件夾,並把路徑加入環境變量。
變量: ANT_HOME
值: D:\apache-ant-1.8.2
設置: Path
值: %ANT_HOME%\bin
測試ant環境安裝成功:
運行cmd,輸入ant,若是沒有指定build.xml就會輸出:
Buildfile: build.xml does notexist!
Build failed
安裝JDK
下載解壓文件夾 而且設置 M2HOME 和 M2 環境變量,把 M2 環境變量添加到你的系統PATH變量中。
變量: JAVA_HOME
值: C:\Program Files (x86)\Java\jdk1.7.0_01
變量: classpath
值: %JAVA_HOME%\lib;
設置: Path
值: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
測試環境安裝成功:
運行cmd,輸入java -version 若是成功則出現java信息:
安裝Maven(http://maven.apache.org/download.cgi)
下載解壓文件夾 而且設置 M2HOME 和 M2 環境變量,把 M2 環境變量添加到你的系統PATH變量中。
變量: MAVEN_HOME
值: D:\apache-maven-3.1.1
設置: Path:
值: %MAVEN_HOME%\bin
測試環境安裝成功:
運行cmd,輸入mvn -v 若是成功則出現maven信息:
一、聯網安裝Appium【通常在線安裝比較慢且成功率不高,用window版的安裝包便可】。使用npm安裝appium。 在cmd使用命令npm install -g appium 下載appium。或者用npm --registry http://registry.cnpmjs.org install -g appium (推薦這種,npm的國內鏡像)
【注:-g全局參數】多等幾分鐘,能夠看到appium的版本1.1.0及安裝目錄。(整個過程較慢,請耐心等待)安裝成功後,在cmd輸入appium出現如下信息代表安裝成功:
至此,appium的安裝過程結束。
二、appinum的window版本,使用AppiumForWindows-1.3.4.1.zip包直接解壓;解壓後驗證環境變量配置是否成功
appium &
appium-doctor
進入cmd,輸入:pip install Appium-Python-Client
http://blog.csdn.net/gzh0222/article/details/39272785
若是用到mysql數據庫記錄執行結果的統計分析則須要安裝。前提有mysql的服務的啓動