1. 程式人生 > >如何從0到1開始python自動化測試

如何從0到1開始python自動化測試

一、Selenium 環境部署

1. window 環境部署

1.1 當前環境

Win10 64 位系統;Python3.6.2(官方已經更新到了 3.6.4)

官方下載地址:https://www.python.org/downloads

Selenium 3.4.3;谷歌 59。

1.2 Python3 安裝部署

Python 的安裝接觸程式語言中很簡單的語言了。不需要繁瑣的 JDK,也不需要 SDK。直接到官網下載,配置環境就成功了。

首先到官網下載我們需要的 Python3 版本:

點進去直接下載:

1.3 配置環境變數

安裝好之後,我們就可以在資料夾看到我們下載好的 Python 檔案了。

路徑為: D:\python3.6.2。

現在我們去配置環境變數吧。

回到桌面,同時按下 WIN+R 鍵,開啟 “執行” 對話方塊,輸入 sysdm.cpl,單擊 “確定” 按鈕:

選擇 “高階” 選項卡:

編輯當前路徑:

到這裡,我們配置環境就已經完成了,但是還是需要驗證我們是否成功安裝的。按 WIN+R,開啟 “執行” 對話方塊,我們輸入 cmd:

輸入 python:

顯示版本資訊就證明已經部署成功了,接下來我們就可以開始學習 python 了。

1.4 安裝 Selenium

現在我們就可以直接安裝 Selenium 了,重新開啟 cmd 視窗,輸入:pip ?檢視是否存在 pip 命令:

如果不存在首先檢查自己的環境變數是否配置正確了;第二檢查 Python 資料夾下的 Scripts 資料夾下是否有 pip.exe 這個檔案;如果這兩步都沒問題,就重新下載 python 檔案。因為 pip 這個命令對我們來說是非常重要的。

接下來我們安裝 Selenium,在 cmd 視窗中輸入:pip install selenium:

1.5 驅動下載

這個是很多新手都會碰到的問題。其實也不用擔心,因為 Selenium 驅動對不同版本的瀏覽器也是不一樣的,所以很多人都會遇到這個問題了。

當前我使用的瀏覽器是谷歌瀏覽器。單擊這裡下載谷歌瀏覽器驅動。如果使用的火狐瀏覽器的,就需要先將瀏覽器版本降級了,所以我不推薦使用火狐瀏覽器。

我們進去選擇自己瀏覽器對應版本的驅動下載吧:

上面兩個驅動都是對谷歌 59 相容的,下載完之後,我們將下載的檔案放在 Python 的根目錄下就可以了。

接下來測試自己的 Selenium 是否可以啟動瀏覽器了,在 cmd 中輸入 Python:

然後輸入 from selenium import webdriver webdriver.Charome()

看到啟動瀏覽器,我們就已經成功安裝 Selenium 了 。

1.6 Pycharm 安裝

官方下載地址請單擊這裡

安裝完之後,我們需要輸入註冊碼:選擇 license,輸入 http://idea.lanyus.com/ 這個地址,點選 OK 就可以了。如果沒有輸入,也不用擔心,進入 pycharm 之後,點選 Help-Register- 選擇 license:

這樣也是可以的。現在我們已經把前面所需要的條件都完成了。

選擇我們存放的路徑和專案命名:

我們重溫程式語言經典的輸出:

我們可以點選上面的 Run 或者使用快捷鍵 Shift+Ctrl+F10 可以直接看到結果了:

看到的結果,我們就成功了:

二、Selenium 的定位元素操作

我們在網上看到的很多方法,都是使用 Firefox 中的外掛 firebug 工具對元素進行定位的,但是現在 Firefox 已經不再對 firebug 進行維護了,也就是 firebug 也即將需要從市場淘汰出去了。

所以,我們會在這裡使用的是谷歌的頁面定位的,其實也就很簡單的事。我們通過在頁面中按 F12 檢視頁面就的元素,找到我們需要的元素,點選右擊就可以看到我們需要定位的操作了。

在這裡向大家推薦一個資料分享群:175317069

