国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

軟件測試自動化面試題(含答案)

這篇具有很好參考價值的文章主要介紹了軟件測試自動化面試題(含答案)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1.如何把自動化測試在公司中實施并推廣起來的?

2.自動化測試用例如何編寫?

3.自動化測試發(fā)現(xiàn)BUG多嗎?

4.在上一家公司做自動化測試用的什么框架?

5.什么是持續(xù)集成?它有什么用?

UI自動化

1.自動化中有哪三類等待?他們有什么特點?

2.selenium*中的定位方式

3.xpath和css定位都比較強(qiáng)大,那他們之間有什么區(qū)別?

4.你寫的測試腳本能在不同瀏覽器上運(yùn)行嗎

5.在你做自動化過程中,遇到了什么問題嗎?舉例下

6.什么是PO模式,為什么要使用它

接口自動化

1.你是怎么測試接口的

2.沒有接口文檔如何做接口測試

3.接口測試用例的編寫要點有哪些?

4.接口測試中的加密參數(shù)如何處理

5.接口應(yīng)用題

5.同步和異步區(qū)別

6.pytest里如何進(jìn)行case的組裝

7.說說pytest里的鉤子函數(shù)

er2

1. appium的工作原理

1.1 appuim基于uiautomator2的原理

1.2 Appium基于uiautomator1的原理

1.3 Appium基于chromedriver的原理,測試H5時使用

1.4 IOS手機(jī):

2. 接口響應(yīng)格式是json的,用代碼如何解析他?如果不使

用第三方庫怎么解析?

3.Testng的監(jiān)聽器是怎么使用的?TestNg的數(shù)據(jù)驅(qū)動返回

的是什么?

4.簡單介紹一下自動化項目整體框架的結(jié)構(gòu)

5.自動化中顯式等待和隱式等待的異同?

6. Testng中都有哪些注解

7. Jmeter工具如何做接口之間的關(guān)聯(lián),簡述?

8.你們公司業(yè)務(wù)中,自動化和手工分別占比多少?分別用來

做什么業(yè)務(wù)?

9.如何保證自動化測試的穩(wěn)定性

10.cookie 和 session 的區(qū)別?

11.自動化測試中用例依賴的數(shù)據(jù)如何構(gòu)造

12.如何實現(xiàn)多瀏覽器或者多手機(jī)的測試

13.接口測試時碰到接口重定向如何去測試?

14.接口依賴第三方接口,但是第三方接口卻有問題怎么

辦?

15.restful標(biāo)準(zhǔn)接口中,有哪幾種請求方式,他們分別代表

什么含義

16. web自動化中有哪些場景需要特殊處理

17.app里的手勢解鎖的圖標(biāo)定位不到如何處理

selenium

1、selenium中如何判斷元素是否存在? ?? ?

2、什么是自動化測試、自動化測試的優(yōu)勢是什么 ?? ?

3、什么樣的項目比較適合做自動化測試,什么樣的不適合做自動化測試 ?? ?

4、你們公司開展自動化工作的主要流程是怎樣的 ?? ?

5、在制定自動化測試計劃的時候一般要考慮哪些點? ?? ?

6、編寫自動化腳本時的一些規(guī)范? ?? ?

7、你一般一天能編寫多少個自動化腳本 ?? ?

8、做自動化測試時關(guān)注的一些指標(biāo)? ?? ?

9、做自動化測試時關(guān)注的一些指標(biāo) ?? ?

10、自動化測試可以達(dá)到100%的覆蓋率嗎 ?? ?

11、你們公司開展自動化測試遇到一些什么問題 ?? ?

12、selenium驅(qū)動瀏覽器使用的協(xié)議是什么 ?? ?

13、selenium工具都包含哪些組件 ?? ?

14、selenium中定位網(wǎng)頁元素有幾種方式 ?? ?

15、你是怎樣編寫元素的xpath表達(dá)式的 ?? ?

16、webdriver啟動常見的瀏覽器語句 ?? ?

17、如何判斷一個元素在頁面上是顯示出來的 ?? ?

18、如何選中下拉列表中的下拉選項 ?? ?

19、selenium如何處理彈窗 ?? ?

20、selenium可以處理windows彈窗嗎 ?? ?

21、selenium中常見的時間等待有哪幾種 ?? ?

22、常見的自動化測試框架有哪些 ?? ?

23、什么是pom ?? ?

24、selenium中hidden或者是display = none的元素是否可以定位到 ?? ?

25、selenium中如何保證操作元素的成功率?也就是說如何保證我點擊的元素一定是可以點擊的?

26、如何提高selenium腳本的執(zhí)行速度 ?? ?

27、用例在運(yùn)行過程中經(jīng)常會出現(xiàn)不穩(wěn)定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩(wěn)定性

28、你的自動化用例的執(zhí)行策略是什么 ?? ?

29、什么是持續(xù)集成 ?? ?

30、自動化測試的時候是不是需要連接數(shù)據(jù)庫做數(shù)據(jù)校驗 ?? ?

31、id,name,class,xpath, css selector這些屬性,你最偏愛哪一種,為什么 ?? ?

32、如何去定位頁面上動態(tài)加載的元素 ?? ?

33、如何去定位屬性動態(tài)變化的元素 ?? ?

34、點擊鏈接以后,selenium是否會自動等待該頁面加載完畢 ?? ?

35、啟動瀏覽器的時候用到的是哪個webdriver協(xié)議 ?? ?

36、什么是page object設(shè)計模式 ?? ?

37、如何在定位元素后高亮元素(以調(diào)試為目的) ?? ?

38、什么是斷言 ?? ?

39、如果你進(jìn)行自動化測試方案的選型,你會選擇哪種語言,java,js,python還是ruby ?? ?

40、page object設(shè)置模式中,是否需要在page里定位的方法中加上斷言 ?? ?

41、page object設(shè)計模式中,如何實現(xiàn)頁面的跳轉(zhuǎn) ?? ?

42、自動化測試用例從哪里來 ?? ?

43、你覺得自動化測試最大的缺陷是什么? ? ?

44、webdriver可以用來做接口測試嗎 ?? ?

45、公司內(nèi)一直在使用的測試系統(tǒng)(B/S架構(gòu))突然不能訪問了,需要你進(jìn)行排查并恢復(fù),說出你的檢查方法 ?? ?


?文章來源地址http://www.zghlxwxcb.cn/news/detail-402558.html

1.如何把自動化測試在公司中實施并推廣起來的?

1.選擇長期的有穩(wěn)定模塊的項目
2.項目組調(diào)研選擇自動化工具并開會演示demo案例,我們主要是演示selenium和robot framework兩
種。
3.搭建自動化測試框架,在項目中逐步開展自動化。
4.把該項目的自動化流程、框架固化成文檔
5.推廣到公司的其它項目組應(yīng)用

2.自動化測試用例如何編寫?

自動化測試主要用于回歸測試,因此自動化用例來源于我們編寫的功能用例,不管是接口的還是業(yè)務(wù)測
試的用例。所以我們會從原有用例中進(jìn)行篩選,篩選出需要實現(xiàn)自動化測試的,但是這個實現(xiàn)過程并不
是按部就班,需要根據(jù)原有用例進(jìn)行自動化用例設(shè)計,比如修改昵稱這樣的功能,自動化用例中需要實
現(xiàn)每次修改都和上一次不一樣,否則無法驗證修改是否正確。增加了這樣的設(shè)計之后再按照使用腳本來
實現(xiàn)自動操作的過程,并實現(xiàn)結(jié)果判斷,也就是斷言

