10分鐘玩轉Python+Selenium自動化測試,快速入門通道!
最近瀏覽了很多同學的簡歷,大部分都有自動化測試,基本都有selenium。但很少有人真正弄清selenium。一個是selenium的提供了很多元件,讓人容易上手,然後很多人就沒有然後了。二是selenium的更新伴隨著工具的合併,很多人壓根沒高清自己用的是selenium RC 還是 webdriver。
根據最近面試的情況,把很多同學在實踐selenium的時候沒弄清的問題總結了一下,順便教大家如何快速玩轉selenium!
現在測試工程師都在聊什麼?
1、python會了嗎最近?
2、selenium自動化你們團隊進度怎麼樣?
3、你們自動化框架應用的如何?
4、一直搞手工職業發展會有瓶頸啊,測試真心要往測試開發走啊,搞自動化……
5、我們招聘自動化工程師都10K起,但是到目前還沒有招到合適的人選哦,趕緊也學學自動化,漲薪或跳槽去……
自動化工程師的規劃之路
如何玩轉Selenium自動化?
目前市場上的自動化工具很多,selenium只是其中的一個突出代表。近幾年隨著開源風、selenium的穩定、版本更新等越來受到市場的歡迎。當然這裡不可忽略Python的作用哦!
如果你是小白,想學習自動化,強烈推薦python+selenium。
不要一提程式碼就恐怖哦(很多測試工程師的通病),其實python與selenium就是一個【紙老虎】,要勇於面對,勇於挑戰哦,要不自己沒有技術上的競爭力,誰來給你漲薪呢?
!、python上手容易,語法簡單、大量第三方模組的支援- selenium針對b/s支援非常好,目前各大主流瀏覽器均支援。當然我還是喜歡FireFox。
學習selenium,IDE部分不是主要的點,重點放在webdriver API部分。
2、千萬不要把大部分精力放在IDE部分哦
前端知識要適當儲備:html、css、js基礎等,但是不要把自己搞成前端工程師哦,當然那樣對你也是非常有益的。
Selenium是什麼?
Selenium是什麼,相信從事自動化測試的同學或者有過Python爬蟲經歷的同學都會有了解。
Selenium是一個Web自動化測試軟體,正如Selenium官網所言:Selenium主要是為了測試目的而進行自動化的Web應用程式,但是當然並不限於此,一些基於Web的無聊的管理任務也可以使用Selenium進行自動化。嗯,比如爬蟲。
網路爬蟲應該是Selenium除了Web自動化測試之外,最為人所熟知的應用場景了,它在面對一些JS生成的動態網頁時能夠有效的獲取到頁面上的資料。可以說是Python網路爬蟲的必備良品。
Python+selenium環境搭建
1、Python環境安裝
· 下載和安裝Python
· 設定環境變數:已管理員身份執行cmd,輸入如下命令:path=%path%;C:\Python27
· 執行python:在命令列中輸入python執行python
2、PIP的安裝
· pip類似RedHat裡面的yum,安裝Python包非常方便。(點選圖片即可下載)
·下載後解壓,使用命令列進入解壓出來的目錄,執行命令:python setup.py install
· 增加環境變數:命令列中輸入path=%path%;C:\Python27\Scripts
· 看下是否安裝成功:輸入pip -v
3、安裝selenium for python
· 命令列輸入:pip install selenium(點選圖片即可下載)
·驗證是否安裝成功:在cmd輸入python進入python環境,然後輸入 from selenium import webdriver,如果不報錯就代表selenium安裝成功。
4、PyCharm的安裝與使用
· 在Python開發過程中,比較流行,很優秀的一款IDE工具-PyCharm,這裡關於它的介紹就一句話,它就相當於Java開發中的Eclipse軟體一樣。(點選圖片即可下載)
· 建立工程 ·
5、通過指令碼開啟關閉瀏覽器
要用selenium開啟瀏覽器。首先需要去下載一個driver外掛(不同的瀏覽器對應不同的driver外掛),這裡以chrome為例,下載好後將該外掛放在Python安裝目錄下即可。
這樣,一個完整的測試框架和Demo就搭建完成了,你學會了嗎?
使用selenium做自動化測試常見問題
1、selenium中如何判斷元素是否存在?
答:isElementPresent
2、selenium中hidden或者是display = none的元素是否可以定位到?
答:不可以定位到
3、自動化測試的時候是不是需要連線資料庫做資料校驗?
答:UI自動化不需要,介面測試會需要
4、webdriver可以用來做介面測試嗎?
答:有一定難度,不推薦做介面測試
5、如何去定位頁面上動態載入的元素?
答:觸發動態載入元素的事件,直至動態元素出現,進行定位
6、如何去定位屬性動態變化的元素?
答:xpath或者css通過同級、父級、子級進行定位
7、點選連結以後,selenium是否會自動等待該頁面載入完畢?
答:會的等待該頁面載入完的
8、自動化測試用例從哪裡來?
答:手工用例中抽取出來,可以參考自動化用例的執行策略
9、你覺得自動化測試最大的缺陷是什麼?
答:不穩定、可靠性、不易維護、成本與收益不成正比
10、什麼是分層測試?
答:UI測試、整合/介面測試、單元測試這些都可以算做分層測試
總結:
隨著對測試開發的逐漸流行,測試人員的程式碼能力也在提升。在selenium的學習中,更需要掌握webdriver的api,探索selenium的更多特性。
沒有過不去的火焰山,沒有吭不掉的技術難題,只要你敢,肯下功夫,都會取得最終的勝利。
歡迎加入 51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ 群: 755431660