一、請(qǐng)描述一下自動(dòng)化測(cè)試流程?
自動(dòng)化測(cè)試流程一般可以分為以下七步:
編寫(xiě)自動(dòng)化測(cè)試計(jì)劃;
設(shè)計(jì)自動(dòng)化測(cè)試用例;
編寫(xiě)自動(dòng)化測(cè)試框架和腳本;
調(diào)試并維護(hù)腳本;
無(wú)人值守測(cè)試;
后期腳本維護(hù)(添加用例、開(kāi)發(fā)更新版本)。
二、自動(dòng)化測(cè)試有誤報(bào)過(guò)bug嗎?產(chǎn)生誤報(bào)怎么辦?
有誤報(bào)過(guò),有時(shí)候自動(dòng)化測(cè)試報(bào)告中顯示發(fā)現(xiàn)了bug,實(shí)際去通過(guò)手工測(cè)試去確認(rèn)又不存在該bug。
誤報(bào)原因一般是:
元素定位不穩(wěn)定,需要盡量提高腳本的穩(wěn)定性;
開(kāi)發(fā)更新了頁(yè)面但是測(cè)試沒(méi)有及時(shí)更新維護(hù)。
三、什么是PO模式?
全稱:page object model 簡(jiǎn)稱:POM/PO,PO模式最核心的思想是分層,實(shí)現(xiàn)松耦合,實(shí)現(xiàn)腳本重復(fù)使用及腳本易維護(hù)性。
PO模式主要分三層:
1.基礎(chǔ)層BasePage:封裝一些最基礎(chǔ)的selenium的原生的api方法,元素定位,框架跳轉(zhuǎn)等。
2.PO層:元素定位、獲得元素對(duì)象,頁(yè)面動(dòng)作
3.測(cè)試用例層:業(yè)務(wù)邏輯,數(shù)據(jù)驅(qū)動(dòng)。
三者的關(guān)系:PO層繼承基礎(chǔ)層,測(cè)試用例層調(diào)用PO層。
po模式和非po模式區(qū)別?
四、怎么對(duì)含有驗(yàn)證碼的功能進(jìn)行自動(dòng)化測(cè)試??
對(duì)有驗(yàn)證碼的功能模塊進(jìn)行自動(dòng)化測(cè)試,可以通過(guò)以下方式:
讓開(kāi)發(fā)去掉驗(yàn)證碼。未上線前,讓開(kāi)發(fā)去掉驗(yàn)證碼驗(yàn)證,方便做自動(dòng)化測(cè)試;
設(shè)置一個(gè)萬(wàn)能的驗(yàn)證碼。未上線前,讓開(kāi)發(fā)生成固定的驗(yàn)證碼,方便做自動(dòng)化測(cè)試。
通過(guò) cookie 繞過(guò)登錄。
自動(dòng)識(shí)別技術(shù)識(shí)別驗(yàn)證碼。第一種是:OCR 自動(dòng)識(shí)別技術(shù),第二種是:通過(guò)第三方打碼平臺(tái)的接口來(lái)識(shí)別。
五、如何提高腳本的穩(wěn)定性?
提高腳本的穩(wěn)定性,可以通過(guò)以下方式:
不要右鍵復(fù)制 xpath(絕對(duì)路徑很不穩(wěn)定),自己寫(xiě)相對(duì)路徑;
定位沒(méi)問(wèn)題,第二個(gè)影響因素那就是等待了,sleep 等待盡量少用(影響執(zhí)行時(shí)間);
定位元素方法重新封裝,結(jié)合 WebDriverWait 和 expected_conditions 判斷元素方法,自己封裝一套定位元素方法;
六、如果一個(gè)元素?zé)o法定位,你一般會(huì)考慮哪些方面的原因?
一個(gè)元素?zé)o法定位,可能的原因有:
頁(yè)面加載元素過(guò)慢,加等待時(shí)間;
頁(yè)面有frame框架頁(yè),需要先跳轉(zhuǎn)入frame框架再定位;
可能該元素是動(dòng)態(tài)元素,定位方式要優(yōu)化,可以使用部分元素定位或通過(guò)父節(jié)點(diǎn)或兄弟節(jié)點(diǎn)定位;
可能識(shí)別了元素,但是不能操作,比如元素不可用,不可寫(xiě)等。需要使用js先把前置的操作完成。
七、你的自動(dòng)化用例的執(zhí)行策略是什么?
自動(dòng)化用例的執(zhí)行策略的含義:
自動(dòng)化測(cè)試用例是用來(lái)監(jiān)控的。集成到Jenkins,創(chuàng)建定時(shí)任務(wù)定時(shí)執(zhí)行;
有些用例在產(chǎn)品上線前必須回歸。Jenkins上將任務(wù)綁定到開(kāi)發(fā)的build任務(wù)上,觸發(fā)執(zhí)行;
有些用例不需要經(jīng)常執(zhí)行。Jenkins創(chuàng)建一個(gè)任務(wù),需要執(zhí)行的時(shí)候人工構(gòu)建即可。
八、編寫(xiě)自動(dòng)化用例的原則?
編寫(xiě)自動(dòng)化用例的原則包括以下幾個(gè)方面:
一個(gè)用例是一個(gè)完整的場(chǎng)景。
一個(gè)用例只驗(yàn)證一個(gè)功能點(diǎn)。
用例與用例之間盡量避免產(chǎn)生依賴。
一條用例完成測(cè)試之后需要對(duì)測(cè)試場(chǎng)景進(jìn)行還原,以免影響其它用例的執(zhí)行。
腳本編寫(xiě)好了之后,需要反復(fù)執(zhí)行,不斷調(diào)試,直到運(yùn)行正常為止。腳本的編寫(xiě)和命名要符合管理規(guī)范,以便統(tǒng)一管理和維護(hù)。
九、selenium工作原理?
Selenium的工作原理可以概括為以下5個(gè)方面:
selenium client(Python等語(yǔ)言編寫(xiě)的自動(dòng)化測(cè)試腳本)初始化一個(gè)service服務(wù),通過(guò)webdriver啟動(dòng)瀏覽器驅(qū)動(dòng)程序chromedriver.exe;
通過(guò)RemoteWebDriver向?yàn)g覽器驅(qū)動(dòng)程序發(fā)送HTTP請(qǐng)求,瀏覽器驅(qū)動(dòng)程序解析請(qǐng)求,打開(kāi)瀏覽器,并獲得sessionid,如果再對(duì)瀏覽器操作需攜帶此sessionid;
打開(kāi)瀏覽器后,所有的selenium的操作(訪問(wèn)地址,查找元素)均通過(guò)RemoteConnection鏈接到remote server,然后使用execute方法調(diào)用request方法通過(guò)urlib3向remote server請(qǐng)求;
瀏覽器通過(guò)請(qǐng)求的內(nèi)容執(zhí)行對(duì)應(yīng)動(dòng)作;
瀏覽器再把執(zhí)行的動(dòng)作結(jié)果通過(guò)瀏覽器驅(qū)動(dòng)程序返回給測(cè)試腳本。
十、你的自動(dòng)化框架結(jié)構(gòu)是怎么樣的?
搭建的自動(dòng)化測(cè)試框架采用分層設(shè)計(jì)模型框架,主要分為以下幾個(gè)模塊:
common:一些基礎(chǔ)的底層方法類,例如:測(cè)試報(bào)告類、數(shù)據(jù)配置讀取類、日志類、封裝webdriver類、數(shù)據(jù)庫(kù)連接類、發(fā)送郵件類、公共方法類,只要是我們想要實(shí)現(xiàn)的一些功能,可以把基礎(chǔ)方法的實(shí)現(xiàn)放在common文件夾。
config:配置文件放在這里,比如:賬號(hào)密碼、數(shù)據(jù)庫(kù)連接地址等。
log:運(yùn)行用例后,日志的存儲(chǔ)文件夾。
report:運(yùn)行用例后,測(cè)試報(bào)告的存儲(chǔ)文件夾。
page:在POM設(shè)計(jì)模式下,關(guān)于具體UI頁(yè)面操作的方法。
test_case:具體存放編寫(xiě)的測(cè)試用例。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-558387.html
run_all:用來(lái)批量運(yùn)行測(cè)試用例。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-558387.html
到了這里,關(guān)于2023年經(jīng)典【自動(dòng)化面試題】附答案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!