3.自動化測試發(fā)現(xiàn)BUG多嗎?

不多
那么自動化測試的價值是什么 ? 怎么證明它不是偽需求 ?
1.比起發(fā)現(xiàn)bug,自動化測試更擅長保持舊有的功能沒有bug出現(xiàn)
2.引用自動化測試之后,能代替大量繁瑣的回歸測試工作,把業(yè)務(wù)測試人員解放出來,既而讓業(yè)務(wù)測試
人員把精力集中在復(fù)雜的業(yè)務(wù)功能模塊上
3.一般來說相對穩(wěn)定的功能更適合自動化
4.功能自動化盡可能用接口\驗收自動化則使用端到端
5.回歸測試效率和頻次的提升
....

4.在上一家公司做自動化測試用的什么框架?

可以說出以下自己擅長的一種:
1.pytest+requests+allure
2.python+selenium+pytest+allure
3.robotframework+Selenium2Library

5.什么是持續(xù)集成?它有什么用?

CI 持續(xù)集成主要是在開發(fā)范圍,包括:構(gòu)建>單元測試;主要針對在集成新代碼時所引發(fā)的問題
(亦稱:“集成地獄”)。
主要關(guān)聯(lián)git技術(shù)\代碼管理
現(xiàn)代應(yīng)用開發(fā)的目標(biāo)是讓多位開發(fā)人員同時處理同一應(yīng)用的不同功能。但是,如果企業(yè)安排在一天
內(nèi)將所有分支源代碼合并在一起(稱為“合并日”),最終可能造成工作繁瑣、耗時,而且需要手動
完成。這是因為當(dāng)一位獨立工作的開發(fā)人員對應(yīng)用進(jìn)行更改時,有可能會與其他開發(fā)人員同時進(jìn)行
的更改發(fā)生沖突。如果每個開發(fā)人員都自定義自己的本地集成開發(fā)環(huán)境(IDE),而不是讓團(tuán)隊就
一個基于云的 IDE 達(dá)成一致,那么就會讓問題更加雪上加霜。
持續(xù)集成(CI)可以幫助開發(fā)人員更加頻繁地(有時甚至每天)將代碼更改合并到共享分支或“主
干”中。一旦開發(fā)人員對應(yīng)用所做的更改被合并,系統(tǒng)就會通過自動構(gòu)建應(yīng)用并運(yùn)行不同級別的自
動化測試(通常是單元測試和集成測試)來驗證這些更改,確保這些更改沒有對應(yīng)用造成破壞。這
意味著測試內(nèi)容涵蓋了從類和函數(shù)到構(gòu)成整個應(yīng)用的不同模塊。如果自動化測試發(fā)現(xiàn)新代碼和現(xiàn)有
代碼之間存在沖突,CI 可以更加輕松地快速修復(fù)這些錯誤。
CD 持續(xù)交付涉及開發(fā)、測試、運(yùn)維合作,包括:構(gòu)建>測試環(huán)境部署>測試(不涉及生產(chǎn)環(huán)境的自動
化部署)
完成 CI 中構(gòu)建及單元測試和集成測試的自動化流程后,持續(xù)交付可自動將已驗證的代碼發(fā)布到存儲庫。
為了實現(xiàn)高效的持續(xù)交付流程,務(wù)必要確保 CI 已內(nèi)置于開發(fā)管道。持續(xù)交付的目標(biāo)是擁有一個可隨時部
署到生產(chǎn)環(huán)境的代碼庫。
在持續(xù)交付中,每個階段(從代碼更改的合并,到生產(chǎn)就緒型構(gòu)建版本的交付)都涉及測試自動化和代
碼發(fā)布自動化。在流程結(jié)束時,運(yùn)維團(tuán)隊可以快速、輕松地將應(yīng)用部署到生產(chǎn)環(huán)境中。
這個階段應(yīng)該關(guān)聯(lián)接口\ui的自動化測試

UI自動化

1.自動化中有哪三類等待?他們有什么特點?

1.線程等待(強(qiáng)制等待)如time.sleep(2):線程強(qiáng)制休眠2秒鐘,2秒過后,再執(zhí)行后續(xù)的代碼。建議少
用。
2.imlicitlyWait(隱式等待)會在指定的時間范圍內(nèi)不斷的查找元素,直到找到元素或超時,是一種全局
性設(shè)置,可以隨時更改,并且只針對查找元素生效
3.WebDriverWait(顯式等待)通常是我們自定義的一個函數(shù)代碼,這段代碼用來等待某個元素加載完
成,再繼續(xù)執(zhí)行后續(xù)的代碼,可以針對js彈框、iframe、新窗口等進(jìn)行實施

2.selenium*中的定位方式

id:根據(jù)id來獲取元素,返回單個元素,id值一般是唯一的;
name:根據(jù)元素的name屬性定位;
tagName:根據(jù)元素的標(biāo)簽名定位;
className:根據(jù)元素的樣式class值定位;
linkText:根據(jù)超鏈接的文本值定位;
partialLinkText:根據(jù)超鏈接的部分文本值定位;
cssSelector:css選擇器定位;
xpath:通過元素的路徑來定位;
優(yōu)先級最高:ID
優(yōu)先級其次:name
優(yōu)先級再次:CSS selector
優(yōu)先級再次:Xpath

3.xpathcss定位都比較強(qiáng)大,那他們之間有什么區(qū)別?

①CSS locator比XPath locator速度快,因為css是配合html來工作,它實現(xiàn)的原理是匹配對象的原理,而
xpath是配合xml工作的,它實現(xiàn)的原理是遍歷的原理,所以兩者在設(shè)計上,css性能更優(yōu)秀
②對于class屬性Css能直接匹配部分,而Xpath對于class跟普通屬性一致
③xpath可匹配祖先元素,css不可以
④查找兄弟元素, Css只能查找元素后面(弟弟妹妹)的元素,不能向前找(哥哥姐姐)

4.你寫的測試腳本能在不同瀏覽器上運(yùn)行嗎

當(dāng)然可以,我寫的用例可以在在IE,火狐和谷歌這三種瀏覽器上運(yùn)行。實現(xiàn)的思路是封裝一個方法,分
別傳入一個瀏覽器的字符串,如果傳入IE就使用IE,如果傳入FireFox就使用FireFox,如果傳入Chrome
就使用Chrome瀏覽器,并且使用什么瀏覽器可以在總的ini配置文件中進(jìn)行配置。需要注意的是每個瀏
覽器使用的驅(qū)動不一樣。

5.在你做自動化過程中,遇到了什么問題嗎?舉例下

這個問題,不管是自動化還是任何工作,都會被問到。主要想知道你是如何解決問題的,從而推斷你問
題分析和解決的能力。 當(dāng)然有遇到問題和挑戰(zhàn),主要有以下幾點: 頻繁地變更UI,經(jīng)常要修改頁面對象
里面代碼 運(yùn)行用例報錯和處理,例如元素不可見,元素找不到這樣異常 測試腳本復(fù)用,盡可能多代碼復(fù)
用 一些新框架產(chǎn)生的頁面元素定位問題,例如ck編輯器,動態(tài)表格等

6.什么是PO模式,為什么要使用它