Selenium 給我們提供了 8 種的定位元素方法,我們拿百度首頁作為例子。

2.1 find_element_by_id()

我們可以直接通過英文意思理解這個方法,通過 ID 查詢元素,也就是使用頁面裡的 id 屬性:id = “”。我們先定位百度搜索框,在搜尋框裡面輸入我們要查詢的內容。

2.2 find_element_by_name()

這個定位的方法是通過查詢名字的方式,對元素進行定位。我們在檢查元素的時候看到 name=””,就可以使用這個方法了。

2.3 find_elements_by_class_name()

這個定位的方法是通過查詢 class_name 的方式對元素進行定位,在檢查元素的時候看到 class=””,就可以使用這個方法了。

2.4 find_element_by_tag_name()

這個定位的方法是通過元素的標籤屬性對元素進行定位,在檢查元素的時候檢視元素的最前面的 input,但是這個定位方式有個不好的地方在於很多頁面都有同樣的標籤存在,所以我們定位的時候會很麻煩。

所以,這個方法我們不推薦使用。這個方法也是僅供參考。

實際上是會報錯的,因為 selenium 在定位的時候不清楚我們要找的是哪個元素。

我們如果一定要用這個方法的話,我們就需要清楚,我們定位的標籤的精準位置了。

2.5 find_element_by_link_text()

這個定位方式是通過查詢頁面的文字資訊進行定位。也就是我們看到頁面的資訊去定位,例如:我們需要定位百度首頁的登入按鈕,並點選它。

2.6 find_element_by_partial_link_text()

這個方法的定位方式就是通過模糊文字資訊查詢元素,有些時候,我們希望定位到一個文字比較長的元素時,我們就可以通過這個方法去定位。

例如:定位百度首頁頁尾下的 “使用百度前必讀”,我們是輸入 “使用”。

這樣我們也是可以定位到該元素的。

2.7 find_element_by_xpath()

最後來說兩種最常用的定位方法,xpath 元素定位:通過查詢元素的路徑去查詢元素。

這兩個方法在使用上目前很廣泛,也很多人推薦使用的方法。這兩個很方便,因為瀏覽器已經幫我們做好準備了,我們只需要複製貼上就可以了。

我們繼續定位搜尋框。

這樣我們直接複製 xpath 路徑就可以了,這樣就可以解決我們會輸入錯誤元素的問題(注:在使用 xpath 的時候,最外面的雙引號改成單引號)

2.8 find_element_by_css_selector()

css 在操作上跟 xpath 差不多,也是通過複製貼上的方式進行定位,不同在於 css 方法通過對頁面中的 css 元素定位的。

三 、Autolt 的應用

3.1 Autolt3 下載安裝

AutoIt 目前最新是 v3 版本,這是一個使用類似 BASIC 指令碼語言的免費軟體 , 它設計用於 Windows GUI(圖形使用者介面) 中進行自動化操作。

它利用模擬鍵盤按鍵,滑鼠移動和視窗 / 控制元件的組合來實現自動化任務。而這是其它語言不可能做到或無可靠方法實現的

官方下載:https://www.autoitscript.com/site/autoit/downloads。

>

點選下載

點選 next

點選 I Agree

選擇安裝 64 位或者 32 位,我這裡選擇安裝的是 64 位的 Autolt,點選 next

點選 next

點選 next

選擇安裝的路徑,點選 install

這裡的 √ 去掉,點選 finish,這樣就已經完成了。

3.2 Autolt3 使用

現在就來試試怎樣去操作,去到” 開始” 選單。

我們可以看到 Autolt 有以下檔案,我們主要來看三個檔案:Autolt Window Info(x64)、Compile Script to .exe(x64)、SciTE Script Editor。

第一個檔案是用來錄製我們操作的步驟,第二個檔案是將我們的 .au 檔案轉換成我們最終的 .exe 檔案,第三個是編輯我們 .au 檔案。這樣一來,我們就基本瞭解 Autolt 的使用流程了。

3.3 Autolt3 檔案操作

首先我們需要開啟 Autolt Window Info(x64) 這個檔案:

