又過了一天,又見面了删掀,今天Node.js結(jié)合selenium做web自動化測試的第三課,我們來嘗試從0創(chuàng)建一個自動化腳本导街,怎么樣披泪,有沒有很期待
這里呢,首先我們要感謝我們的大神趙老師搬瑰,出資購買了一臺云服務(wù)器款票,為大家搭建了一個真實的在線項目供大家練手,這就是后面我們使用率會高達百分之好幾百的Cnode社區(qū)?http://118.31.19.120:3000/泽论,希望大家玩的開心艾少,玩的盡興,你一定會愛上這里
那下面廢話不多說翼悴,擼起袖子咱們開始干吧
第1步缚够,我們打開命令行,cd Desktop進入桌面(進別的路徑也可以噢抄瓦,這里為了方便給大家展示所以在桌面上)
2.?mkdir 20180315 ??在桌面上創(chuàng)建一個名叫20180315的文件夾
這個時候去桌面上看潮瓶,一定會多一個這樣的文件夾,ok钙姊,接著往下走
3.?cd 20180315 ? cd命令就是打開這個文件夾的意思毯辅,聰明如你,一定不需要多解釋的
4. npm init ? 這個操作煞额,就是初始化項目了思恐,當你看到我下面標紅框的這段的時候沾谜,后面它是不會自己往下走的,怎么辦呢胀莹,動動你勤勞的小手基跑,按一下Enter鍵,但是不只按一下哦描焰,記得它蹦出來一行你就按一下媳否,直到它問你“Is this OK?”這里點最后一下Enter鍵荆秦,項目的初始化就完成了
完成后篱竭,我們?nèi)プ烂嫔洗蜷_20180315這個文件夾,你會發(fā)現(xiàn)步绸,這里多了一個package.json文件掺逼,恭喜你,這一步成功
到這里瓤介,我們想一下吕喘,從課程開始,我們的標題一直都是結(jié)合selenium做web自動化測試刑桑,大家一定會問氯质,selenium到底是什么啊祠斧?這個問題問的好病梢,多了好多細節(jié)在里面,這么抽象的概念梁肿,我肯定不敢亂解釋啊蜓陌,那我們看看官網(wǎng)怎么說的吧?https://seleniumhq.github.io/selenium/docs/api/javascript/index.html
網(wǎng)站大家自行點開啊,概念我就不復(fù)述了吩蔑,小伙伴們英文一定都比我好钮热,看到Installation這里,有沒有覺得很眼熟烛芬?沒錯隧期,第一課中就介紹的,安裝selenium-webdriver啦赘娄,小case仆潮,所以我們的下一步
5. 命令行安裝selenium-webdriver 和 chromedriver
?npm install selenium-webdriver --save
?cnpm install chromedriver--save
安裝好了再看文件夾,是不是又多了兩個文件遣臼,多了就對了
node_modules里面是我們這個項目里所需要的依賴包性置,供你盡情玩耍的后盾
package-lock.json又是啥?它啊揍堰,因為各個包會更新?lián)Q代吧鹏浅,今天1.1嗅义,說不定明天就2.0了,這個lock.json就是記錄我們在安裝這些依賴包的時候隐砸,當時各個包的版本的
準備活動到這里做完了之碗,接下來當然就是建立腳本了,新建一個.js文件季希,代碼開動了褪那,便于操作,還是找我們的CukeTest
6. 打開我們的項目
新建一個.js文件式塌,取名test.js
下面就是大家期待的寫腳本了武通,還記得上面的官網(wǎng)嗎,先別關(guān)啊珊搀,我們?nèi)タ匆谎踫elenium腳本的套路,啊不尾菇,大致框架是怎樣的境析,就是這一段
懵圈嗎?不明覺厲嗎派诬?沒關(guān)系劳淆,我一步一步告訴你這一大段是怎么來的
首先,我們要引入selenium-webdriver里的方法默赂,那么接下來要使用的常量一定要定義了(定義常量變量上一節(jié)課內(nèi)容沛鸵,沒看過的回去找一找哈)
然后呢,瀏覽器里的一系列操作一定要寫進一個方法啊缆八,那就再定義一個方法
這里呢曲掰,在方法前面加了一個async,第一節(jié)曾經(jīng)說過奈辰,這是為了解決異步問題加的栏妖,后面會有一節(jié)課來詳細講這個語法,大家不明白這里也沒關(guān)系奖恰,只要記住一點吊趾,async和await是Node.js里的一對CP,所以下面的代碼里面會出現(xiàn)await,看到await不要奇怪瑟啃,它不是偷渡來的黑戶论泛,只是async帶過來的
好,下面開始填充function
既然我們的項目是打開Cnode社區(qū)的網(wǎng)址蛹屿,那么第一步肯定要打開瀏覽器了
打開瀏覽器的操作這么長了袁,我們用一個變量來存儲它吧朗恳,上節(jié)課說到的let可以出場了
然后就是打開網(wǎng)址了载绿,用趙老師搭建的環(huán)境
下面我們做一個登陸操作,這里要用到一個元素定位崭庸,元素定位的幾種方法會在下一堂課重點講解怀浆,這里先給大家推薦準確度較高的xpath定位
我們在界面上右鍵-檢查元素
點擊選擇器按鈕,變藍色表示激活
將鼠標移動到右上角“登錄”按鈕上怕享,檢查元素頁面會定位到元素位置(紅框部分)
在此處右鍵->copy->Copy Xpath,這個空白處粘貼一下执赡,你就可以看到這個它的內(nèi)容了,記著別刪啊函筋,下一條就用到了
找到了登錄按鈕沙合,我們該點擊了是吧
現(xiàn)在程序肯定可以跑到這個界面了吧
接下來就填寫用戶名和密碼谨敛,再點一次登錄按鈕吧究履,方法,跟上面的一樣脸狸,xpath定位最仑,不重復(fù)寫了,怕你們嫌我啰嗦炊甲,提供兩個已經(jīng)注冊好的用戶名密碼testuser01/123456泥彤、testuser02/123456 拿去浪吧,不用謝
這段代碼你再跑一下試試,一定可以登錄成功牵囤,登錄不上你打我
你想問官網(wǎng)上這個怎么不一樣是嗎爸黄,我們不一樣,不一樣揭鳞。炕贵。。
就知道你要這么問野崇,這個Key呢称开,意思是直接點擊鍵盤上的某一按鍵,就比如我們輸入完密碼之后懶得用鼠標點一下登錄按鈕了,怎么辦鳖轰,直接回車唄清酥,代碼改成下面這樣,結(jié)果一樣的蕴侣,有啥不一樣
到這里結(jié)束了嗎焰轻?再優(yōu)化一下吧,剛剛寫一行操作一下昆雀,是不是跟我一樣辱志,打開了好幾個瀏覽器了,都在任務(wù)欄上面掛著呢
這么多揩懒,當心CPU拿小拳拳捶你胸口,問我怎么辦挽封,好說已球,執(zhí)行完了加個關(guān)閉瀏覽器唄
好了,拿走吧
什么辅愿?你說代碼跑偏了不好看啊智亮,哦對對對,代碼不要面子扒啤?我的鍋褒繁,作為一個負責的測試亦鳞,我們要寫高顏值的代碼,我們CukeTest懂的棒坏,右鍵一下燕差,看到格式化文件了嗎,對坝冕,點一下
到這里徒探,我們就是從0開始創(chuàng)建了一個自動化腳本,看看自己的代碼喂窟,寶寶們還滿意嗎测暗。
多個場景的測試情況,參考第二節(jié)課新建項目更改場景大綱的方法磨澡,沒看過的小盆友自己蹲墻角補課
Node.js結(jié)合Selenium做web自動化測試https://ke.qq.com/course/281565#tuin=173f40be
風里雨里碗啄,每天晚上8:00,準時等你
測試工具CukeTest下載地址http://www.cuketest.com/