PO是Page Object 模式的簡稱,它是一種設(shè)計思想,意思是,把一個頁面,當(dāng)做一個對象,頁面的元素
和元素之間操作方法就是頁面對象的屬性和行為,PO模式一般使用三層架構(gòu),分別為:基礎(chǔ)封裝層
BasePage,PO頁面對象層,TestCase測試用例層。
對于簡單的Selenium自動化測試,我們要做的不過是找到頁面元素,并且值傳遞給這些元素。但是假如
有10個腳本同時調(diào)用了一個相同的頁面元素,當(dāng)這個元素發(fā)生改變,我們需要修改10個腳本。隨著腳本
碼同學(xué)數(shù)的增加,時間工作復(fù)雜度也飛速增長。這個時候我們就可以考慮設(shè)計一個類,專門用來頁面元素的查
找、傳遞值和修正。這樣,當(dāng)一個頁面元素發(fā)生改變的時候,只用修改一個類,而不用同時修改10個腳
本。
Page Object是一種程序設(shè)計模式,將面向過程轉(zhuǎn)變?yōu)槊嫦驅(qū)ο? 頁面對象),將測試對象(按鈕、輸
入框、標(biāo)題等)及單個的測試步驟封裝在每個Page對象中,以page為單位進(jìn)行管理。
這樣,在Selenium測試頁面中可以通過調(diào)用頁面類來獲取頁面元素,從而巧妙的避免了當(dāng)頁面元素
id或者位置變化時,需要改測試頁面代碼的情況。當(dāng)頁面元素id變化時,只需要更改測試頁Class中頁面
的屬性即可??梢允勾a復(fù)用,降低維護(hù)成本,提高程序可讀性和編寫效率。
POM 解決的問題
以頁面為單位,集中管理元素對象和方法。當(dāng)頁面元素或流程變動時只需要修改相關(guān)頁面方法即
可,不需要修改相應(yīng)腳本
編寫腳本簡單,順著業(yè)務(wù)邏輯寫腳本。page object模式以業(yè)務(wù)邏輯上的每一步操作作為區(qū)分點,
頁面方法代表了此頁面的一個業(yè)務(wù)操作并嚴(yán)格控制此操作的后續(xù)流程
后期維護(hù)方便
在編寫PO前,建議先掌握以下幾個知識點:
selenium庫的基礎(chǔ)運(yùn)用
xpath語法
pytest 或者 unittest
面向?qū)ο笾械念?和 繼承
說在前邊:PO模式是一種設(shè)計思想,在實際編碼的時候可以有若干種實現(xiàn)方式。實際上,也建議
大家根據(jù)自己項目的情況來動態(tài)的編碼。具體來說,常見的PO模式有:
1)三層:對象庫層+case層+page層
2)四層:對象庫層+case層+page層+公共類

接口自動化

1.你是怎么測試接口的

考點:
①. 是否具備接口測試實際經(jīng)驗
②. 是否熟悉接口測試的流程
③. 是否熟悉接口測試的具體步驟
④. 是否熟悉接口測試用例設(shè)計
參考答案:
先了解接口的業(yè)務(wù)功能、入?yún)⒊鰠⒁约敖涌趯?yīng)的數(shù)據(jù)存儲,再依據(jù)接口測試用例設(shè)計方法完成接口測
試的設(shè)計,用例設(shè)計先業(yè)務(wù)場景再參數(shù)判斷,比如參數(shù)的邊界值、格式、組合等等,最后依據(jù)測試用例
碼同學(xué)使用接口測試工具完成接口測試,并在測試過程中查看日志及數(shù)據(jù)以確保接口測試結(jié)果的正確性

2.沒有接口文檔如何做接口測試

考點:
對接口測試的熟悉程度
測試軟技能
1.沒有接口文檔,那就需要先跟開發(fā)溝通,然后整理接口文檔(本來是開發(fā)寫的,沒辦法,為了唬住面
試官,先說自己整理了)
2.沒有接口文檔,可以抓包看接口請求參數(shù),然后不懂的跟開發(fā)溝通

3.接口測試用例的編寫要點有哪些?

考點:
接口測試用例設(shè)計
參考答案:
1)必填字段:請求參數(shù)必填項、可選項
2)合法性:輸入輸出合法、非法參數(shù)
3)邊界:請求參數(shù)邊界值等
4)容錯能力:大容量數(shù)據(jù)、頻繁請求、重復(fù)請求(如:訂單)、異常網(wǎng)絡(luò)等的處理
5)響應(yīng)數(shù)據(jù)校驗:斷言、數(shù)據(jù)提取傳遞到下一級接口…
6)邏輯校驗:如兩個請求的接口有嚴(yán)格的先后順序,需要測試調(diào)轉(zhuǎn)順序的情況
7)性能:對接口模擬并發(fā)測試,逐步加壓,分析瓶頸點
8)安全性:構(gòu)造惡意的字符請求,如:SQL注入、XSS、敏感信息、業(yè)務(wù)邏輯(如:跳過某些關(guān)鍵步
驟;未經(jīng)驗證操縱敏感數(shù)據(jù))

4.接口測試中的加密參數(shù)如何處理

考點:
①. 是否熟悉加解密方式
②. 是否具備處理加密參數(shù)的能力
③. 是否實際應(yīng)用過
參考答案:
首先了解參數(shù)的加解密方式,常見的有md5、aes、rsa等等,如果是aes的需要找開發(fā)要私鑰,如果是
rsa需要找開發(fā)要公鑰和私鑰,然后在接口測試工具中引用加解密的代碼實現(xiàn)參數(shù)的加解密過程,實現(xiàn)參
數(shù)加解密的處理;如果公司有自定義的加密算法則需要找開發(fā)要加解密的代碼實現(xiàn),然后在測試工具中
使用。

5.接口應(yīng)用題

問題1:設(shè)計接口測試?用例例時,涉及的是電商系統(tǒng),其中包括很多修改,如商品、商家、店鋪等等,
針對這些數(shù)據(jù)的修改,會涉及到很多參數(shù)。如商品的名稱,商品的尺碼,商品的顏色等等。那在設(shè)計實
現(xiàn)“修改”接口時,如何確定要傳哪些參數(shù),是只需要傳我要修改的參數(shù),還是全部參數(shù)都要傳?

5.同步和異步區(qū)別

考點:
①. 考察對企業(yè)中接口通信機(jī)制的認(rèn)識
②. 考察同步通信和異步通信的原理
參考答案:
同步和異步是一種通訊方式
同步:執(zhí)行一個操作時,需要等待其處理完成,然后再進(jìn)行下一個操作
異步:執(zhí)行一個操作時,不需要等待返回,就進(jìn)行下一個操作,一般需要使用消息中間件
舉例:
下單接口中,需要調(diào)用庫存接口做庫存判斷,所以必須等待庫存接口返回數(shù)據(jù)才能進(jìn)行下一步操作,這
是同步;
下單接口中,下單成功后需要調(diào)用郵件通知接口,不用等待接口返回成功,就可以直接進(jìn)行下一步操
作,這是異步

6.pytest里如何進(jìn)行case的組裝

