1.selenium+Java環(huán)境搭建
前置條件:
Java最低版本要求為8,瀏覽器使用chrome瀏覽器
1.1下載chrome瀏覽器
https://www.google.cn/chrome/
1.2查看瀏覽器版本
點(diǎn)擊關(guān)于Google chrome.
?記住版本的前三個(gè)數(shù).
?1.3下載瀏覽器驅(qū)動(dòng)
http://chromedriver.chromium.org/downloads
下載對(duì)應(yīng)瀏覽器版本的驅(qū)動(dòng).
?1.4配置環(huán)境變量
解壓下載好的驅(qū)動(dòng)壓縮包,將下載好的chromedriver.exe放到Java的系統(tǒng)環(huán)境變量下.即jdk的bin目錄下.
?1.5驗(yàn)證環(huán)境是否搭建成功
?新建一個(gè)maven項(xiàng)目,添加selenium依賴:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.7.2</version>
</dependency>
?將下面代碼粘貼進(jìn)main函數(shù)進(jìn)行測(cè)試:
// 創(chuàng)建了一個(gè)options對(duì)象,用來(lái)給請(qǐng)求設(shè)置一些參數(shù)
ChromeOptions options = new ChromeOptions();
// 允許所有的請(qǐng)求
options.addArguments("--remote-allow-origins=*");
// 創(chuàng)建了一個(gè)驅(qū)動(dòng)
WebDriver webDriver = new ChromeDriver(options);
// 打開(kāi)了一個(gè)百度網(wǎng)頁(yè)
webDriver.get("https://www.baidu.com");
成功打開(kāi)了百度網(wǎng)頁(yè):
環(huán)境搭建成功.
補(bǔ)充:
出現(xiàn)報(bào)錯(cuò):The path to the driver executable The path to the driver executable must be set by the webdriver.chrome.driver system property
解決方法:將路徑改為自己電腦上chrome驅(qū)動(dòng)的路徑.
//設(shè)置驅(qū)動(dòng)路徑
System.setProperty("webdriver.chrome.driver","C:\\Program Files\\Java\\jdk1.8.0_192\\bin\\chromedriver.exe");
2.什么是自動(dòng)化測(cè)試?
自動(dòng)化測(cè)試指軟件測(cè)試的自動(dòng)化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最后評(píng)估運(yùn)行結(jié)果。將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過(guò)程。
簡(jiǎn)單來(lái)說(shuō),所謂的自動(dòng)化就是將手工測(cè)試轉(zhuǎn)換成代碼,讓代碼代替人工執(zhí)行測(cè)試,可以提高效率,提高測(cè)試質(zhì)量.
?自動(dòng)化測(cè)試包括UI自動(dòng)化,接口自動(dòng)化,單元測(cè)試自動(dòng)化.
2.1單元測(cè)試
最大的投入應(yīng)該在單元測(cè)試上,單元測(cè)試運(yùn)行的頻率也更加高。java的單元測(cè)試框架是Junit,使用的時(shí)候?qū)雑unit依賴即可.
2.2接口測(cè)試
接口測(cè)試就是API測(cè)試,相對(duì)于UI自動(dòng)化API自動(dòng)化更加容易實(shí)現(xiàn),執(zhí)行起來(lái)也更穩(wěn)定。
接口自動(dòng)化的有以下特點(diǎn):
- 可在產(chǎn)品前期,接口完成后介入
- 用例維護(hù)量小
- 適合接口變動(dòng)較小,界面變動(dòng)頻繁的項(xiàng)目
常見(jiàn)的接口自動(dòng)化測(cè)試有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等。
2.3UI測(cè)試
雖然測(cè)試金字塔告訴我們盡量多做API層的自動(dòng)化測(cè)試,但是UI層的自動(dòng)化測(cè)試更加貼近用戶的需求和軟件系統(tǒng)的實(shí)際業(yè)務(wù)。并且有時(shí)候我們不得不進(jìn)行UI層的測(cè)試。
UI自動(dòng)化的特點(diǎn):
- 用例維護(hù)量大
- 頁(yè)面相關(guān)性強(qiáng),必須后期項(xiàng)目頁(yè)面開(kāi)發(fā)完成后介入
- UI測(cè)試適合與界面變動(dòng)較小的項(xiàng)目
UI自動(dòng)化測(cè)試的好處
- 降低大型系統(tǒng)的由于變更或者多期開(kāi)發(fā)引起的大量的回歸測(cè)試的人力投入,這可能是自動(dòng)化測(cè)試最主要的任務(wù),特別是在程序修改比較頻繁,效果是非常明顯的,自動(dòng)化測(cè)試前期人力投入較多,但后期進(jìn)入維護(hù)期后,可節(jié)省大量人力,而手工測(cè)試后期需要增加大量人力用于回歸測(cè)試
- 減少重復(fù)測(cè)試的時(shí)間,實(shí)現(xiàn)快速回歸測(cè)試
- 創(chuàng)建優(yōu)良可靠的測(cè)試過(guò)程,減少人為錯(cuò)誤
- 可以運(yùn)行更多更繁瑣的測(cè)試
- 可以執(zhí)行一些手工測(cè)試?yán)щy或不可能進(jìn)行的測(cè)試
- 更好的利用資源
- 測(cè)試腳本的重用性
UI層自動(dòng)化測(cè)試框架
UI層的測(cè)試框架比較多,比如Windows客戶端測(cè)試的AutoIT,web測(cè)試的selenium以及TestPlant
eggPlant,Robot framework,QTP等。
如何實(shí)施自動(dòng)化測(cè)試
單純的講,自動(dòng)化測(cè)試的具體實(shí)現(xiàn),應(yīng)該是包含下面七個(gè)過(guò)程的。
1. 分析:總體把握系統(tǒng)邏輯,分析出系統(tǒng)的核心體系架構(gòu)。
2. 設(shè)計(jì):設(shè)計(jì)測(cè)試用例,測(cè)試用例要足夠明確和清晰,覆蓋面廣而精
3. 實(shí)現(xiàn):實(shí)現(xiàn)腳本,有兩個(gè)要求一是斷言,二是合理的運(yùn)用參數(shù)化。
4. 執(zhí)行:執(zhí)行腳本遠(yuǎn)遠(yuǎn)沒(méi)有我們想象中那么簡(jiǎn)單。腳本執(zhí)行過(guò)程中的異常需要我們仔細(xì)的去分析原
因。
5. 總結(jié):測(cè)試結(jié)果的分析,和測(cè)試過(guò)程的總結(jié)是自動(dòng)化測(cè)試的關(guān)鍵。
6. 維護(hù):自動(dòng)化測(cè)試腳本的維護(hù)是一個(gè)難以解決但又必須要解決的問(wèn)題。
7. 分析:在自動(dòng)化測(cè)試過(guò)程中深刻的分析自動(dòng)化用例的覆蓋風(fēng)險(xiǎn)和腳本維護(hù)的成本。
提問(wèn)
1.自動(dòng)化測(cè)試好還是手工測(cè)試好?
不能說(shuō)哪個(gè)好或者說(shuō)哪個(gè)壞,只有適合當(dāng)前業(yè)務(wù)的測(cè)試類型就是一個(gè)好的測(cè)試方法.
2.自動(dòng)化能否完全代替手工測(cè)試?
不能完全代替.
3.什么是selenium?
Selenium是web應(yīng)用中基于UI的自動(dòng)化測(cè)試框架,支持多平臺(tái)、多瀏覽器、多語(yǔ)言。
特點(diǎn):
1.支持多語(yǔ)言:java,python,JS,Ruby,C等
2.支持跨平臺(tái):一套代碼,可以在Linux上運(yùn)行,也可以在Mac,Windows上運(yùn)行
3.支持多瀏覽器:Edge,Chrome,Firefox等
3.1selenium的工作原理
- 自動(dòng)化腳本代碼 : 通過(guò)編譯器編寫的自動(dòng)化測(cè)試腳本代碼
- 瀏覽器驅(qū)動(dòng) : 瀏覽器驅(qū)動(dòng)是自動(dòng)化腳本與瀏覽器之間的媒介,驅(qū)動(dòng)解析腳本在瀏覽器上運(yùn)行。
由圖可知,selenium的整個(gè)工作原理中,包含了三個(gè)角色,代碼,瀏覽器驅(qū)動(dòng)和瀏覽器.自動(dòng)化腳本代碼會(huì)創(chuàng)建一個(gè)HTTP請(qǐng)求并發(fā)送,瀏覽器驅(qū)動(dòng)則會(huì)創(chuàng)建一個(gè)服務(wù)器去接收HTTP請(qǐng)求,并對(duì)請(qǐng)求進(jìn)行解析,比如1.5的驗(yàn)證用例中,是一個(gè)打開(kāi)百度首頁(yè)的請(qǐng)求,將請(qǐng)求發(fā)送給瀏覽器,執(zhí)行結(jié)果返回給瀏覽器驅(qū)動(dòng),最后再返回給代碼,在寫腳本代碼的軟件中就可以看到是否執(zhí)行成功.
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-612912.html文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-612912.html
?
到了這里,關(guān)于【軟件測(cè)試】什么是selenium的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!