前言
(第一個(gè)就刷掉一大批人)
有很多“會(huì)自動(dòng)化”的同學(xué)來(lái)咨詢技術(shù)問(wèn)題,他總會(huì)問(wèn)到我一些元素定位的問(wèn)題。元素定位其實(shí)都不算自動(dòng)化面試的問(wèn)題。
一般我都會(huì)問(wèn):你是定位不到嗎?通常結(jié)果都是說(shuō)確實(shí)定位不到。
做自動(dòng)化,首先你得保證一點(diǎn),沒有你定位不到的元素,這個(gè)你才能做UI自動(dòng)化。如果有些元素都定位不到,你說(shuō)你拿什么去點(diǎn)?就好像你的手你的鼠標(biāo)點(diǎn)不到需要的元素,就沒法去操作。
第一個(gè),自動(dòng)化分為UI自動(dòng)化與接口自動(dòng)化
UI自動(dòng)化又包括APP自動(dòng)化、H5、小程序等
接口自動(dòng)化也包括很多,你用什么類型的工具做自動(dòng)化?HTTP類型接口自動(dòng)化DUBBO類型接口自動(dòng)化等
所以這還只是自動(dòng)化方面。
自動(dòng)化你怎么去做的自動(dòng)化運(yùn)行環(huán)境、自動(dòng)化如何分布式、批量運(yùn)行如何持續(xù)集成這里面問(wèn)題太多了,給大家簡(jiǎn)單的看幾個(gè)典型面試題
大家看一看這十個(gè)問(wèn)題能答出幾個(gè)??
1、三種等待時(shí)間的區(qū)別和場(chǎng)景應(yīng)用?
強(qiáng)制等待、隱式等待、顯示等待。
第一個(gè)強(qiáng)制等待:就是說(shuō),當(dāng)我去點(diǎn)擊
這是一個(gè)輸入用戶名字的一行代碼?
當(dāng)我把這兩行代碼
?放到這里
不管你這個(gè)元素,有沒有在頁(yè)面出現(xiàn)我都等3秒,我再去操作它。是強(qiáng)制,命令式的。但是這些往往一般都只用在腳本的調(diào)試,不會(huì)真正的出現(xiàn)在自動(dòng)化測(cè)試用例中。你想一想,一個(gè)用例十行你加了十個(gè),一個(gè)等三秒那十個(gè)等三十秒,一個(gè)用例三十秒是不可取的。
第二個(gè)
隱式等待:一般用在什么地方呢?
?這個(gè)就是隱式等待。
比如說(shuō)隱式等待它是一個(gè)什么樣的區(qū)別?就是說(shuō)你不管點(diǎn)哪里它只要寫一次就可以了。像time.sleep(3)你每次都要去寫,像driver .implicitly_wait( 3)#一次就好了。它每次去點(diǎn)都會(huì)等待三秒,那中間這個(gè)三秒它在等什么呢?
重點(diǎn)來(lái)了,一個(gè)頁(yè)面它可能有非常多的圖片,jss、css、img。就是再加載jss的圖片,舉個(gè)例子我想點(diǎn)擊搜索按鈕
隱式等待的三秒鐘就是在等待這個(gè)頁(yè)面的所有js和圖片加載出來(lái)。就算你搜索按鈕出來(lái)了,我還要去等js、img加載完成。理解了嗎?軟件測(cè)試全棧內(nèi)容歡迎來(lái)公眾號(hào)一諾教育軟件測(cè)試交流學(xué)習(xí)。那么如果三秒鐘之類jss、css沒有加載完成我還是不會(huì)去點(diǎn)你,這就是一個(gè)隱式等待。它雖然很方便但是有瑕疵。
第三個(gè):
那么什么叫顯示等待呢?
字面意思就是和隱式等待相反。一個(gè)是隱藏的一個(gè)是非常明顯的,我想要去做什么就做什么,不需要等待。
當(dāng)這個(gè)搜索按鈕一顯示出來(lái),我馬上就去點(diǎn)它。?
我不管頁(yè)面的其他LOGO、圖片有沒有加載出來(lái),只要我的想要的比如搜索按鈕出來(lái)了,我就馬上去點(diǎn)擊它。
這個(gè)題目是做自動(dòng)化測(cè)試非常重要也非?;A(chǔ)的問(wèn)題,所以我把這個(gè)問(wèn)題排在了第一。
這個(gè)問(wèn)題以后被問(wèn)到,就難不到你了。
聽懂了的朋友,點(diǎn)贊支持一波~
2、之前項(xiàng)目做過(guò)自動(dòng)化測(cè)試嗎?如何推進(jìn)的?
工資想超過(guò)15K,這個(gè)問(wèn)題是必問(wèn)的!
不要看這個(gè)問(wèn)題很簡(jiǎn)單?這個(gè)問(wèn)題其實(shí)有點(diǎn)難度的。面試官問(wèn)你有沒有做過(guò)自動(dòng)化測(cè)試,那么你肯定不能簡(jiǎn)單的說(shuō):額~我做過(guò)!
你要告訴面試官,你如何自動(dòng)化開展到推進(jìn)。如何推進(jìn)的非常重要,你如何開始自動(dòng)化入和推進(jìn),咱們不要片面的去回答,會(huì)或者不會(huì)。
比如你這樣回答:我會(huì),之前公司我們的項(xiàng)目接口方面,前端UI方面我是用selenium這個(gè)開源框架加上Python基礎(chǔ)架構(gòu)來(lái)實(shí)現(xiàn)我的自動(dòng)化來(lái)實(shí)現(xiàn)的。
實(shí)現(xiàn)原理:用一些單元測(cè)試框架unittest去組織我們的測(cè)試用例,(或者用Pytest)
數(shù)據(jù)驅(qū)動(dòng):比如說(shuō)我們用execl表去做一個(gè)數(shù)據(jù)驅(qū)動(dòng),然后我們用到一些關(guān)鍵字驅(qū)動(dòng),還有你在做自動(dòng)化你遇到哪一些問(wèn)題,大家一定要準(zhǔn)備幾個(gè)自動(dòng)化遇到的問(wèn)題!這個(gè)即使你不說(shuō),也是必問(wèn)的!然后就是這些問(wèn)題你是如何解決的。
給大家分享一個(gè)公式:
如何解決這些問(wèn)題呢
對(duì)你公司項(xiàng)目產(chǎn)生了什么樣的價(jià)值?像我去面試的時(shí)候,我就會(huì)說(shuō)成為我們公司的一個(gè)固定資產(chǎn)。
不管是開發(fā)、產(chǎn)品、運(yùn)營(yíng),都會(huì)用到咱們的這個(gè)自動(dòng)化腳本。可以幫我們線上監(jiān)控,幫我們自動(dòng)化回歸,幫我們?cè)鞌?shù)據(jù),幫我們跑數(shù)據(jù),提高了迭代效率,釋放了很多人力。
自動(dòng)化測(cè)試有什么用,是對(duì)自動(dòng)化最大的誤解。
很多做軟件測(cè)試的同行,他沒有用過(guò)確實(shí)感受不到。我之前開始做自動(dòng)化的時(shí)候,在一個(gè)人工智能的公司。產(chǎn)品上線之前,CTO只問(wèn)我一句話,能不能上?因?yàn)槲疫@邊有很多自動(dòng)化項(xiàng)目已經(jīng)不停的在回歸,然后功能測(cè)試也測(cè)了。所以功能+自動(dòng)化結(jié)合就能很自信的上線。它校驗(yàn)出了很多隱藏的BUG,很多因?yàn)榇a提交、新功能的開發(fā)產(chǎn)品的BUG。
3、RF框架用過(guò)嗎?關(guān)鍵字驅(qū)動(dòng)的原理?如何開發(fā)系統(tǒng)關(guān)鍵字?
4、selenium的底層核心原理是什么?有沒有做過(guò)二次封裝?
5、requests中的session會(huì)話管理的作用是什么?
6、unittest/pytest有什么區(qū)別?
7、談?wù)勀銓?duì)自動(dòng)化分層思想的理解?
其實(shí)這句話,經(jīng)常會(huì)被寫到一些大型招聘網(wǎng)上去。你會(huì)自動(dòng)化而且還要會(huì)自動(dòng)化分層思想。
做自動(dòng)化和做功能測(cè)試一樣,那么它分為哪些東西?
第一個(gè):自動(dòng)化用例它有一個(gè)業(yè)務(wù)層/業(yè)務(wù)邏輯
比如登錄的業(yè)務(wù)邏輯是什么?
輸入用戶名-輸入密碼-點(diǎn)擊登錄按鈕
分層:
業(yè)務(wù)邏輯
關(guān)鍵字驅(qū)動(dòng):
業(yè)務(wù)層的關(guān)鍵字,比如說(shuō)你登錄,那么你要去做其他的用例是不是會(huì)用到登錄這個(gè)關(guān)鍵字。這個(gè)業(yè)務(wù)也封裝成一個(gè)關(guān)鍵字,你其他的一個(gè)用例是不是可以用到它了?那接口,接口之間不是有很多的關(guān)聯(lián)對(duì)吧,如果你把下單這些接口弄在一起,退貨發(fā)貨這些弄在一起,這就是一個(gè)業(yè)務(wù)層的關(guān)鍵字。
關(guān)鍵字驅(qū)動(dòng)不僅有業(yè)務(wù)層,還有邏輯層。比如說(shuō)你需要用到很多的公共方法,比如說(shuō)隨機(jī)數(shù)、隨機(jī)號(hào)碼、數(shù)據(jù)庫(kù)等等。大家都能用到的,就都封裝成一個(gè)關(guān)鍵字。
二次封裝
click()
有時(shí)候我們需要根據(jù)需求去二次封裝。
關(guān)鍵字驅(qū)動(dòng)不僅僅這三層。還有很多東西要分層,很多驅(qū)動(dòng)、第三方的庫(kù)、日志、頁(yè)面、圖片、報(bào)告等等……
數(shù)據(jù)驅(qū)動(dòng)
配置文件
8、自動(dòng)化用例在什么環(huán)境下運(yùn)行、如何批量運(yùn)行?
能對(duì)公司真正的產(chǎn)生效益的自動(dòng)化肯定是成千上萬(wàn)級(jí)別的用例。如果沒有達(dá)到這個(gè)級(jí)別,收益一定是很小的。既然是機(jī)器在運(yùn)行的,為什么不去覆蓋全面呢?
在這里給大家推薦一個(gè)docker容器技術(shù)+jenkins定時(shí)構(gòu)建+git
你的代碼放在git上面然后用jenkins去關(guān)聯(lián)定時(shí)構(gòu)建,docker保證你的自動(dòng)化干凈的環(huán)境(虛擬機(jī)的進(jìn)階版)運(yùn)行還可以分布式運(yùn)行。
?我們不管學(xué)什么技術(shù),結(jié)合實(shí)戰(zhàn)、自動(dòng)化應(yīng)用。很多朋友想學(xué)測(cè)試開發(fā)、測(cè)試平臺(tái),你自動(dòng)化、接口、框架你都不會(huì),你談何去學(xué)測(cè)試開發(fā)?那是不大現(xiàn)實(shí)的。
經(jīng)常有人問(wèn)題,學(xué)習(xí)軟件測(cè)試有什么捷徑?
學(xué)習(xí)一步一步來(lái),有計(jì)劃性的,不走彎路!就是最大的捷徑。
9、有沒有獨(dú)立搭建過(guò)自動(dòng)化測(cè)試框架?
10、測(cè)試開發(fā)在企業(yè)中具體是做什么的?
總結(jié)
下面這些面試題是來(lái)自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有阿里大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-471520.html
?這份完整版的軟件測(cè)試面試題資料已經(jīng)上傳CSDN,朋友們?nèi)绻枰梢?strong>點(diǎn)擊下方小卡片免費(fèi)領(lǐng)取文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-471520.html
到了這里,關(guān)于十道必問(wèn)的軟件測(cè)試面試題(含答案解析)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!