考點:
考察使用pytest組織case的能力
參考答案:
1.默認(rèn)使用檢查以test_ .py 或**test.py命名的文件名,在文件內(nèi)部查找以test打頭的方法或函數(shù),并執(zhí)
2.可以使用自定義marker(標(biāo)簽),比如pytest運(yùn)行的時就只運(yùn)行帶有該marker的測試用例,比如下面
的@pytest.mark.P0
3.在pytest.ini配置文件中可以針對pytest執(zhí)行時的case做處理,比如要執(zhí)行某個目錄下的用例,執(zhí)行
某個腳本文件等等

7.說說pytest里的鉤子函數(shù)

考點:
pytest基礎(chǔ)知識
參考答案:
幾個常用的鉤子:
pytest_runtest_makereport(item,call): 針對測試報告進(jìn)程處理,比如失敗截圖
pytest_collection_modifyitems(items):在case收集后調(diào)用,可以對項目順序或其他功能進(jìn)行自定義
pytest_addoption(parser):為命令行添加自定義參數(shù),比如指定瀏覽器名稱
?

er2

?

1. appium的工作原理

這個題目考察的就是appium工作原理
appium工作原理需要分很多方面進(jìn)行闡述
安卓:

1.1 appuim基于uiautomator2的原理

Appium服務(wù)啟動后默認(rèn)在4723端口上創(chuàng)建一個http服務(wù),腳本通過服務(wù)地址http://xxxx:4723/wd/hub
和appium進(jìn)行通信
在初始化腳本和appium連接的過程中appium會向手機(jī)就安裝輔助app uiautomator2.server.apk和
uiautomator2.server.test.apk,并且做端口轉(zhuǎn)發(fā)adb forward tcp 8200 tcp 6790,安裝以后會在手機(jī)上
啟動uiautomator2的server,這個server啟動后會在手機(jī)上創(chuàng)建一個netty server,端口是6790,
appium和手機(jī)上的uiautomator2 server的6790端口進(jìn)行通信,把從4723端口收到的腳本指令通過
8200端口轉(zhuǎn)發(fā)到手機(jī)的6790端口上

1.2 Appium基于uiautomator1的原理

Appium服務(wù)啟動后默認(rèn)在4723端口上創(chuàng)建一個http服務(wù),腳本通過服務(wù)地址http://xxxx:4723/wd/hub
和appium進(jìn)行通信
在初始化腳本和appium連接的過程中appium會向手機(jī)發(fā)送AppiumBootstrap.jar,并且做端口轉(zhuǎn)發(fā)
adb forward tcp 4724 tcp 4724,安裝以后會在手機(jī)上啟動AppiumBootstrap.jar,啟動后會在手機(jī)上創(chuàng)
建一個socket服務(wù),端口是4724,appium和手機(jī)上的socket服務(wù)的4724端口進(jìn)行通信,把從4723端口
收到的腳本指令通過4724端口轉(zhuǎn)發(fā)到手機(jī)的4724端口上

1.3 Appium基于chromedriver的原理,測試H5時使用

Appium服務(wù)啟動后默認(rèn)在4723端口上創(chuàng)建一個http服務(wù),腳本通過服務(wù)地址http://xxxx:4723/wd/hub
和appium進(jìn)行通信
在初始化腳本和appium連接的過程中會啟動chromedriver創(chuàng)建一個http服務(wù),端口是8000,appium
和chromedriver的服務(wù)通過8000端口進(jìn)行通信,chromedriver服務(wù)接收到appium指令后去操作手機(jī),
操作完成再返回給appium,appium再返回給腳本

1.4 IOS手機(jī):

Appium服務(wù)啟動后默認(rèn)在4723端口上創(chuàng)建一個http服務(wù),腳本通過服務(wù)地址http://xxxx:4723/wd/hub
和appium進(jìn)行通信
在初始化腳本和appium連接的過程中會向手機(jī)編譯安裝webdriveragent app,并且啟動wda在手機(jī)上
創(chuàng)建一個基于8100的http服務(wù),appuim通過4723的端口接收到腳本傳遞的指令,appium再通過本地
的8100端口將收到的指令轉(zhuǎn)發(fā)給手機(jī)上8100 wda服務(wù),wda服務(wù)接收到指令再去操作待測app,操作完
成后返回給appium操作結(jié)果,appium再將結(jié)果返回給腳本

2. 接口響應(yīng)格式是json的,用代碼如何解析他?如果不使

用第三方庫怎么解析?

碼同學(xué)在java自動化測試中解析json的第三方包有很多,比如fastjson、gson等等,如果不使用第三方的話則
需要采用java原生的字符串處理方法,比如一個json字符串是
{"name":"shamo","age":18,"job":"tester"},可以采用字符串分割、替換等方式拆解,得到其中某個字
段對應(yīng)的值

3.Testng的監(jiān)聽器是怎么使用的?TestNg的數(shù)據(jù)驅(qū)動返回

的是什么?

Testng的監(jiān)聽器在自動化中的使用主要集中在失敗截圖和失敗重試
失敗重試的需要實現(xiàn)兩個接口IRetryAnalyzer、IAnnotationTransformer
失敗截圖的需要實現(xiàn)ITestListener
實現(xiàn)后需要在testng的配置文件中增加監(jiān)聽標(biāo)簽
Testng的數(shù)據(jù)驅(qū)動返回結(jié)果是一個二維數(shù)組,因此在做數(shù)據(jù)驅(qū)動時,不管我們的數(shù)據(jù)是存在excel、xml
或者數(shù)據(jù)庫等存儲介質(zhì)中,最終我們都需要將他們轉(zhuǎn)換成二維數(shù)組

4.簡單介紹一下自動化項目整體框架的結(jié)構(gòu)

自動化測試框架涵蓋基礎(chǔ)方法封裝、自定義異常封裝、工具類封裝、元素管理封裝、Page Object模式封
裝、日志封裝、數(shù)據(jù)管理封裝、失敗重試封裝、瀏覽器/手機(jī)適配封裝、數(shù)據(jù)庫操作封裝、測試用例管理
封裝、測試報告等等

5.自動化中顯式等待和隱式等待的異同?

1. 相同點都是智能等待,在一定時間范圍內(nèi)不斷查找元素,一旦找到立刻結(jié)束查找繼續(xù)執(zhí)行代碼,沒
找到才會一直找到超時為止
2. 不同點是隱式等待是全局性設(shè)置,并且可以隨時更改,在更改后對之后的findxxx方法生效,
對點擊、輸入、滑動之類的操作不起作用;
顯式等待僅僅針對單一元素或一組生效,并且不僅僅是針對查找,還可以針對彈框或者frame等特
殊情況起作用,也可以針對元素的某些屬性進(jìn)行自定義判斷

6. Testng中都有哪些注解

Testng單元測試框架中有基本的9大注解,BeforeSuit/AfterSuit、BeforeTest/AfterTest、
BeforeClass/AfterClass、BeforeMethod/AfterMethod、Test,其中比較特殊的注解是
BeforeMethod/AfterMethod,他的含義是在每一個@Test注解執(zhí)行前后都會被執(zhí)行

7. Jmeter工具如何做接口之間的關(guān)聯(lián),簡述?

