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