精心整理總結(jié)的Python自動(dòng)化測(cè)試面試題
1、自動(dòng)化代碼中,用到了哪些設(shè)計(jì)模式?
- 單例設(shè)計(jì)模式
- 工廠模式
- PO設(shè)計(jì)模式
- 數(shù)據(jù)驅(qū)動(dòng)模式
- 面向接口編程設(shè)計(jì)模式
2、什么是斷言( Assert) ?
- 斷言Assert用于在代碼中驗(yàn)證實(shí)際結(jié)果是不是符合預(yù)期結(jié)果,
- 如果測(cè)試用例執(zhí)行失敗會(huì)拋出異常并提供斷言日志
3、什么是web自動(dòng)化測(cè)試
- Web自動(dòng)化測(cè)試是從UI (用戶界面)層面進(jìn)行的自動(dòng)化測(cè)試,
- 測(cè)試人員通過編程自動(dòng)化程序(測(cè)試用例腳本)來打開瀏覽器測(cè)試網(wǎng)站的業(yè)務(wù)邏輯。
4、什么是Selenium?
Selenium是一個(gè)開源的web自動(dòng)化測(cè)試框架,支持多種編程語言開發(fā)自動(dòng)化測(cè)試腳本,支持跨瀏覽器平臺(tái)進(jìn)行測(cè)試
5、寫出Selenium中你最熟悉的接口或類
WebDriver、InternetExplorerDriver、 FirefoxDriver、 ChromeDriver、 WebElement、WebDriverWait、 By
6、元素定位類型有哪些?
By類一共有8種元素定位方式,它們都是靜態(tài)方法:
- By.id():
- By.name():
- By.tagName():
- By.className():
- By.cssSelector():
- By linkText():
- By partialLinkText():
- By.xpath():
7、Xpath是什么?
- 它是查找web頁(yè)面元素的一種方式,相當(dāng)于元素在dom中間的一個(gè)路徑,可以采用絕對(duì)路徑和相對(duì)路徑的方式進(jìn)行定位
- 它對(duì)于定義動(dòng)態(tài)的頁(yè)面元素有很大的幫助,同時(shí)也需要謹(jǐn)慎使用,因?yàn)槿绻?yè)面結(jié)構(gòu)發(fā)生變化,那么定位信息也可能需要變化。
8、findElement()和findElements(方法有什么區(qū)別
- 兩個(gè)都是查找頁(yè)面元素的方法
- findElement():查找一個(gè)頁(yè)面元素,只會(huì)返回一個(gè)WebElement對(duì)象
- findElements() :查找頁(yè)面上所有符合匹配的元素,返回元素集合
9、登錄按鈕除了用click方法進(jìn)行點(diǎn)擊以外還有其他方式嗎?
- 還可以使用submit()方法,前提是input元素的type為submit
10、怎么提高Selenium腳本的執(zhí)行速度
- 優(yōu)化等待時(shí)間:使用 WebDriverWait 智能等待來代替線程等待 sleep 和 隱式等待 implicityWait
- 減少不必要的操作:如直接進(jìn)入某頁(yè)面代替經(jīng)過一系列自動(dòng)化操作進(jìn)入某頁(yè)面在服務(wù)器允許的情況下,使用多線程實(shí)現(xiàn)并發(fā)執(zhí)行測(cè)試用例.
11、怎么對(duì)含有驗(yàn)證碼的功能進(jìn)行自動(dòng)化測(cè)試的
- 1) :圖像識(shí)別,技術(shù)難度大,效果不佳,不推薦
- 2) :屏蔽驗(yàn)證碼,邀請(qǐng)開發(fā)處理,但在預(yù)生產(chǎn)環(huán)境或者生產(chǎn)環(huán)境不推薦
- 3) :萬能驗(yàn)證碼,使用一個(gè)復(fù)雜的其他人無法猜到的驗(yàn)證碼
12、怎么驗(yàn)證復(fù)選按鈕是不是被選中
可以使用元素的 isSelected() 方法,如果返回的是 true 則說明被選中,否則表明未被選中
13、如何處理alert彈窗?
- 處理 alert 彈窗首先需要先跳轉(zhuǎn)到 alert 上,然后在點(diǎn)擊確定或者取消按鈕,
- Alert alert = driver.switchTo().alert(); //切換到alert
- alert.accept0; //確定
- alert.dismiss0; //取消
14、下拉菜單中如何去選擇一個(gè)菜單項(xiàng)?
- 如果下拉菜單是select標(biāo)簽,使用方法: selectByValue() 或者 selectByIndex() 或者 selectByVisibleText() 即可
- 如果這個(gè)下拉菜單不是通過 select 標(biāo)簽創(chuàng)建,則直接通過 xpath 定位元素然后去點(diǎn)擊選擇
15、如何模擬瀏覽器的前進(jìn)和后退、刷新操作
- driver.navigate().back()://后退
- driver. navigate().forward()://前進(jìn)
- driver.navigate0.efresh()://刷新
16、怎么獲得當(dāng)前頁(yè)面的URL?
String url = driver.getCurrentUrl();
17、WebDriver的close()和quit(方法的區(qū)別是什么?
- close()方法只是關(guān)閉當(dāng)前正在操作的窗口
- quit()是關(guān)閉了所有已經(jīng)打開的窗口
18、你覺得自動(dòng)化測(cè)試用哪些缺陷
- 成本比較大,而成效可能并不高
- 適合自動(dòng)化測(cè)試的功能有限
- 某些功能操作相對(duì)復(fù)雜,比如驗(yàn)證碼
- 維護(hù)成本高,一旦項(xiàng)目需求變更,自動(dòng)化測(cè)試腳本和用例就需要改進(jìn)
19、Web端功能自動(dòng)化,如何實(shí)現(xiàn)(非input型上傳)上傳文件
- 與windows窗口進(jìn)行交互,可以使用 pywin32庫(kù) 實(shí)現(xiàn)。
20、遇到 d1 class="inf-bar clearfix" 這種class中間有空格的控件,如何通過class定位?
- xpath定位:直接//d1 [@class="inf_bar clearfx"]
- css定位: d1.inf_bar.clearfix
21、Selenium自動(dòng)化,遇到 iframe 如何處理?
使用switch_ to.frame 切換進(jìn) iframe 當(dāng)中后 ,再去定位其中的元素并操作
22、Web端功能自動(dòng)化中,如何切換句柄。
先獲取所有窗口句柄,然后使用 switch_ to.window() 切換到指定窗口
23、測(cè)試中遇到 readonly 屬性的控件,需要如何處理?
簡(jiǎn)述一下思路 先修改關(guān)閉r eadonly 屬性,然后再操作元素。
需求:給定一個(gè)只包含正整數(shù)且非空的數(shù)組,返回該數(shù)組中重復(fù)次數(shù)最多的前N個(gè)數(shù)字(返回結(jié)果按重復(fù)次數(shù)從多到少降序), 請(qǐng)用熟悉的語言實(shí)現(xiàn)該需求。10分鐘內(nèi)寫出來
a = [1, 6, 7, 4, 4, 5, 4, 5, 4, 5, 5, 6, 7, 8, 5, 6, 7, 3, 4, 2, 2, 1, 4, 8, 9, 4, 5, 6] def get_datas(a): result = [] data_dict = {} # 鍵值對(duì):鍵:數(shù)字,值:在列表中的次數(shù) for item in set(a): data_dict[str(item)] = a.count(item) print(data_dict) # 將鍵值對(duì)按值(數(shù)字出現(xiàn)的次數(shù))排序 ---從高到低排序 res = sorted(data_dict.values(),reverse=True) for num in res: for key,value in data_dict.items(): # 如果值在列表中不存在,則添加到結(jié)果列表中 if num == value and key not in result: result.append(key) return result a1 = get_datas(a
執(zhí)行結(jié)果:
24、例如: passwd={"admin'":"123321","user1":" 123456"} 滿足一下條件?
1、設(shè)計(jì)一個(gè)登陸程序,不同的用戶名和對(duì)應(yīng)密碼存在一一個(gè)字典里面,輸入正確的用戶和密碼去登陸,
2、首先輸入用戶名,如果用戶名不存在或者為空,則一直提示輸入正確的用戶名
3、 當(dāng)用戶名正確的時(shí)候,提示去輸入密碼,如果密碼跟用戶名不對(duì)應(yīng),則提示密碼錯(cuò)誤請(qǐng)重新輸入。
4、如果密碼輸入錯(cuò)誤超過三次,中斷程序運(yùn)行。
5、當(dāng)輸入密碼錯(cuò)誤時(shí),提示還有幾次機(jī)會(huì)
6、用戶名和密碼都輸入成功的時(shí)候, 提示登陸成功!
users = {"admin": "123456", "user1": " 123456"} count = 0 def login(): global count username = input("請(qǐng)輸入用戶名:") if username == None or username == "": login() if username not in users.keys(): print("用戶名輸入不正確,請(qǐng)重新輸入用戶名:") login() while (count < 3): passwd = input("請(qǐng)輸入密碼:") if passwd == users[username]: print("登錄成功??!") count = 3 else: count += 1 print("密碼輸入錯(cuò)誤,您還有{0}次機(jī)會(huì)。".format(3 - count)) login()
總結(jié)
到此這篇關(guān)于Python自動(dòng)化測(cè)試面試題的文章就介紹到這了,更多相關(guān)Python自動(dòng)化測(cè)試面試題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中實(shí)現(xiàn) xls 文件轉(zhuǎn) xlsx的4種方法(示例詳解)
在 Python 中,可以采用 pandas、pyexcel、win32com 和 xls2xlsx 這四個(gè)模塊,實(shí)現(xiàn) xls 轉(zhuǎn) xlsx 格式,本文以 Excel 示例文件test_Excel.xls 為例結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例
這篇文章主要介紹了python數(shù)據(jù)處理——對(duì)pandas進(jìn)行數(shù)據(jù)變頻或插值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04使用fdopen實(shí)現(xiàn)對(duì)Python進(jìn)程產(chǎn)生的文件進(jìn)行權(quán)限最小化配置
用python進(jìn)行文件的創(chuàng)建和讀寫操作時(shí),我們很少關(guān)注所創(chuàng)建的文件的權(quán)限配置。本文就來聊聊如何使用fdopen實(shí)現(xiàn)對(duì)Python進(jìn)程產(chǎn)生的文件進(jìn)行權(quán)限最小化配置吧2023-03-03詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用(網(wǎng)站中快速布置廣告)
這篇文章主要介紹了詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用【網(wǎng)站中快速布置廣告】,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03基于Python+Flask實(shí)現(xiàn)一個(gè)簡(jiǎn)易網(wǎng)頁(yè)驗(yàn)證碼登錄系統(tǒng)案例
當(dāng)今的互聯(lián)網(wǎng)世界中,為了防止惡意訪問,許多網(wǎng)站在登錄和注冊(cè)表單中都采用了驗(yàn)證碼技術(shù),驗(yàn)證碼可以防止機(jī)器人自動(dòng)提交表單,確保提交行為背后有一個(gè)真實(shí)的人類用戶,本文將向您展示如何使用Python的Flask框架來創(chuàng)建一個(gè)簡(jiǎn)單的驗(yàn)證碼登錄系統(tǒng)2023-09-09python操作xlsx文件的包openpyxl實(shí)例
下面小編就為大家分享一篇python操作xlsx文件的包openpyxl實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python導(dǎo)入模塊的3種方式超級(jí)詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入模塊的3種方式,本文介紹了在Python中使用模塊的概念和不同的導(dǎo)入方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12python學(xué)習(xí)教程之使用py2exe打包
py2exe是一個(gè)將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,下面這篇文章主要給大家介紹了關(guān)于python學(xué)習(xí)教程之使用py2exe打包的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09