接口關(guān)聯(lián)指的就是一個接口要使用另一個接口的返回值作為參數(shù),這種我們在jmeter中叫做關(guān)聯(lián)。
關(guān)聯(lián)的實現(xiàn)方式有多種:
使用正則表達(dá)式提取器獲取上一個請求的響應(yīng)結(jié)果中的某個值,儲存在某個變量中,然后下一個接口使
用變量進(jìn)行引用
使用json提取器獲取上一個請求的響應(yīng)結(jié)果中的某個值,儲存在某個變量中,然后下一個接口使用變量
進(jìn)行引用
使用beanshell后置處理器,解析響應(yīng)結(jié)果存儲在變量中,然后下一個接口使用變量進(jìn)行引用
跨線程組關(guān)聯(lián)則需要將關(guān)聯(lián)字段設(shè)置為全局屬性

8.你們公司業(yè)務(wù)中,自動化和手工分別占比多少?分別用來

做什么業(yè)務(wù)?

首先各公司自動化和手工的占比取決于對自動化測試的投入,這個問題的回答建議做好數(shù)據(jù),比如我們
的功能測試
用例總計1000,從其中分析出要實現(xiàn)的自動化用例300條,那么自動化的占比就出來了。那么哪些測試
用例會被
用來做自動化,穩(wěn)定模塊的用例、功能優(yōu)先級高的用例。手工測試一般用來做新功能測試業(yè)務(wù),自動化
一般用來做
舊的功能用來回歸業(yè)務(wù)

9.如何保證自動化測試的穩(wěn)定性

自動化測試穩(wěn)定性主要表現(xiàn)在兩個方面:一個是元素定位的問題,一個是用例之間的依賴問題。元素定
位問題可以
采用智能等待的方式盡可能的避免;用例依賴可以解耦用例之間的關(guān)系,讓每條用例都從一個共同的頁
面開始執(zhí)
行,比如首頁,這就需要在測試框架中采用后置處理的方式使每條用例執(zhí)行完成后都回到首頁。

10.cookie 和 session 的區(qū)別?

會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話
Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務(wù)器端記錄信息確定用戶身份
區(qū)別:
1、數(shù)據(jù)存放位置不同:
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
2、安全程度不同:
cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙,考慮到安全應(yīng)當(dāng)使用
session。
3、性能使用程度不同:
session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器
性能方面,應(yīng)當(dāng)使用cookie。
4、數(shù)據(jù)存儲大小不同:
單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie,而session則存
儲與服務(wù)端,瀏覽器對其沒有限制。

11.自動化測試中用例依賴的數(shù)據(jù)如何構(gòu)造

不管是接口自動化還是ui自動化都會存在自動化case依賴數(shù)據(jù)如何構(gòu)造的問題,可以從三個方面去考
慮,第一個是
在測試前采用接口去構(gòu)造需要的數(shù)據(jù);第二個是使用初始化sql去初始化數(shù)據(jù),但是如果說表結(jié)構(gòu)復(fù)雜的
話,sql編
碼同學(xué)寫也是比較大的工作量;第三個方式是提前準(zhǔn)備好一套數(shù)據(jù),并且將該數(shù)據(jù)對應(yīng)的數(shù)據(jù)庫進(jìn)行備份,在
之后每次執(zhí)
行測試前先備份當(dāng)前數(shù)據(jù)庫數(shù)據(jù),再導(dǎo)入之前的測試數(shù)據(jù),再執(zhí)行測試,測試執(zhí)行完后再恢復(fù)原有的數(shù)
據(jù)

12.如何實現(xiàn)多瀏覽器或者多手機(jī)的測試

web端自動化通常采用selenium的grid方式可以實現(xiàn)多瀏覽器的測試,也可以采用Testng的多線程配置
方式實現(xiàn)
不同瀏覽器的本地測試;appium本身也支持移動端多設(shè)備的測試,需要注意的是一臺設(shè)備必須對應(yīng)一個
appium
服務(wù),同樣可以采用grid方式或者本地多設(shè)備測試;或者通通采用jenkins的多節(jié)點方式實現(xiàn)

13.接口測試時碰到接口重定向如何去測試?

首先接口測試方式不同則處理方式不同,如果用的jmeter則無需特殊處理,jmeter默認(rèn)會自動處理重定
向接口自
動發(fā)起對重定向的接口地址的訪問并返回結(jié)果;如果是采用代碼框架的方式則需要特殊處理,拿到第一
個接口響應(yīng)
header中的location字段對應(yīng)的接口地址,發(fā)起對該地址的請求

14.接口依賴第三方接口,但是第三方接口卻有問題怎么

辦?

這種情況下我們會采用mock的方式來模擬第三方接口的返回,但是注意這種mock一般都需要開發(fā)配
合,將自己公司的接口調(diào)用指向mock出來的接口服務(wù)

15.restful標(biāo)準(zhǔn)接口中,有哪幾種請求方式,他們分別代表

什么含義

restful規(guī)范的接口中,通常是一個url就代表一種資源,對于資源的操作是通過http請求方法實現(xiàn)的,其
中有g(shù)et、
post、put、delete四種方式,get表示獲取數(shù)據(jù)、post表示新增數(shù)據(jù)、put表示修改數(shù)據(jù)、delete表示刪
除數(shù)據(jù)

16. web自動化中有哪些場景需要特殊處理

1. iframe元素,當(dāng)要操作的元素在iframe中是需要先將driver切換至該iframe才能操作,切換方式有
四種,通過id、name、索引、iframe元素對象,并且在多iframe切換時還需要進(jìn)行各種轉(zhuǎn)換
2. 新窗口打開,當(dāng)要操作的元素在一個新窗口打開的頁面上時,就需要先將driver切換至新窗口上才
能進(jìn)行操作
3. 時間控件,通常時間控件只能選擇無法輸入,那么可以采用js的方式修改時間控件的只讀屬性然后
再進(jìn)行輸入,或者用js直接修改時間控件的value值
4. 元素不在當(dāng)前視野需要滾動才會出現(xiàn),可以采用js的方式滾動,但是有時候界面中有多個滾動條js
就會無效,則需要先將光標(biāo)置入到滾動條區(qū)域然后模擬鍵盤的上下左右鍵來操作

17.app里的手勢解鎖的圖標(biāo)定位不到如何處理

一般情況下手機(jī)解鎖的大元素可以定位到,那么可以先定位大元素,然后獲取該元素的起始點坐標(biāo)及長
和寬,通過
碼同學(xué)坐標(biāo)計算出手勢解鎖需要的9個點的坐標(biāo),然后調(diào)用TouchAction里的press.moveTo.moveTo方法實現(xiàn)
手勢解鎖
?

selenium

1、selenium中如何判斷元素是否存在? ?? ?

isElementPresent

2、什么是自動化測試、自動化測試的優(yōu)勢是什么 ?? ?

通過工具或腳本代替手工測試執(zhí)行過程的測試都叫自動化測試 自動化測試的優(yōu)勢: 1.減少回歸測試成本 2.減少兼容性測試成本 3.提高測試反饋速度 4.提高測試覆蓋率 5.讓測試工程師做更有意義的測試

3、什么樣的項目比較適合做自動化測試,什么樣的不適合做自動化測試 ?? ?

適合做的項目: 1.項目周期長且相對穩(wěn)定 2.需要做頻繁的冒煙測試 3.需要經(jīng)常做回歸測試 4.需要進(jìn)行大數(shù)據(jù)量的數(shù)據(jù)驅(qū)動測試 不適合做的項目: 1.項目周期短用例不會多次重復(fù)執(zhí)行 2.被測項目不穩(wěn)定變化太頻繁

4、你們公司開展自動化工作的主要流程是怎樣的 ?? ?

