最近瀏覽了很多同學的簡歷,大部分都有自動化測試,基本都有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的更多特性。
沒有過不去的火焰山,沒有吭不掉的技術難題,只要你敢,肯下功夫,都會取得最終的勝利。