亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

范文資料網(wǎng)>人事資料>招聘與面試>《自動化測試面試題及答案

自動化測試面試題及答案

時間:2023-07-26 13:40:01 招聘與面試 我要投稿
  • 相關(guān)推薦

自動化測試面試題及答案

  自動化技術(shù)是一門綜合性技術(shù),自動化和控制論、信息論、系統(tǒng)工程、計算機技術(shù)、電子學(xué)、液壓氣壓技術(shù)、自動控制等都有著十分密切的關(guān)系,以下是小編為你整理的自動化測試面試題及答案,希望能幫到你。

自動化測試面試題及答案

  自動化測試面試題

  1. 你比較熟悉那種自動化測試工具?

  2. 你在你以前工作中是如何使用自動化測試工具的?

  3. 介紹一下你在利用自動化測試工具的過程中遇到的一些問題

  4. 你是如何計劃自動化測試的?

  5. 自動化測試能提高測試效率嗎?

  6. 什么是data-driven automoation(數(shù)據(jù)啟動自動化)?

  7. 測試自動化的主要特征有哪些?

  8. 自動化測試可以代替手工測試嗎?

  9.自動化測試的好處是什么?

  10. 自動化測試容易出現(xiàn)的誤區(qū)有哪些?

  11. 介紹一下測試自動化的常見問題?

  12. 你知道哪些測試自動化的腳本技術(shù)?

  13. 測試用例的設(shè)計可以自動化嗎?

  自動化測試面試題及答案1

  一、第一個最常被問到的問題:你最熟悉的元素定位方式有哪些?

  id :根據(jù) id 來獲取元素,返回單個元素, id 值一般是唯一的;

  name :根據(jù)元素的 name 屬性定位;

  tagName :根據(jù)元素的標簽名定位;

  className :根據(jù)元素的樣式 class 值定位;

  linkText :根據(jù)超鏈接的文本值定位;

  partialLinkText :根據(jù)超鏈接的部分文本值定位;

  cssSelector : css 選擇器定位;

  xpath :通過元素的路徑來定位;

  優(yōu)先級最高: ID

  優(yōu)先級其次: name

  優(yōu)先級再次: CSS selector

  優(yōu)先級再次: Xpath

  二、如果一個元素無法定位,你一般會考慮哪些因素呢?

  這個在我們實際自動化測試過程中也會經(jīng)常遇到,那一般可以從以下幾個方面去考慮:

  1、元素定位的方式有誤,可以檢查元素定位的方法是否正確

  2、頁面元素加載過慢,需要添加等待時間

  3、頁面中有框架面,需要先切換到正確的frame框架再進行定位

  三、如果一個元素無法定位,你一般會考慮哪些因素呢?

  這個在我們實際自動化測試過程中也會經(jīng)常遇到,那一般可以從以下幾個方面去考慮:

  1、元素定位的方式有誤,可以檢查元素定位的方法是否正確

  2、頁面元素加載過慢,需要添加等待時間

  3、頁面中有框架面,需要先切換到正確的frame框架再進行定位

  四、說一說你知道的自動化測試框架

  1、RobotFramework

  2、Pytest

  3、Unittest

  4、PyUnit

  五、自動化測試中有幾種等待方式,它們之間有什么區(qū)別嗎?

  1、強制等待

  time.sleep(3):這種等待方式,意味著必須要等待3秒才可以執(zhí)行后續(xù)的代碼。這種形式不夠靈活,有可能頁面3秒之內(nèi)已經(jīng)加載完了,但是還是需要等待3秒才能進行下一步操作。

  2、隱式等待

  Imlicitlywait:這種形式的等待會在時間內(nèi)不斷查找元素,找到后就可以停止等待。但是這種形式需要等待整個頁面加載完成才能進行下一步操作。

  3、顯式等待

  WebDriverWait:這種形式的等待,是針對某個元素進行等待,這個元素只要加載完成就可以執(zhí)行后續(xù)的代碼了。這種形式比較靈活。

  六、什么是PO模式,它有哪三層?三者的關(guān)系是怎樣的?

  PO模式是一種自動化測試設(shè)計思想,是把一個頁面看成一個對象,頁面的元素看成對象的屬性和行為。PO模式一般有三層:

  基礎(chǔ)層:封裝一些最基礎(chǔ)的方法

  頁面對象層:元素定位,頁面操作等

  測試用例層:業(yè)務(wù)邏輯,數(shù)據(jù)驅(qū)動

  這三層的關(guān)系:

  頁面對象層繼承基礎(chǔ)層,測試用例層調(diào)用頁面對象層

  自動化測試面試題及答案2

  1.Selenium是否支持桌面應(yīng)用軟件的自動化測試。

  Selenium不支持桌面軟件的自動化測試,Selenium是根據(jù)網(wǎng)頁元素的屬性才定位元素,而其他桌面軟件自動化測試工具是根據(jù)桌面元素的位置來定位元素,當然現(xiàn)在也有根據(jù)桌面元素的屬性來定位的。

  2.Selenium是否支持用例的執(zhí)行的引擎。

  引擎好比就是一個發(fā)動機。Selenium是沒有關(guān)于測試用例和測試套件管理和執(zhí)行的模塊。我們需要借助第三方單元測試框架來實現(xiàn)用例管理和用例的執(zhí)行。例如Java中有Junit或者testNG,Python中有unittest單元測試框架。

  3.Seleinum是否有讀取excel文件的庫

  沒有,這里需要用到第三方工具。例如Apache POI插件。

  4.Selenium有哪些組件?

  最早的有Selenium IDE,IDE只支持安裝在fiefox上一個插件,支持錄制自動化腳本。還有remote RC,和Grid 和webdriver。我們一般最重要的就是使用webdriver。

  5.Selenium有什么限制或者缺陷

  除了基于web的軟件和mobile的程序,selenium不支持桌面軟件自動化測試。軟件測試報告,和用例管理只能依賴第三方插件,例如Junit/TestNG和unittest。由于它是免費的軟件,所以沒有供應(yīng)商去提供支持和服務(wù),有問題,只能求助selenium社區(qū)。還有一個就是,selenium入門門檻可能有點高,需要具備一定編程語言基礎(chǔ)的才能玩轉(zhuǎn)。

  6.在selenium中,有哪些不同定位元素方法

  ID/className/Name/LinkText/PartialLinkText/Xpath/CSS selector

  7.什么是imlicitlyWait(隱式等待)

  webdriver 會在指定的超時時間范圍內(nèi)不斷的查找元素,直到找到元素或超時

  8.什么是expliciteWait(顯式等待)

  通常是我們自定義的一段代碼,這段代碼用來等待某種條件發(fā)生后,再繼續(xù)執(zhí)行后續(xù)的代碼

  9.什么是線程等待(硬式等待)

  如Thread.sleep(2000),webdriver線程強制休眠2秒鐘,2秒過后,再執(zhí)行后續(xù)的代碼。

  10.什么是pollingEvery

  這個是設(shè)置個一段時間就去做一件事,例如下面設(shè)置隔一秒就去查找元素一次。

  WebDriverWait wait = new WebDriverWait(driver,30);

  wait.pollingEvery(1, TimeUnit.SECONDS);

  driver.findElement(By.xpath(“xxxx”));

  11.你寫的測試腳本能在不同瀏覽器上運行嗎,支持跨瀏覽器平臺嗎

  是的,我寫的測試用例能在IE,火狐和谷歌這三種瀏覽器上運行。主要是在windows平臺上運行腳本,所以mac的safari瀏覽器暫時沒有寫過。主要實現(xiàn)這個跨瀏覽器的思想就是,把瀏覽器類型寫到配置文件,代碼里寫if語句去判斷配置文件的瀏覽器的類型,來決定用什么瀏覽器去執(zhí)行測試用例。

  12.什么是POM,為什么要使用它

  POM是Page Object Model的簡稱,它是一種設(shè)計思想,而不是框架。大概的意思是,把一個一個頁面,當做一個對象,頁面的元素和元素之間操作方法就是頁面對象的屬性和行為,所以自然而然就用了類的思想來組織我們的頁面。一般一個頁面寫一個類文件,這個類文件包含該頁面的元素定位和業(yè)務(wù)操作方法

  為了我們測試用例寫的簡單,清晰,我們很多時候在頁面對象會封裝很多業(yè)務(wù)操作方法,測試腳本只需要調(diào)用相關(guān)方法就可以。

  還有一個可能和這個問題相關(guān)的面試題,如果頁面元素經(jīng)常發(fā)生需求變化,你是如何做,答案就是采用POM思想。好處就是只要該一個頁面,我就去修改這個頁面對象的元素定位和相關(guān)方法,腳本不需要修改。

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

  這個問題,不管是自動化還是任何工作,都會被問到。主要想知道你是如何解決問題的,從而推斷你問題分析和解決的能力。

  當然有遇到問題和挑戰(zhàn),主要有以下幾點:

  頻繁地變更UI,經(jīng)常要修改頁面對象里面代碼

  運行用例報錯和處理,例如元素不可見,元素找不到這樣異常

  測試腳本復(fù)用,盡可能多代碼復(fù)用

  一些新框架產(chǎn)生的頁面元素定位問題,例如ck編輯器,動態(tài)表格等

  14.舉例一下你遇到過那些異常,在selenium自動化測試過程中

  通過這個問題,大概知道你寫過多少腳本。寫腳本過程最常見的異常就是,這個元素無法找到。

  常見的selenium有以下這些:

  ElementNotSelectableException :元素不能選擇異常

  ElementNotVisibleException :元素不可見異常

  NoSuchAttributeException :沒有這樣屬性異常

  NoSuchElementException:沒有該元素異常

  NoSuchFrameException :沒有該frame異常

  TimeoutException : 超時異常

  Element not visible at this point :在當前點元素不可見

  15 如何處理alert彈窗

  我們常見的alert彈窗有兩種:基于windows彈窗和基于web頁面彈窗

  我們知道,webdriver是能夠處理alert彈窗的,Selenium提供了Alert這個接口。相關(guān)操作代碼如下:

  // 切換到Alert

  Alert alert = driver.switchTo().alert();

  // 點擊彈窗上確定按鈕

  alert.accept();

  // 點擊彈窗的取消按鈕

  alert.dismiss()

  // 獲取彈窗上線上的文本文字內(nèi)容

  alert.getText();

  // 有些彈窗還支持文本輸入,這個可以把要輸入字符通過sendkeys方法輸入

  alert.sendkeys();

  16 在selenium中如何處理多窗口?

  這個多窗口之間跳轉(zhuǎn)處理,在實際selenium自動化測試經(jīng)常遇到。就是,你點擊一個鏈接,這個鏈接會在一個新的tab打開,然后你接下來要查找元素在新tab打開的頁面,所以這里需要用到swithTo方法。

  需要獲取當前瀏覽器多窗口句柄,然后根據(jù)判斷跳轉(zhuǎn)新句柄還是舊句柄

  17 你查找元素遇到過在Frame里面嗎?你是如何處理Frame里面元素定位的?

  有時候我們知道元素定位表達式?jīng)]有問題,但是還是提示no such element,那么我們就需要考慮這個元素是否在frame中。如果在,我們就需要從topwindow,通過swithcTo.Frame()方法來切換到目標frame中,可以通過frame的name和id和索引三種方法來定位frame。

  18 怎么驗證勾選框是enable/disabled/ checked/Unchecked/ displayed/ not displayed?

  通過以下方法來驗證元素是enable 還是disable

  boolean enabled = driver.findElement(By.xpath(“元素定位表達式”)).isEnabled();

  通過以下方法來驗證元素是select/check

  boolean checked = driver.findElement(By.xpath(“元素定位表達式”)).isSelected();

  通過以下方法來驗證元素是dispalyed還是not display

  boolean displayed = driver.findElement(By.xpath(“元素定位表達式”)).isDisplayed();

  19 如何處理下拉菜單?

  通常我們也可以通過Click方法來點擊下拉菜單里面的元素,還有一種方法,在Selenium中有一個類叫Select,支持這種下拉菜單交互的操作。

  基本使用語法是這樣的:

  Select Se=new Select(element);

  Se.selectByIndex(index);

  Se.selectByvalue(value);

  Se.selectByVisibleText(text);

  20 在日歷這種web 表單你是如何處理的?

  首先要分析當前網(wǎng)頁試用日歷插件的前端代碼,看看能不能通過元素定位,點擊日期實現(xiàn),如果不能,可能需要借助javascript。還有些日歷控件一個文本輸入框,可以直接sendKeys()方法來實現(xiàn)傳入一個時間的數(shù)據(jù)。

  21關(guān)閉瀏覽器中quit和close的區(qū)別

  簡單來說,兩個都可以實現(xiàn)退出瀏覽器session功能,close是關(guān)閉你當前聚焦的tab頁面,而quit是關(guān)閉全部瀏覽器tab頁面,并退出瀏覽器session。知道這兩個區(qū)別,我們就知道quit一般用在結(jié)束測試之前的操作,close用在執(zhí)行用例過程中關(guān)閉某一個頁面的操作。

  22 什么是頁面加載超時

  Selenium中有一個 Page Load wait的方法,有時候,我們執(zhí)行腳本的速度太快,但是網(wǎng)頁程序還有一部分頁面沒有完全加載出來,就會遇到元素不可見或者元素找不到的異常。為了解決問題,讓腳本流暢的運行,我們可以通過設(shè)置頁面加載超時時間。具體代碼是這個:driver.manage().timeouts().pageLoadTimeout(10,TimeUnit.SECONDS);

  這行作用就是,如果頁面加載超過10秒還沒有完成,就拋出頁面加載超時的異常。

  23.什么是JavaScript Executor,你什么時候會用到這個?

  JavaScript Executor是一個接口,給driver對象提供一個執(zhí)行javaScript并訪問和修改前端元素屬性和值。

  還是有比較多的場景,我們可能或者需要借助javaScript來實現(xiàn):

  1.元素通過現(xiàn)有定位表達式不能夠?qū)崿F(xiàn)點擊

  2.前端頁面試用了ck-editor這個插件

  3.處理時間日期插件(可能)

  4.生成一個alert彈窗

  5.拖拽滾動條

  基本語法:

  JavascriptExecutor js =(JavascriptExecutor) driver;

  js.executeScript(Script,Arguments);

  24.在Selenium中如何實現(xiàn)截圖,如何實現(xiàn)用例執(zhí)行失敗才截圖

  在Selenium中提供了一個TakeScreenShot這么一個接口,這個接口提供了一個getScreenshotAs()方法可以實現(xiàn)全屏截圖。然后我們通過java中的FileUtils來實現(xiàn)把這個截圖拷貝到保存截圖的路徑。

  代碼舉例:

  File src=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

  try {

  // 拷貝到我們實際保存圖片的路徑

  FileUtils.copyFile(src,new File(“C:/selenium/error.png”));

  }

  catch (IOException e)

  {

  System.out.println(e.getMessage());

  }

  如果要實現(xiàn)執(zhí)行用例發(fā)現(xiàn)失敗就自動截圖,那么我們需要把這個截圖方法進行封裝。然后在測試代碼中的catch代碼塊去調(diào)用這個截圖方法。這個我們在POM的框架中一般是把截圖方法封裝到BasePage這個文件中。

  25.在Selenium中如何實現(xiàn)拖拽滾動條?

  在Selenium中通過元素定位會自動幫你拖拽到對應(yīng)位置,所以是沒有自帶的scoll方法。但是這個是有限制,例如當前頁面高度太長,默認是頁上半部分,你定位的元素在頁尾,這個時候可能就會報元素不可見的異常。我們就需要利用javaScript來實現(xiàn)拖拽頁面滾動條。

  我們一般可以兩個方法去拖拽,一個是根據(jù)拖拽的坐標(像素單位),另外一個是根據(jù)拖拽到一個參考元素附件。

  代碼舉例(根據(jù)元素坐標拖拽):

  JavascriptExecutor jse= (JavascriptExecutor)driver;

  jse.executeScript(“window.scrollBy(0,250)”, “”);

  26.如何實現(xiàn)文件上傳?

  我們在web頁面實現(xiàn)文件上傳過程中,可以直接把文件在磁盤完整路徑,通過sendKeys方法實現(xiàn)上傳。如果這種方法不能實現(xiàn)上傳,我們就可能需要借助第三方工具,我用過一個第三方工具叫autoIT.

  還有一個方法是利用robot類

  27.如何處理“不受信任的證書”的問題?

  例如,在登錄12306網(wǎng)站的時候,如果你沒有下載和安裝過這個網(wǎng)站的根證書,那么你就會遇到打開12306網(wǎng)站提示證書不受信任的攔截頁面。

  下面舉例火狐和谷歌上處理這個問題的基本代碼

  火狐:

  // 創(chuàng)建firefoxprofile

  FirefoxProfile profile=new FirefoxProfile();

  // 點擊繼續(xù)瀏覽不安全的網(wǎng)站

  profile.setAcceptUntrustedCertificates(true);

  // 使用帶條件的profile去創(chuàng)建一個driver對象

  WebDriver driver=new FirefoxDriver(profile);

  Chrome:

  // 創(chuàng)建類DesiredCapabilities的對象

  DesiredCapabilities cap=DesiredCapabilities.chrome();

  // 設(shè)置ACCEPT_SSL_CERTS 變量值為true

  cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

  // 新建一個帶capability的chromedriver對象

  WebDriver driver=new ChromeDriver(cap);

  28.什么是Firefox Profile?

  Profile是一組文件,主要用來記錄用戶在火狐瀏覽器上的私人信息,例如書簽,密碼,用戶首選項,下載文件夾保存路徑等。簡單來說,你打開火狐瀏覽器輸入about://config,這個頁面有些設(shè)置選項是可以通過profile來實現(xiàn)修改的。

  29.如何實現(xiàn)鼠標懸停,鍵盤事件和拖拽動作?

  在Webdriver中,處理鍵盤事件和鼠標事件,一般使用Actions類提供的方法,包括鼠標懸停,拖拽和組合鍵輸入。

  這里介紹幾個方法

  方法:clickAndHold()

  使用場景:找到一個元素,點擊鼠標左鍵,不放手。自己可以點擊鼠標不松開試試這個場景。

  方法:contentClick()

  使用場景:模擬鼠標右鍵點擊,一般右鍵會帶出菜單來。

  方法:doubelClick()

  使用場景:模擬鼠標雙擊

  方法:dragAndDrop(source,target)

  使用場景:模擬從source這個位置,拖拽一個元素到target位置

  鍵盤事件方法:keyDown(keys.ALT), keyUp(keys.SHIFT)

  使用場景:點擊鍵盤事件,分為兩個動作,一個點擊鍵盤,第二個動作是釋放點擊(松開)

  30.在執(zhí)行腳本過程,如何實現(xiàn)當前元素高亮顯示?

  這個其實就是利用javaScript去修改當前元素的背景顏色來到達高亮顯示的效果,

  31.如何獲取頁面標題,懸浮文本和錯誤文本,并驗證?

  標題,我們可以通過driver.getTitle()方法來得到一個字符串,然后使用字符串的containts方法或者equals方法去進行斷言。

  懸浮文本(tooltip),一般是利用Actions類,然后鼠標懸停方法,然后通過getText()方法來得到這個tooltip字符串。

  錯誤信息,直接把這個錯誤字段先進行定位,然后通過getText()方法拿到錯誤文本,主要的斷言有包含,相等,不相等,不包含,以什么開頭等。

  32.在selenium自動化測試中,你一般完成什么類型的測試?

  主要是冒煙測試和回歸測試;貧w測試主要寫一些功能穩(wěn)定,容易實現(xiàn)的場景,通過自動化手段去實現(xiàn),節(jié)約測試時間。

  33.你是如何管理你的測試用例并執(zhí)行?

  寫用例和管理并執(zhí)行用例,我們都需要借助單元測試框架來實現(xiàn),如果是Java語言一般有junit和TestNG,如果是python,常見的有unittest。

  就你實際情況,說一下。例如我使用TestNG比較多,需要配置testng.xml文件來實現(xiàn)測試用例的執(zhí)行。有時候需要配置多個testng.xml去實現(xiàn)不同的任務(wù)場景。再展開,可能問你一下testng框架的知識點。例如,方法依賴,用例執(zhí)行優(yōu)先級,數(shù)據(jù)源驅(qū)動等。

【自動化測試面試題及答案】相關(guān)文章:

銀行測試面試題及答案04-16

性能測試面試題及答案04-19

軟件測試面試題目04-23

蘋果面試題及答案04-07

經(jīng)典算法面試題及答案04-19

經(jīng)典面試題目及答案04-22

面試題目及答案04-23

新西蘭面試題的答案04-15

薪酬面試題及答案04-15