1.選擇合適的測試工具 2.定義自動化測試覆蓋的范圍 3.制定測試計劃 4.自動化測試環(huán)境搭建 5.腳本開發(fā) 6.測試執(zhí)行 7.測試腳本維護(hù)

5、在制定自動化測試計劃的時候一般要考慮哪些點? ?? ?

1.選擇適合的測試工具或分析當(dāng)前的工具是否適合新項目 2.選擇合適的自動化測試框架 3.確定要做自動化測試的范圍和不做自動化測試的范圍 4.測試環(huán)境的準(zhǔn)備與搭建 5.制定一個粗略的腳本開發(fā)的時間表 6.制定腳本執(zhí)行的一些策略,如冒煙測試的頻率,回歸測試的時間點及頻率等 7.定義自動化測試的輸出,比如腳本,測試數(shù)據(jù),發(fā)現(xiàn)的缺陷,測試報告等

6、編寫自動化腳本時的一些規(guī)范? ?? ?

1.統(tǒng)一的命名約定,如用例名,方法名等 2.良好的腳本注釋 3.遵循代碼規(guī)范,使用適當(dāng)?shù)目s進(jìn) 4.對異常進(jìn)行處理

7、你一般一天能編寫多少個自動化腳本 ?? ?

這個取決于測試用例場景的復(fù)雜度,一般一天能寫2~5個左右,復(fù)雜的話一天只能寫一個

8、做自動化測試時關(guān)注的一些指標(biāo)? ?? ?

1.自動化測試用例的覆蓋率=自動化測試用例數(shù)/所用用例總數(shù),這個比例越高測試反饋越快,成本節(jié)約越多 2.節(jié)省的時間成本=手工測試所花的時間-自動化測試所花的時間 3.自動化測試的投入=開發(fā)腳本的投入+腳本維護(hù)的投入+工具價格 4.自動化測試發(fā)現(xiàn)的缺陷數(shù) 每次回歸測試時自動化測試發(fā)現(xiàn)的缺陷數(shù)及漏測數(shù),反應(yīng)了自動化用例的有效性

9、做自動化測試時關(guān)注的一些指標(biāo) ?? ?

自動化測試投入產(chǎn)出比: ROI=(手工測試的成本-自動化測試成本)/自動化測試成本 ROI如果是負(fù)值說明自動化測試的成本未收回,ROI為正值說明自動化測試成本已回收,且值越大說明回報越好

10、自動化測試可以達(dá)到100%的覆蓋率嗎 ?? ?

比較難 因為有些用例場景無法被自動化 一些驗證易用性友好性的用例不適合做自動化有些邊緣的用例很少被重復(fù)執(zhí)行,從投入產(chǎn)出比來說也不適合做自動化

11、你們公司開展自動化測試遇到一些什么問題 ?? ?

1.項目流程不規(guī)范,項目變動頻繁導(dǎo)致自動化用例維護(hù)成本高 解決:深入理解用戶需求,規(guī)范開發(fā)流程,自動化用例先覆蓋已經(jīng)穩(wěn)定的功能。 2.對自動化期望太高 自動化也是一個逐步完善的過程,不可能一下子完全代替手工 3.有些自動化工程師的技術(shù)能力偏弱 提升編程能力,提升自動化工具使用能力,對新人進(jìn)行培訓(xùn)等

12、selenium驅(qū)動瀏覽器使用的協(xié)議是什么 ?? ?

jsonwireprotocol

13、selenium工具都包含哪些組件 ?? ?

selenium IDE、webdriver、 selenium GRID

14、selenium中定位網(wǎng)頁元素有幾種方式 ?? ?

有八種 ID ?? ?NAME ?? ?CLASSNAME LINKTEXT ?? ?PARTIALLINKTEXT TAGNAME XPATH CSS SELECTOR

15、你是怎樣編寫元素的xpath表達(dá)式的 ?? ?

一般是自己寫Xpath表達(dá)式,再利用 ?try xpath小工具嚴(yán)重xpath表達(dá)式是否正確 也可以運(yùn)用谷歌和火狐中按F12后,對選中的元素是由右鍵中copy xpath功能

16、webdriver啟動常見的瀏覽器語句 ?? ?

driver = webdriver.FirefoxFDriver() driver = webdriver.ChromeDriver() driver = webdriver.internetExplorerDriver()

17、如何判斷一個元素在頁面上是顯示出來的 ?? ?

webelement類中的isdisplayed()方法

18、如何選中下拉列表中的下拉選項 ?? ?

//select selectByVissbleText

19、selenium如何處理彈窗 ?? ?

需要使用driver.switchTo().alert(): alert.accpt()相當(dāng)于點擊彈窗的ok按鈕 alert.dismiss()相當(dāng)于點擊彈窗的cancel按鈕

20、selenium可以處理windows彈窗嗎 ?? ?

selenium本身是不可以處理windows彈窗的,但是selenium可以借助Autolt小工具來完成對windows彈窗的操作

21、selenium中常見的時間等待有哪幾種 ?? ?

強(qiáng)制固定等待 全局的隱式等待 等待具體某個元素某個狀態(tài)的顯示等待 driver.quit()和driver.close()的區(qū)別 ?? ? driver.close()僅關(guān)閉當(dāng)前用戶正在操作的頁面 driver.quit()關(guān)閉整個瀏覽器,關(guān)閉所有的頁面

22、常見的自動化測試框架有哪些 ?? ?

線性腳本框架、數(shù)據(jù)驅(qū)動框架、關(guān)鍵字驅(qū)動框架、混合框架等

23、什么是pom ?? ?

是一種設(shè)計模式 好處是復(fù)用代碼,減少重復(fù)代碼的編寫 減少維護(hù)成本,頁面ui變動時,只改動一處即可

24、selenium中hidden或者是display = none的元素是否可以定位到 ?? ?

不能

25、selenium中如何保證操作元素的成功率?也就是說如何保證我點擊的元素一定是可以點擊的?

?? ? -添加元素智能等待時間 driver.implicitly_wait(30) - try 方式進(jìn)行 id,name,clas,x path, css selector 不同方式進(jìn)行定位,如果第一種失敗可以自動嘗試第二種 -Selenium保證元素成功率是通過元素的定位,當(dāng)然它的定位方法很多,一定能有合適的。但是在自動化工程 的實施過程中,高質(zhì)量的自動化測試不是只有測試人員保證的。需要開發(fā)人員規(guī)范開發(fā)習(xí)慣,如給頁面元素加 上唯一的name,id等,這樣就能大大地提高元素定位的準(zhǔn)確性。當(dāng)然如果開發(fā)人員開發(fā)不規(guī)范,我們在定位元素的時候盡量使用相對地址定位,這樣能減少元素定位受頁面變化的影響。只要我們元素定位準(zhǔn)確,就能保證我的每一個操作符合我的預(yù)期

26、如何提高selenium腳本的執(zhí)行速度 ?? ?