在 pycharm 裡建立一個命名為 “upload” 的 HTML 檔案,

<!DOCTYPE html> 
<html lang="en"> 
<head>
<meta charset="UTF-8"> 
<title>upload_Title</title> 
<link href="http:// cdn.bootcss.com/bootstrap/3.3.0/ css/bootstrap.min.css" rel="stylesheet" /> 
</head> 
<body> 
<div class="row-fluid"> 
<div class="span6 well"> 
<h3>upload_file</h3>
<input type="file" name="file" /> 
</div> 
</div>
</body> 
<script src= "http://cdn.bootcss.com/bootstrap/3.3.0/ css/ bootstrap.min.js " ></script> 
</html>

 

將這段程式碼複製貼上,然後開啟:

點選選擇檔案,會開啟一個視窗:

現在我們使用 autolt 工具來定位視窗的位置,拖動圓點:

將移動到的位置的資訊記錄下來,點選 Control 可以看到資訊視窗的 title 為 “開啟”,標題的 Class 為 “#32770”。

檔名輸入框的 class 為 “Edit”,Instance 為 “1” ,所以 ClassnameNN 為 “Edit1”。開啟按鈕的 class 為 “Button”,Instance 為 “1” ,所以 ClassnameNN 為 “Button1”。

這樣我們就可以編輯指令碼資訊了,開啟 SciTE Script Editor 編輯指令碼資訊

ControlFocus("title","text",controlID) Edit1=Edit instance 1 ControlFocus(" 開啟 ", "","Edit1") ; 
Wait 10 seconds for the Upload window to appear WinWait("[CLASS:#32770]","",10) ;
Set the File name text on the Edit field ControlSetText(" 開啟 ", "", "Edit1", " E:\\ upload.txt") 
Sleep(2000) ; Click on the Open button ControlClick(" 開啟 ", 
"","Button1");

 

這樣的指令碼有一個問題就是,我們的指令碼路徑已經寫死了,這樣對於我們後期的自動化測試是行不通的。

所以我們必須將寫死的路徑改活。我們將 upload.txt 檔案放在我們的自動化測試腳本里面。

我們再去修改我們指令碼的路徑 ControlSetText(“ 開啟 “, “”, “Edit1”, @WorkingDir & “ \file\upload.txt”)。

這段程式碼的意思就是,開啟當前資料夾上一個檔案的相對路徑,這樣就可以防止我們的程式碼寫死了。

這樣我們就編輯好了指令碼資訊了,儲存我們的檔案,會生成 .au 的檔案,但是這個檔案不是我們想要的,我們要得到的是 .exe 的檔案,開啟 Compile Script to .exe(x64) 檔案,將 .au 的檔案轉換成 .exe 檔案就可以了。

點選 Convert 就 ok 了,在當前資料夾下我們就可以看到生成的 .exe 檔案了。

具體檔案都放在這裡了。現在我們就可以去呼叫 upload.exe 檔案了,新建命名為 uploadfile 的 python 檔案。

from selenium import webdriver 
import os driver = webdriver.Chrome() #開啟上傳功能頁面 
file_path = 'file:///' + os.path.abspath('upload.html') driver.get(file_path)#點選開啟上傳視窗 
driver.find_element_by_name("file").click() #呼叫 upfile.exe 上傳程式 os.system(os.path.abspath('upload.exe')) 
driver.quit()

 

將這段程式碼輸入進去,就可以呼叫了。這樣一來,我們的 Autolt 學習就完成了。更多的 Autolt 語法,可以去官網看詳細的文件。

當真正開始學習的時候頻繁踩坑,最終浪費大量時間,所以有一套實用的視訊資料用來跟著學習是非常有必要的。

這套視訊資料詳細講解了(自動化程式設計,mysql調優,自動化框架rf使用)。

那麼,這套視訊我們應該怎麼獲取呢?

對以上測試資料,測試技術 感興趣的朋友,歡迎加QQ群:175317069,一起學習,相互討論。

群內已經有小夥伴將知識體系整理好(筆記,學習視訊,面試題),歡迎加群免費取。