在程序員的世界中,一切重復(fù)性的工作,都應(yīng)該通過程序自動執(zhí)行。「自動化測試」就是一個最好的例子。
隨著互聯(lián)網(wǎng)應(yīng)用開發(fā)周期越來越短,迭代速度越來越快,只會點點點,不懂開發(fā)的手工測試,已經(jīng)無法滿足如今的業(yè)務(wù)要求,只能被企業(yè)逐步裁員淘汰。「自動化測試和持續(xù)測試」就成為了業(yè)界主流。
如果在招聘網(wǎng)站搜索「測試工程師」的職位,95% 的招聘都會有「掌握自動化測試以及 Python」的相關(guān)要求??梢哉f,Python 自動化已經(jīng)不是加分項了,而成了面試成功的必備技能。
所以,如果你正準(zhǔn)備入行或者轉(zhuǎn)崗做測試工程師的工作,Python 自動化測試將是必學(xué)技能之一。
Python + Selenium
說到自動化測試,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。
Selenium學(xué)習(xí)難度小,開發(fā)周期短。對測試人員來說,如果你編程經(jīng)驗不足,python + Selenium 是個很好的選擇。語法簡約,清晰,可以顯著減少后期維護(hù)難度和工作壓力。
今天,我們就介紹一下如何用 Selenium 快速開始 Web 測試工作!
(以下內(nèi)容出自實驗樓課程——「Python 自動化測試實戰(zhàn)」,歡迎大家來實驗樓邊敲代碼邊練習(xí)!)
Selenium 基礎(chǔ)知識
本節(jié)課程介紹 Selenium 的功能作用及安裝、環(huán)境配置,并介紹 Selenium 常用的語法。
知識點
Selenium 介紹
安裝 Selenium
安裝 geckodriver 瀏覽器驅(qū)動
Selenium 的元素定位
點擊元素
清空文本輸入框、向文本輸入框輸入文本
獲取元素屬性
下拉頁面
頁面彈窗的定位以及彈窗文本的獲取
窗口跳轉(zhuǎn)
iframe 定位
安裝需要的庫:
sudo pip3 install --upgrade pip sudo pip3 install selenium
實驗環(huán)境
Firefox 瀏覽器
python 3.5
geckodriver 0.22.0
selenium 3
實驗步驟
Selenium 在進(jìn)行回歸測試的時候會被經(jīng)常用到,接下來我們就學(xué)習(xí) Selenium 的知識。當(dāng)我們進(jìn)入selenium 官網(wǎng)時可以看到,網(wǎng)站的 title 上寫的是 Selenium - Web Browser Automation,翻譯過來就是網(wǎng)站瀏覽器自動化。也就是說我們把平時在網(wǎng)頁上做的功能測試用 Selenium 代碼實現(xiàn),這樣在回歸測試的時候就可以達(dá)到省時省力的目的。Selenium 在工作中的應(yīng)用常見于功能基本穩(wěn)定、沒有頻繁大變動的網(wǎng)頁。所以我們一般是在業(yè)務(wù)功能上線以后,為確保頁面穩(wěn)定,用 Selenium 實現(xiàn)自動化回歸測試,結(jié)合 git、Jenkins 一起,每當(dāng)有新功能上線時都會執(zhí)行寫好的 Selenium 代碼以驗證新上線的業(yè)務(wù)對原有頁面功能沒有造成影響。如有報錯,則發(fā)送相應(yīng)的通知,這樣就可以確保對線上功能出現(xiàn)的未預(yù)期 bug 進(jìn)行及時的修復(fù)。
安裝 Selenium
在 xfce 中輸入sudo pip3 install selenium安裝最新版本的 Selenium。
瀏覽器、geckodriver
既然名為網(wǎng)頁瀏覽器自動化自然要安裝瀏覽器,一般來說,Chrome、Firefox等瀏覽器都可以,這里我們使用當(dāng)前系統(tǒng)自帶的Firefox作為實驗瀏覽器?,F(xiàn)在我們需要下載對應(yīng)的瀏覽器驅(qū)動geckodriver,在xfce中輸入以下命令:
$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz
下載成功后繼續(xù)輸入:
$ 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創(chuàng)建文件并寫入代碼:
#! /usr/bin/python3 from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.shiyanlou.com")
輸入python3 demo.py如果瀏覽器打開并進(jìn)入實驗樓網(wǎng)站,則環(huán)境配置就成功了。
瀏覽器操作
在終端使用命令vim demo2.py創(chuàng)建文件并寫入代碼:
#! /usr/bin/python3 from selenium import webdriver from time import sleep driver = webdriver.Firefox() # 瀏覽器進(jìn)入百度網(wǎng)站 driver.get("https://www.baidu.com") # 設(shè)置瀏覽器寬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 文件
以上代碼會在瀏覽器中執(zhí)行:
打開瀏覽器
進(jìn)入百度網(wǎng)站
設(shè)置窗口大小為寬 800,高 400
等待 3 秒
刷新頁面
最大化窗口
退出瀏覽器
演示
這里我們使用51Testing 軟件測試論壇作為演示網(wǎng)站,如果大家沒有賬號需要先去注冊一個,下面的代碼將會使用到賬號信息,在終端使用命令vim demo3.py創(chuàng)建文件并寫入代碼:
#! /usr/bin/python3 from selenium import webdriver from time import sleep driver = webdriver.Firefox() # 進(jìn)入51testing網(wǎng)站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) # 定位“登錄”按鈕并進(jìn)行點擊操作 driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()
在終端執(zhí)行python3 demo3.py運(yùn)行,結(jié)果顯示如下:頁面顯示:
?執(zhí)行以上代碼后會在 xfce 中輸出如下信息:
最后感謝每一個認(rèn)真閱讀我文章的人,作為一位過來人也是希望大家少走一些彎路,在這里我給大家分享一些自動化測試的學(xué)習(xí)資源,如果你用得到的話可以直接拿走,希望能給你前進(jìn)的路上帶來幫助。(包括Python編程、WEB自動化測試、app自動化測試、接口自動化測試、測試框架、持續(xù)集成、自動化測試開發(fā)、性能測試、安全測試、大廠面試真題、簡歷模板等等、當(dāng)然還有一些測試基礎(chǔ)、工具、app測試、接口測試、linux、mysql數(shù)據(jù)庫等基礎(chǔ)知識),相信能使你更好的進(jìn)步!這些學(xué)習(xí)資料需要的直接評論區(qū)留言,我發(fā)你哈!文章來源:http://www.zghlxwxcb.cn/news/detail-497552.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-497552.html
到了這里,關(guān)于Python+selenium,輕松搭建 Web 自動化測試框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!