![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iM0EmYlJTN2ITMxAzM4ImMhZmYkZDZhBTN3MDZ3QmN08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在程式員的世界中,一切重複性的工作,都應該通過程式自動執行。
「自動化測試」就是一個最好的例子。随着網際網路應用開發周期越來越短,疊代速度越來越快,隻會點點點,不懂開發的手工測試,已經無法滿足如今的業務要求,隻能被企業逐漸裁員淘汰。
「自動化測試和持續測試」就成為了業界主流。如果在招聘網站搜尋「測試工程師」的職位,95% 的招聘都會有「掌握自動化測試以及 Python」的相關要求。可以說,
python 自動化已經不是加分項了,而成了面試成功的必備技能。是以,如果你正準備入行或者轉崗做測試工程師的工作,Python 自動化測試将是必學技能之一。
Python + Selenium
說到自動化測試,就不得不提大名鼎鼎的
Selenium
。Selenium 是如今最常用的自動化測試工具之一,支援快速開發自動化測試架構,且支援在多種浏覽器上執行測試。
Selenium
學習難度小,開發周期短。對測試人員來說,如果你程式設計經驗不足,
python + Selenium
是個很好的選擇。文法簡約,清晰,可以顯著減少後期維護難度和工作壓力。
今天,我們就介紹一下如何用 Selenium 快速開始 Web 測試工作!(以下内容出自實驗樓課程——「Python 自動化測試實戰」,歡迎大家來實驗樓邊敲代碼邊練習!)
課程位址:
Python 自動化測試實戰www.shiyanlou.com
Selenium 基礎知識
本節課程介紹 Selenium 的功能作用及安裝、環境配置,并介紹 Selenium 常用的文法。
知識點
- Selenium 介紹
- 安裝 Selenium
- 安裝 geckodriver 浏覽器驅動
- Selenium 的元素定位
- 點選元素
- 清空文本輸入框、向文本輸入框輸入文本
- 擷取元素屬性
- 下拉頁面
- 頁面彈窗的定位以及彈窗文本的擷取
- 視窗跳轉
- iframe 定位
安裝需要的庫:
sudo pip3 install --upgrade pip
sudo pip3 install selenium
實驗環境
- Firefox 浏覽器
- python 3.5
- geckodriver 0.22.0
- selenium 3
實驗步驟
Selenium 在進行回歸測試的時候會被經常用到,接下來我們就學習 Selenium 的知識。當我們進入selenium 官網時可以看到,網站的 title 上寫的是
Selenium - Web Browser Automation
,翻譯過來就是網站浏覽器自動化。也就是說我們把平時在網頁上做的功能測試用 Selenium 代碼實作,這樣在回歸測試的時候就可以達到省時省力的目的。Selenium 在工作中的應用常見于功能基本穩定、沒有頻繁大變動的網頁。是以我們一般是在業務功能上線以後,為確定頁面穩定,用 Selenium 實作自動化回歸測試,結合 git、Jenkins 一起,每當有新功能上線時都會執行寫好的 Selenium 代碼以驗證新上線的業務對原有頁面功能沒有造成影響。如有報錯,則發送相應的通知,這樣就可以確定對線上功能出現的未預期 bug 進行及時的修複。
安裝 Selenium
在
xfce
中輸入
sudo pip3 install selenium
安裝最新版本的 Selenium。
浏覽器、geckodriver
既然名為網頁浏覽器自動化自然要安裝浏覽器,一般來說,
Chrome
、
Firefox
等浏覽器都可以,這裡我們使用目前系統自帶的
Firefox
作為實驗浏覽器。現在我們需要下載下傳對應的浏覽器驅動
geckodriver
,在
xfce
中輸入以下指令:
$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz
下載下傳成功後繼續輸入:
$ tar zxvf geckodriver-v0.22.0-linux64.tar.gz
$ sudo mv geckodriver /usr/local/bin
以上操作為:将檔案解壓,并移動至
/usr/local/bin
檔案夾中。
将目錄切換至桌面:
$ cd /home/shiyanlou/Desktop
下面我們來驗證是否正常安裝,在終端使用指令
vim demo.py
建立檔案并寫入代碼:
#! /usr/bin/python3
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.shiyanlou.com")
輸入
python3 demo.py
如果浏覽器打開并進入實驗樓網站,則環境配置就成功了。
浏覽器操作
在終端使用指令
vim demo2.py
建立檔案并寫入代碼:
#! /usr/bin/python3
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
# 浏覽器進入百度網站
driver.get("https://www.baidu.com")
# 設定浏覽器寬800,高400
driver.set_window_size(800, 400)
# 等待3秒
sleep(3)
# 重新整理頁面
driver.refresh()
# 等待3秒
sleep(3)
# 最大化視窗
driver.maximize_window()
# 退出浏覽器
driver.quit()
- name: check file
script: |
#!/bin/bash
ls /home/shiyanlou/Desktop/demo2.py
error:
還沒有在 /home/shiyanlou/Desktop 目錄下建立 demo2.py 檔案
以上代碼會在浏覽器中執行:
- 打開浏覽器
- 進入百度網站
- 設定視窗大小為寬 800,高 400
- 等待 3 秒
- 重新整理頁面
- 最大化視窗
- 退出浏覽器
示範
這裡我們使用51Testing 軟體測試論壇作為示範網站,如果大家沒有賬号需要先去注冊一個,下面的代碼将會使用到賬号資訊,在終端使用指令
vim demo3.py
建立檔案并寫入代碼:
#! /usr/bin/python3
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
# 進入51testing網站driver.get("http://bbs.51testing.com/forum.php")
sleep(3)
# 用id定位賬号輸入框并輸入賬号
driver.find_element_by_id("ls_username").send_keys("您的使用者名")
# 用id定位密碼輸入框并輸入密碼
driver.find_element_by_id("ls_password").send_keys("密碼")
# 定位“登入”按鈕并擷取登入按鈕的文本
txt = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').text
# 列印擷取的文本
print(txt)
# 定位“登入”按鈕并擷取登入按鈕的type屬性值
type = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').get_attribute("type")
# 列印type屬性值
print(type)
# 定位“登入”按鈕并進行點選操作
driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()
在終端執行
python3 demo3.py
運作,結果顯示如下:頁面顯示:
執行以上代碼後會在 xfce 中輸出如下資訊:
Python 自動化測試實戰www.shiyanlou.com