1. 程式人生 > >Selenium Python自動化測試環境搭建

Selenium Python自動化測試環境搭建

一.需要使用的工具

1.瀏覽器(Firefox、Chrome、IE)

2.Python(Python2或Python3)

3.Selenium

4.瀏覽器驅動(geckodriver、chromedriver、IEDriverServer)

5.IDE(Eclipse、Pychram等)

6.資料庫(MySQL、Oracle、Sql Server、DB2等均可)

7.外掛(FireBug或瀏覽器開發模式下的物件識別工具)

8.資料庫連線工具

9.Jenkins持續整合工具

 

二.瀏覽器及驅動安裝

  安裝Firefox、Chrome、IE三個瀏覽器均可,注意想使用某個瀏覽器需要下載對應的瀏覽器驅動程式,同時驅動程式支援的版本需與瀏覽器版本對應;

1.Firefox:

  下載地址:http://ftp.mozilla.org/pub/firefox/releases/

  驅動地址:https://github.com/mozilla/geckodriver/releases

2.Chrome:

  下載地址:網上下載

  驅動地址:http://chromedriver.storage.googleapis.com/index.html

3.IE:

  下載地址:系統自帶

  驅動地址:http://selenium-release.storage.googleapis.com/index.html

 

三.Python安裝

1.官網下載python3,並安裝;

下載地址:https://www.python.org/getit/

 

2.配置環境變數

在path中新增python的安裝目錄和Scripts的安裝目錄;

 

3.驗證安裝

開啟cmd命令列,輸入python –version,若顯示python的版本號則表示安裝成功;

 

四.Selenium安裝

Python環境搭建好了以後,安裝selenium就簡單了,

安裝方法:

--開啟cmd命令列

--輸入命令 pip install selenium

--回車,等待自動安裝結束

--當最後一行程式碼出現Successfully install selenium-XX時,表示安裝成功。

 

五.驅動存放

瀏覽器及驅動下載結束後,需要將對應的驅動拷貝至python安裝目錄下的Scripts目錄下;

 

六.Eclipse PyDev安裝

本次以eclipse中安裝pydev的方式為例說明:

1.安裝PyDev:

開啟eclipse後,在Help -- Eclipse Marketplace視窗輸入pydev,直接搜尋後點擊install安裝即可;

 

若未搜尋到或安裝失敗,可嘗試手動安裝,開啟eclipse後,在Help -- Install New Software視窗輸入:

Name:PyDev

Location:http://pydev.org/updates

注:下載Pydev自動安裝,如果失敗,則手動訪問地址,然後關掉其他使用網路程式,重啟eclipse再次安裝!提示重啟按照完畢!

 

2.eclipse和python關聯:

開啟eclipse,在 Windows -- Preferences --PyDev -- Interpreters -- Python Interpreter

點選New按鈕,選擇python.exe的路徑,開啟後顯示出一個包含很多複選框的視窗,點選OK;

 

3.測試python:

建立一個python專案,New -- Project -- PyDev -- PyDev Project,

輸入專案名稱,點選finish,

 

在專案中先建立PyDev Package,再建立一個PyDev Module類,填寫py檔名稱;

輸入程式碼:print(“this is my first python project!”),滑鼠右鍵Run As ->Python Run若出現執行結果則正常;

 

七.測試開啟瀏覽器

在IDE中輸入程式碼:

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

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

執行後若能在瀏覽器中開啟百度首頁則正常;

 

八.資料庫安裝

以MySql資料為例,下載安裝包後安裝,建立資料庫及登入使用者,建立表,用於存在自動化測試案例資料、期望輸出和案例執行結果;

想要連線資料庫,需要在cmd命令列中輸入:pip install PyMySQL命令,安裝pymysql工具:

在配置檔案中新增資料庫的基本資訊:

 

在原始碼中建立連線和操作資料庫的工具類:

from framework.logger import Logger

import pymysql as mdb

import configparser

import os

 

logger = Logger("資料庫連線").getlog()

config = configparser.ConfigParser()

dir = os.path.abspath('.').split('src')[0]

config.read( dir+"/config/config.ini") 

 

