??? 交流討論:歡迎加入我們一起學(xué)習(xí)!
?? 資源分享:耗時(shí)200+小時(shí)精選的「軟件測試」資料包
???教程推薦:火遍全網(wǎng)的《軟件測試》教程??
??歡迎點(diǎn)贊 ?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請指正!
對于自動化測試,尤其是UI的自動化測試。是很多做黑盒功能測試的同學(xué),入門自動化測試一個(gè)最為直觀的或者說最容易理解的途徑之一。
對于手工測試和自動化測試的優(yōu)劣,網(wǎng)上有很多論述,在這里不作展開討論。但是,讓測試人員解放生產(chǎn)力,提高效率,把精力關(guān)注與最為重要的核心業(yè)務(wù)邏輯與測試設(shè)計(jì)上,是每個(gè)測試團(tuán)隊(duì)所必需要關(guān)注的。因此,在適當(dāng)?shù)姆秶鷥?nèi)開展自動化測試,是可以提高整個(gè)測試團(tuán)隊(duì)的生產(chǎn)率的。
? 對于Selenium,這個(gè)東西是一個(gè)瀏覽器應(yīng)用程序測試工具。之所以選擇它做WebUI的自動化測試主要是因?yàn)樗幸韵聝纱髢?yōu)勢:
1.直接在瀏覽器中運(yùn)行,就像真實(shí)用戶所做的一樣,可以模擬終端用戶的操作,從最終客戶的角度來測試應(yīng)用程序。(這一點(diǎn)和黑盒功能測試很像吧。)
2.可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中運(yùn)行。其他測試工具都不能覆蓋如此多的平臺。(嗯,多面能手)
? ?對于Java語言,我只想說你用你最拿手的就好。一個(gè)好的測試人員,不應(yīng)該被開發(fā)語言所束縛。不管是Java/Python/Ruby/C#.........只要你熟悉,就盡量把它用起來吧。語言只是工具。
? ?接下來,我們好好的慢慢的理解一些東西,然后來逐步的去寫一點(diǎn)東西,來認(rèn)識一下自動化測試框架是個(gè)什么東西。
?PS:閱讀本文的同學(xué),希望擁有JAVA語言編程基礎(chǔ),了解基本的JAVA語法與數(shù)據(jù)結(jié)構(gòu),同時(shí),對Selenium的基本API有所了解。
在寫這個(gè)框架之前,我們要明確我們主要操作的對象是什么。------->頁面元素。
我們要了解java在使用selenium時(shí)的基本操作。例如,使用以下代碼:
driver.findElement(By.xpath("/html/body/div/div/div[2]/form/button")).click();
在這里,driver的意思是定義的WebDriver,findElement是driver這個(gè)對象調(diào)用的方法----->尋找頁面元素,By.xpath是定位頁面元素的方式,(“/html/body/div/div/div[2]/form/button”)是定位頁面元素的參數(shù),
.click()是找到頁面元素后的動作------->點(diǎn)擊。
? ?那么,我們在這里考慮一下。對于通常的黑盒功能測試中,我們想在網(wǎng)頁上面去找一個(gè)地方,進(jìn)行點(diǎn)擊或者輸入文字等操作的時(shí)候,
我們一般會這樣說:“用戶名輸入admin,密碼是abcd”。
但是對于測試的代碼來說,實(shí)際上有可能是:“找到頁面元素ID是UserId的元素,使用sendKeys方法,參數(shù)為admin,找到頁面元素ID是Password的元素,使用sendKeys方法,參數(shù)是abcd”。
需要解決的問題:
用戶名(我們說的)--------->找到頁面元素ID是UserId的元素(代碼),輸入admin(我們說的)--------->使用sendKeys方法,參數(shù)為admin。(代碼)
? ? 一個(gè)頁面元素的尋找需要幾個(gè)要素,尋找的方式,尋找的參數(shù),等待的時(shí)間。另外,為了我們說的話,代碼能夠明白,需要加上一個(gè)名字,用來告訴代碼。
? ? 我們需要自己定義一個(gè)類,這個(gè)類就是頁面元素類。通過上面的說明,我們知道這個(gè)類中需要定義的基本變量。(定位方法,路徑,名字),另外,尋找路徑需要時(shí)間,我們再加上一個(gè)時(shí)間。
package webui.xUtils; public class Position { private String path; //----->路徑 //位置名字,就是我們通常意義上叫的名字。例如:用戶名輸入框 private String positionName; private ByType type;//定位方法 private int waitSec;//等待時(shí)間 //selenium的基本八種定位方法。 public enum ByType{ xpath,id,name,className, cssSelector,tagName, partialLinkText,linkText } public String getPath() { return path; } public void setPath(String path) { this.path = path; } public String getPositionName() { return positionName; } public void setPositionName(String positionName) { this.positionName = positionName; } public ByType getType() { return type; } public void setType(ByType type) { this.type = type; } public Position(String path, ByType type, String positionName) { super(); this.path = path; this.positionName = positionName; this.type = type; } //這種可以看作是針對iframe的情況 public Position(String path,String positionName) { super(); this.path = path; this.positionName = positionName; } public Position(String path, int waitSec, ByType type, String positionName) { super(); this.path = path; this.waitSec = waitSec; this.positionName = positionName; this.type = type; } public int getWaitSec() { return waitSec; } public void setWaitSec(int waitSec) { this.waitSec = waitSec; } }
? ? 使用上面的代碼,我們就定義了最初的一個(gè)Position類,這就是我們要尋找的頁面元素。
最后我邀請你進(jìn)入我們的【軟件測試學(xué)習(xí)交流群:785128166】, 大家可以一起探討交流軟件測試,共同學(xué)習(xí)軟件測試技術(shù)、面試等軟件測試方方面面,還會有免費(fèi)直播課,收獲更多測試技巧,我們一起進(jìn)階Python自動化測試/測試開發(fā),走向高薪之路
作為一個(gè)軟件測試的過來人,我想盡自己最大的努力,幫助每一個(gè)伙伴都能順利找到工作。所以我整理了下面這份資源,現(xiàn)在免費(fèi)分享給大家,有需要的小伙伴可以關(guān)注【公眾號:程序員二黑】自提!
文章來源:http://www.zghlxwxcb.cn/news/detail-840846.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-840846.html
到了這里,關(guān)于基于Java+Selenium的WebUI自動化測試框架(一)---頁面元素定位器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!