Selenium腳本的執(zhí)行速度受多方面因素的影響,如網(wǎng)速,操作步驟的繁瑣程度,頁面加載的速度,以及我們 在腳本中設(shè)置的等待時間,運(yùn)行腳本的線程數(shù)等。所以不能單方面追求運(yùn)行速度的,要確保穩(wěn)定性,能穩(wěn)定地 實現(xiàn)回歸測試才是關(guān)鍵。 我們可以從以下幾個方面來提高速度: 一,減少操作步驟,如經(jīng)過三四步才能打開我們要測試的頁面的話,我們就可以直接通過網(wǎng)址來打開,減少不 必要的操作。 二,中斷頁面加載,如果頁面加載的內(nèi)容過多,我們可以查看一下加載慢的原因,如果加載的內(nèi)容不影響我們 測試,就設(shè)置超時時間,中斷頁面加載。 三,在設(shè)置等待時間的時候,可以sleep固定的時間,也可以檢測某個元素出現(xiàn)后中斷等待也可以提高速度。 四,配置testNG實現(xiàn)多線程。在編寫測試用例的時候,一定要實現(xiàn)松耦合,然后在服務(wù)器允許的情況下,盡量 設(shè)置多線程運(yùn)行,提高執(zhí)行速度

27、用例在運(yùn)行過程中經(jīng)常會出現(xiàn)不穩(wěn)定的情況,也就是說這次可以通過,下次就沒辦法通過了,如何去提升用例的穩(wěn)定性

- time.sleep() - driver.implicitly_wait(30) -多用 try 捕捉,處理異常 -此時我們要分析出不穩(wěn)定的原因,然后有針對性的去解決問題。主要有以下幾個方面: 一,網(wǎng)速問題:有的時候網(wǎng)頁加載的比較慢,在程序執(zhí)行的時候要操作的元素沒有顯示出來。這種情況比較常 見,運(yùn)行一次網(wǎng)速好的時候通過了,再運(yùn)行一次,頁面沒有打開,就不通過了。為了提高穩(wěn)定性,我們只能犧 牲運(yùn)行時間了,在經(jīng)常檢測失敗的元素前加上等待時間,等要操作的元素出現(xiàn)之后再執(zhí)行下面的操作。 二,Selelnium的原因:Selenium1.0和2.0還是有區(qū)別的,有些兒函數(shù)在2.0下運(yùn)行確實有時而有效,時面 無效。如果mouseover()函數(shù),就是這種情況,我們需要避免使用這類的函數(shù)。 三,多線程的時候,測試用例間相互影響。雖然多線程的時候運(yùn)行速度比較快,但是如果用例之間的耦合性沒 有設(shè)計好,也會影響的,如果用例A先于用例B執(zhí)行的時候,就會影響到用例B;反之則沒有問題。這種情況, 如果你的自動化測試工程打算多線程的時候,提前就要把測試用例測試的耦合度比較松,盡量沒有任何關(guān)系, 因為多線程的執(zhí)行順序是不受控制的。

28、你的自動化用例的執(zhí)行策略是什么 ?? ?

自動化測試用例的執(zhí)行策略是要看自動化測試的目的,通常有如下幾種策略: 一,自動化測試用例是用來監(jiān)控的,在此目的下,我們就把自動化測試用例設(shè)置成定時執(zhí)行的,如果每五分鐘 或是一個小時執(zhí)行一次,在jenkins上創(chuàng)建一個定時任務(wù)即可。 二,必須回歸的用例。有些兒測試用例,如BVT測試用例,我們在公司產(chǎn)品任何變動上線之前都需要回歸執(zhí) 行。那我們就把測試用例設(shè)置成觸發(fā)式執(zhí)行,在jenkins上將我們的自動化測試任務(wù)綁定到開發(fā)的build任務(wù) 上。當(dāng)開發(fā)人員在仿真環(huán)境上部代碼的時候,我們的自動化測試用例就會被觸發(fā)執(zhí)行。 三,不需要經(jīng)常執(zhí)行的測試用例。像全量測試用例,我們沒有必要一直回歸執(zhí)行,必竟還是有時間消耗的,有 些非主要業(yè)務(wù)線也不需要時時回歸。這類測試用例我們就采用人工執(zhí)行,在jenkins創(chuàng)建一個任務(wù),需要執(zhí)行 的時候人工去構(gòu)建即可。

29、什么是持續(xù)集成 ?? ?

持續(xù)集成源于極限編程(XP),是一種軟件實踐,軟件開發(fā)過程中集成步驟是一個漫長并且無法預(yù)測的過程。集成過程中可能會爆發(fā)大量的問題,因此集成過程需要盡可能小而多,實際上持續(xù)集成講的是不斷的去做軟件的 集成工作。持續(xù)集成,最簡單的形式是包括一個監(jiān)控版本控制(SVN等等)變化的工具。當(dāng)變化被發(fā)覺時,這 個工具可以自動的編譯并測試你的應(yīng)用

30、自動化測試的時候是不是需要連接數(shù)據(jù)庫做數(shù)據(jù)校驗 ?? ?

- UI自動化不需要

-接口測試會需要

31、id,name,class,xpath, css selector這些屬性,你最偏愛哪一種,為什么 ?? ?

css 、xpath 幾乎所有的元素都可以定位到

32、如何去定位頁面上動態(tài)加載的元素 ?? ?

觸發(fā)動態(tài)加載元素的事件,直至動態(tài)元素出現(xiàn),進(jìn)行定位

33、如何去定位屬性動態(tài)變化的元素 ?? ?

xpath或者css通過同級、父級、子級進(jìn)行定位

34、點擊鏈接以后,selenium是否會自動等待該頁面加載完畢 ?? ?

會的

35、啟動瀏覽器的時候用到的是哪個webdriver協(xié)議 ?? ?

http

36、什么是page object設(shè)計模式 ?? ?

相似功能地方,代碼基本都是一樣的,界面元素?fù)Q個查找方式,把原來的使用 xpath方式,改為使用 id 查 找,需要對每個用例腳本都要改,雖然幾個用例看不出什么工作量,但是重復(fù)findElement的代碼,已經(jīng)讓我 們感到了代碼的笨重。如果某些定位發(fā)生了改變,我們就得貫穿整個測試代碼進(jìn)行調(diào)整元素定位,這樣就會導(dǎo) 致我們的腳本在后期,難以維護(hù)。因此通過Page ?Object Model 我們可以創(chuàng)建更加健壯代碼,并減少或者 消除重復(fù)的測試代碼,從而也能夠提高代碼的可讀性,減少編寫腳本的工作量。Page Object Model的實 現(xiàn),就是通過分離測試對象和測試腳本的抽象來實現(xiàn)的。

37、如何在定位元素后高亮元素(以調(diào)試為目的) ?? ?

重置元素屬性,給定位的元素加背景、邊框

38、什么是斷言 ?? ?

-斷言的英文是assertion,斷言檢查的英文是assertion checking。 -斷言是指定一個程序必須已經(jīng)存在的狀態(tài)的一個邏輯表達(dá)式,或者一組程序變量在程序執(zhí)行期間的某個點上必須滿足的條

39、如果你進(jìn)行自動化測試方案的選型,你會選擇哪種語言,java,js,python還是ruby ?? ?

使用自己熟悉的語言

40、page object設(shè)置模式中,是否需要在page里定位的方法中加上斷言 ?? ?

不需要

41、page object設(shè)計模式中,如何實現(xiàn)頁面的跳轉(zhuǎn) ?? ?

get、click

42、自動化測試用例從哪里來 ?? ?

-手工用例中抽取 -可以參考自動化用例的執(zhí)行策略

43、你覺得自動化測試最大的缺陷是什么? ? ?

-不穩(wěn)定

-可靠性

-不易維護(hù)

-成本與收益