class database:

    # 資料庫連線

    def connectMySQL(self):

        conn = False

        try:

            conn = mdb.connect(host=config.get("MySql", "dbhost"),

                                   user=config.get("MySql", "userName"),

                                   passwd=config.get("MySql", "passWord"),

                                   db=config.get("MySql", "dbName") ,

                                   port=int(config.get("MySql", "dbport")),

                                   )

        except Exception as data:

            logger.error("connect database failed, %s" %data)

            conn = False

        return conn

 

    # 獲取查詢結果集

    def fetch_all(self, sql):

        self._conn = self.connectMySQL()

        self._cursor = self._conn.cursor()

        res = ''

        if (self._conn):

            try:

                self._cursor.execute(sql)

                res = self._cursor.fetchall()

                #print(res)

            except Exception as data:

                res = False

                logger.error("query database exception, %s" %data)

            finally:

                self.close()

        return res

 

    #更新資料庫中表的某幾列:update login set result = %s where id = %s

    def updateByParams(self, sql, params):

        self._conn = self.connectMySQL()

        self._cursor = self._conn.cursor()

        flag = False

        if (self._conn):

            try:

                self._cursor.execute(sql,params)

                self._conn.commit()

                flag = True

            except mdb.Error as data:

                flag = False

                logger.warn("update database by params exception, %s" % data)

            finally:

                self.close()

        return flag

    # 關閉資料庫連線

    def close(self):

            try:

                if (type(self._cursor) == 'object'):

                    self._cursor.close()

                if (type(self._conn) == 'object'):

                    self._conn.close()

            except Exception as data:

                logger.warn("close database exception, %s,%s,%s" % (data, type(self._cursor), type(self._conn)))

 

if __name__ == '__main__':

    db = database()

    sql = "select username,userpwd,expect from login"

    db.fetch_all(sql)

    update_sql = "update login set result =%s"

    db.updateByParams(update_sql, '測試')

 

九.Jenkins工具安裝

  1. 安裝jdk,並配置環境變數,不做詳細說明;
  2. 下載maven,解壓後配置環境變數,不做詳細說明;
  3. 下載Jenkins,下載地址:https://jenkins.io/download/,選擇war包下載;
  4. 下載tomcat,並解壓;
  5. Jenkins第一種啟動方法:切換到jenkins.war存放的目錄,輸入如下命令:java -jar jenkin.war,然後在瀏覽器中輸入http://localhost:8080,localhost可以是本機的ip,也可以是計算機名,就可以開啟jenkins了;
  6. Jenkins第二種啟動方法:用tomcat開啟,將jenkins.war檔案放入tomcat下的webapps目錄下,啟動jenkins時會自動在webapps目錄下建立jenkins目錄,所以在位址列上需要輸入的地址於上一種方法有點不一樣,輸入:http://localhost:8080/jenkins,開啟的jenkins頁面與第一種方法相同;

 

十.Jenkins工具使用

對使用tomcat的方法進行詳細說明:

1.啟動tomcat,瀏覽輸入http://localhost:8080/jenkins

2.初始的管理員密碼,jenkins是自動生成的,根據圖中紅色的路徑找到密碼,拷到下面的輸入框中;

 

3.安裝外掛,可以預設的安裝,也可以自己選擇,(jenkins配置好後也可以安裝外掛),這裡我們選擇預設的;

 

4.完成以後到建立自己的使用者;

5.建立以後就可以用新賬戶登入,進入jenkins的主頁;

 

6.選擇“系統管理”--“外掛管理”,選擇所需的相關外掛進行安裝,若安裝失敗可能是Jenkins版本與外掛版本不相容,可以採取升級Jenkins的方式解決;

推薦安裝的外掛包括:Git、subversion、Deploy to container Plugin、Maven Integration Plugin、Email Extension Plugin等;

7.選擇“系統管理”--“Global Tool Configuration" 配置 jdk、maven等資訊;

點選“JDK安裝”,配置jdk資訊:

 

點選“Maven安裝“,配置Maven配置:

 

8.接下來我們“構建一個maven專案”:

點選“新建”--構建一個maven專案,

 

填寫專案名稱等基本資訊:

 

若從svn或git獲取專案檔案,則新增svn資訊或git資訊,

 

點選 “Add” 填寫svn的賬號和密碼, 

 

新增完成後如下:

 

配置構建觸發器,如下圖配置為每天晚上9:30開始構建(Cron表示式):

 

新增構建後操作

 

直接將構建好的專案打包部署到tomcat中,

 

 新增tomcat容器,

 

 tomcat中要配置使用者名稱和密碼,且該使用者還要有足夠的許可權,在tomcat-user.xml中配置的

<role rolename="admin" />
<role rolename="admin-gui" />
<role rolename="manager" />
<role rolename="manager-script" />
<role rolename="manager-gui" />
<user username="admin" password="123456" roles="admin,manager,manager-script,manager-gui,admin-gui"/>
使用者名稱為admin 密碼為 123456

在 My Views 能看到自己建的專案:

進入專案後,點選“立即構建”就會執行構建任務,jenkins就會從svn上將程式碼拉下來,打好包後然後部署到tomcat上。