44、webdriver可以用來做接口測試嗎 ?? ?

有難度,不推薦

45、公司內(nèi)一直在使用的測試系統(tǒng)(B/S架構(gòu))突然不能訪問了,需要你進(jìn)行排查并恢復(fù),說出你的檢查方法 ?? ?

一、網(wǎng)站輸入域名直接無法訪問,網(wǎng)站之前還正常,突然就無法訪問 1.測試FTP是否正??梢缘卿?,不能登錄的直接問空間商那是空間商的問題直接聯(lián)系他們。 2.空間贈送的三級域名是否能夠訪問網(wǎng)站打開網(wǎng)站(空間都贈送三級域名),如果也不能訪問應(yīng)該是空間問 題。 3.在電腦的開始菜單運(yùn)行中輸入cmd,在彈出的黑框中輸入:ping 你的域名;然后回車,如果看不到IP或IP 地址與你的主機(jī)地址不符,則說明域名解析有誤,是域名的問題得重新解析域名。 二、訪問報404錯誤(無法找到該頁)。說明是網(wǎng)站內(nèi)容都正常是程序出現(xiàn)問題,看看程序是否完整。 三、訪問網(wǎng)站出現(xiàn)MySQL Server Error 這個是數(shù)據(jù)庫鏈接錯誤,查看數(shù)據(jù)庫連接文件和數(shù)據(jù)庫是不是錯 誤。 四、訪問網(wǎng)站出現(xiàn)500錯誤。 1.請登錄FTP查看是否多了異常文件或丟失文件,說明網(wǎng)站被侵入了,馬上聯(lián)系網(wǎng)站制作進(jìn)行進(jìn)行排查故障。 2.如果空間且FTP程序目錄沒有缺失文件或剛剛安裝就出現(xiàn)500錯誤,請確認(rèn)空間已開啟scandir()函數(shù),查 看是不是禁止了這個函數(shù)。

?

?

到了這里,關(guān)于軟件測試自動化面試題(含答案)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【軟件測試】自動化測試selenium

    【軟件測試】自動化測試selenium

    目錄 一、什么是自動化測試 二、Selenium介紹 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API?? 1.1、元素定位 1.1.1、CSS選擇器 1.1.2、Xpath元素定位 1.1.3、面試題 ?1.2、操作測試對象 1.3、添加等待? 1.4、打印信息 ?1.5、瀏覽器的操作 1.6、鍵盤事件 1.7、鼠

    2024年01月17日
    瀏覽(26)
  • 軟件測試 -- 自動化測試(Selenium)

    ????????在這里記錄一下? 自動化測試 -- Selenium 的一些基礎(chǔ)知識點,只記錄方法。 Selenium 瀏覽器操作 Selenium 元素定位(包含 Web 表單) findElement 和 findElements ????????findElement 和 findElements 都可以用于定位元素,它們都需要傳入一個 By 類型,但是他們的返回值不同,區(qū)

    2024年04月22日
    瀏覽(56)
  • 【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    前言 使用場景 原理 環(huán)境準(zhǔn)備 ?開發(fā) First Script WebDriver API 瀏覽器 元素 總結(jié) Selenium是一款可以自動化操作瀏覽器的開源項目,最初的目的是瀏覽器功能的自動化測試,但是隨著項目的發(fā)展,人們根據(jù)它的特性也用來做一些更多的有意思的功能而不僅僅是UI的自動化測試工具。

    2024年02月08日
    瀏覽(64)
  • 第八章 軟件測試自動化

    通過本章的學(xué)習(xí),了解自動化測試應(yīng)考慮的各種因素及如何衡量自動化測試成本,掌握自動化測試和手工測試的優(yōu)缺點,能正確選擇軟件測試策略,了解測試工 具的分類和使用目的,熟悉常用的測試工具,了解自動化測試的過程。 (一)自動化測試概述(一般) 理解:自動

    2024年02月08日
    瀏覽(26)
  • 軟件測試之單元測試自動化入門基礎(chǔ)

    軟件測試之單元測試自動化入門基礎(chǔ)

    所謂的單元測試(Unit Test)是根據(jù)特定的輸入數(shù)據(jù),針對程序代碼中的最小實體單元的輸入輸出的正確性進(jìn)行驗證測試的過程。所謂的最小實體單元就是組織項目代碼的最基本代碼結(jié)構(gòu): 函數(shù),類,模塊 等。在Python中比較知名的單元測試模塊: unittest pytest doctest nose 所謂的測試

    2024年02月03日
    瀏覽(29)
  • 【軟件測試】python+selenium自動化測試

    【軟件測試】python+selenium自動化測試

    一、什么是自動化測試 自動化測試指軟件測試的自動化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最 后評估運(yùn)行結(jié)果。將人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過程。 單元測試 java的單元測試框架是Junit,在這里不再贅述。 接口自動化 接口測試就是

    2023年04月09日
    瀏覽(34)
  • 【軟件測試】基于博客系統(tǒng)的自動化測試

    【軟件測試】基于博客系統(tǒng)的自動化測試

    目錄 1.我的博客系統(tǒng)鏈接 2.使用selenium對博客系統(tǒng)進(jìn)行自動化測試 1.引入依賴 2.創(chuàng)建公共類 3.創(chuàng)建測試套件類 4.測試登陸界面 5. 測試博客列表頁 6.測試寫博客頁面 7.測試刪除博客 8.最終運(yùn)行結(jié)果 用戶登錄 創(chuàng)建一個maven項目,在pop.xml中引入以下依賴 因為對每一個頁面進(jìn)行測試

    2024年02月15日
    瀏覽(22)
  • 軟件測試 自動化測試selenium篇(一)

    軟件測試 自動化測試selenium篇(一)

    目錄 一、什么是自動化測試 ?單元測試 ?接口自動化 ?UI自動化 二、如何實施自動化測試 ?自動化測試需要了解的技能 三、selenium介紹 webdriver的工作原理: ?四、Selenium+Java環(huán)境搭建 ? ? ? ? ? ? ? ? ? ?驗證環(huán)境是否搭建成功 創(chuàng)建java項目,添加pom文件中添加依賴 常見問題

    2024年02月07日
    瀏覽(37)
  • 軟件測試 自動化測試selenium API

    軟件測試 自動化測試selenium API

    1.1.1 CSS 選擇器定位元素 CSS 選擇器 就是一個語法 瀏覽器 (ctrl + f)可以進(jìn)行選擇 類選擇器:.class值(.s_ipt) id 選擇器:#id值(#kw) 父類選擇器 子類選擇器:父類選擇器表達(dá)式 子類選擇器表達(dá)式 標(biāo)簽選擇器:標(biāo)簽名(form) 1.1.2 XPath 定位元素 XPath 是一種在XML 文檔中定位元

    2024年04月28日
    瀏覽(34)
  • 軟件自動化測試入門攻略

    軟件自動化測試入門攻略

    京東購買:https://item.jd.com/14351742.html ? \\\"《軟件自動化測試入門攻略》一書是作者花費(fèi)了近兩年時間完成的一本大作,專門為入 門、入行人員編寫,無論你是初學(xué)者,還是想轉(zhuǎn)型、轉(zhuǎn)專業(yè)學(xué)習(xí)軟件自動化測試,本書 都適合你。書中充分考慮到新手入門自動化測試的特點,從工

    2024年01月17日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包