67道 Python自动化面试题
1、自動化代碼中,用到了哪些設(shè)計模式?
- 單例設(shè)計模式
- 工廠模式
- PO設(shè)計模式
- 數(shù)據(jù)驅(qū)動模式
- 面向接口編程設(shè)計模式
2、什么是斷言( Assert) ?
- 斷言Assert用于在代碼中驗證實際結(jié)果是不是符合預(yù)期結(jié)果,
- 如果測試用例執(zhí)行失敗會拋出異常并提供斷言日志
3、什么是web自動化測試
- Web自動化測試是從UI (用戶界面)層面進行的自動化測試,
- 測試人員通過編程自動化程序(測試用例腳本)來打開瀏覽器測試網(wǎng)站的業(yè)務(wù)邏輯。
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頁面元素的一種方式,相當(dāng)于元素在dom中間的一個路徑,可以采用絕對路徑和相對路徑的方式進行定位
- 它對于定義動態(tài)的頁面元素有很大的幫助,同時也需要謹慎使用,因為如果頁面結(jié)構(gòu)發(fā)生變化,那么定位信息也可能需要變化。
8、findElement()和findElements(方法有什么區(qū)別
- 兩個都是查找頁面元素的方法
- findElement():查找一個頁面元素,只會返回一個WebElement對象
- findElements() :查找頁面上所有符合匹配的元素,返回元素集合
9、登錄按鈕除了用click方法進行點擊以外還有其他方式嗎?
- 還可以使用submit()方法,前提是input元素的type為submit
10、怎么提高Selenium腳本的執(zhí)行速度
- 優(yōu)化等待時間:使用 WebDriverWait 智能等待來代替線程等待 sleep 和 隱式等待 implicityWait
- 減少不必要的操作:如直接進入某頁面代替經(jīng)過一系列自動化操作進入某頁面在服務(wù)器允許的情況下,使用多線程實現(xiàn)并發(fā)執(zhí)行測試用例.
11、怎么對含有驗證碼的功能進行自動化測試的
- :圖像識別,技術(shù)難度大,效果不佳,不推薦
- :屏蔽驗證碼,邀請開發(fā)處理,但在預(yù)生產(chǎn)環(huán)境或者生產(chǎn)環(huán)境不推薦
- :萬能驗證碼,使用一個復(fù)雜的其他人無法猜到的驗證碼
12、怎么驗證復(fù)選按鈕是不是被選中
- 可以使用元素的 isSelected() 方法,如果返回的是 true 則說明被選中,否則表明未被選中
13、如何處理alert彈窗?
- 處理 alert 彈窗首先需要先跳轉(zhuǎn)到 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、怎么獲得當(dāng)前頁面的URL?
- String url = driver.getCurrentUrl();
17、WebDriver的close()和quit(方法的區(qū)別是什么?
- close()方法只是關(guān)閉當(dāng)前正在操作的窗口
- quit()是關(guān)閉了所有已經(jīng)打開的窗口
18、你覺得自動化測試用哪些缺陷
- 成本比較大,而成效可能并不高
- 適合自動化測試的功能有限
- 某些功能操作相對復(fù)雜,比如驗證碼
- 維護成本高,一旦項目需求變更,自動化測試腳本和用例就需要改進
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 當(dāng)中后 ,再去定位其中的元素并操作
22、Web端功能自動化中,如何切換句柄。
- 先獲取所有窗口句柄,然后使用 switch_ to.window() 切換到指定窗口
23、測試中遇到 readonly 屬性的控件,需要如何處理?簡述一下思路
- 先修改關(guān)閉r eadonly 屬性,然后再操作元素。
需求:給定一個只包含正整數(shù)且非空的數(shù)組,返回該數(shù)組中重復(fù)次數(shù)最多的前N個數(shù)字(返回結(jié)果按重復(fù)次數(shù)從多到少降序), 請用熟悉的語言實現(xiàn)該需求。10分鐘內(nèi)寫出來
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' 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():# 如果值在列表中不存在,則添加到結(jié)果列表中if num == value and key not in result:result.append(key)return resulta1 = get_datas(a)執(zhí)行結(jié)果:
25、例如: passwd={"admin'":"123321","user1":" 123456"}滿足一下條件?
- 1、設(shè)計一個登陸程序,不同的用戶名和對應(yīng)密碼存在一一個字典里面,輸入正確的用戶和密碼去登陸,
- 2、首先輸入用戶名,如果用戶名不存在或者為空,則一直提示輸入正確的用戶名
- 3、 當(dāng)用戶名正確的時候,提示去輸入密碼,如果密碼跟用戶名不對應(yīng),則提示密碼錯誤請重新輸入。
- 4、如果密碼輸入錯誤超過三次,中斷程序運行。
- 5、當(dāng)輸入密碼錯誤時,提示還有幾次機會
- 6、用戶名和密碼都輸入成功的時候, 提示登陸成功!
26、編寫一個程序:—沒弄懂
1、能在當(dāng)前目錄以及當(dāng)前目錄的所有子目錄下查找文件名包含指定字符串的文件;
2、并打印出相對路徑。
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' import ospaths = []def get_paths(dir, relate_dir=None, search_str=None):global pathsif search_str == None:return os.listdir(dir)for item in os.listdir(dir):if relate_dir == None:relate_dir == os.curdirif os.path.isfile(os.path.join(dir, item)):if item.find(search_str) != -1:paths.append(os.path.join(relate_dir, item))elif os.path.isdir(os.path.join(dir, item)):paths = get_paths(os.path.join(dir, item), os.path.join(relate_dir, item), search_str)return pathsdir = os.getcwd() search_str = "fun" print(get_paths(dir, search_str=search_str))27、請寫出下列代碼的運行結(jié)果
def f(str1, *args, **kwargs):print(str1, args, kwargs)l = [1, 2, 3] t = [4, 5, 6] d = {"a": 7, "b": 8, "c": 9}f(1, 2) f(1, 2, 3, "python") f("python", l, d) f("python", *t) f("python", *l, **d) f("python", q="winning", **d)執(zhí)行結(jié)果:
1 (2,) {} 1 (2, 3, 'python') {} python ([1, 2, 3], {'a': 7, 'b': 8, 'c': 9}) {} python (4, 5, 6) {} python (1, 2, 3) {'a': 7, 'b': 8, 'c': 9} python () {'q': 'winning', 'a': 7, 'b': 8, 'c': 9}28、請寫下列代碼的運行結(jié)果
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' import copya = [1, 2, 3, 4, ["a", "b"]] b = a c = copy.copy(a) d = copy.copy(a) a.append(5) a[4].append("c")# 請根據(jù)以上規(guī)則填寫一下輸出內(nèi)容 print('a=', b) print('b=', b) print('c=', c) print('d=', d)執(zhí)行結(jié)果:
a= [1, 2, 3, 4, ['a', 'b', 'c'], 5] b= [1, 2, 3, 4, ['a', 'b', 'c'], 5] c= [1, 2, 3, 4, ['a', 'b', 'c']] d= [1, 2, 3, 4, ['a', 'b', 'c']]29、等長的兩個列表合并到一個字典,要求:合并成{‘A’: 1, ‘B’: 2, ‘C’: 3},請用一行代碼實現(xiàn)
keys = ["A", "B", "C"] values = ["1", "2", "3"] print(dict(zip(keys, [int(x) for x in values])))30、合并兩個列表并消除重復(fù)值
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' list_1 = ["a", "b", "c", "1", "A", "winning"] list_2 = ["a", "python", "string"] print(set(list_1 + list_2)) # 執(zhí)行結(jié)果:{'c', 'winning', '1', 'string', 'b', 'a', 'python', 'A'}31、已知一個列表,根據(jù)字典中的x ,由大到小排序這個列表
a = [{"x": 1, "y": 2}, {"x": 2, "y": 3}, {"x": 3, "y": 4}] aa1 = sorted(a, key=lambda item: item["x"], reverse=True) print(aa1) # 執(zhí)行結(jié)果:[{'x': 3, 'y': 4}, {'x': 2, 'y': 3}, {'x': 1, 'y': 2}]32、Html的基本結(jié)構(gòu)是怎么樣的,如何繪制一個2X2的表格
<html> <head> <title>兩行量列的表格</title> -<head> <body> <tatle width="200" border="1"> <tr><td> </td> <td> </td> -</tr> <td> </td> <td> </td> -</tr> -</table> -</body></html>33、寫出語句打印" let’s go", she said
print("\"let's go\",she said")34、請寫一段代碼,隨機生成10個數(shù)并寫入文件
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' import randomfs = open("num.txt", "a") list1 = [] for index in range(10):num = random.randint(0, 10)list1.append(str(num))print(list1) fs.write(",".join(list1)) fs.close()執(zhí)行結(jié)果:
35、請分別寫出代碼執(zhí)行結(jié)果
a = 1def fun(a):a = 2fun(a) print(a) # 執(zhí)行結(jié)果:1===============
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' b = []def fun(b):b.append(1)fun(b) print(b)執(zhí)行結(jié)果:[1]36、自動化測試分為哪幾類:AB
- A,UI自動化
- B,接口自動化
- C, Web自動化
- D,終端自動化
37、什么是會話?
- 所謂會話就是session ,而session是一種服務(wù)器的緩存技術(shù),由服務(wù)器端創(chuàng)建,
- 用戶登錄了系統(tǒng),一般就會把登錄用戶的信息保存到這個session對象中,然后把此會話對應(yīng)的id ( JSESSIONID )返回,
- 因此大部分系統(tǒng)都會用到session機制來實現(xiàn)鑒權(quán)。Session保存數(shù)據(jù)方式也是以key-value的形式。
38、什么是token?
- 所謂token其實就是服務(wù)器端返回的一個字符串(有點類似于: xys73494954sdhcdr83435這么一串),這個數(shù)據(jù)是基于什么算法生成的需要找開發(fā)確認,一般這個數(shù)據(jù)是唯一的,服務(wù)器每次返回的token都會不一樣。
Token之所以可以用來做鑒權(quán),原理如下:
- 用戶 a 調(diào)用了登錄接口 —》登錄了系統(tǒng)b —》服務(wù)器端生成了一個唯一的 token 信息(假設(shè)為c) ,
- 然后會拿用戶的編號id(假設(shè)為d)做了一個映射:c - d,
- 然后將這樣的映射關(guān)系存到數(shù)據(jù)庫或 redis 等緩存中,
- 然后再返回這個token給客戶端 —》客戶端再調(diào)用其他需要鑒權(quán)的接口時,
- 只需要將緩存起來的這個token帶過去驗證 --》服務(wù)器根據(jù)此token檢查是否有登錄用戶信息來判斷此請求是否是一個已登錄授權(quán)的用戶。( 這里客戶端怎么取到這個token ,怎么存,再次請求時怎么帶過去,上面接口鑒權(quán)部分已解釋)。
39、你做接口自動化,項目用的是什么數(shù)據(jù)庫,用什么來操作的這個數(shù)據(jù)庫
- Mysql ,可以通過jdbc來實現(xiàn)數(shù)據(jù)庫的增刪查改等操作。
40、你用過單元測試框架嗎,是什么框架,有哪些常用注解
- 用過, junit (不熟的話就可以不用說) , testng ,這些測試框架都支持我們?nèi)ザx測試套件,達到管理我們測試用例代碼的作用,同時這些測試框架提供的一些豐富注解不僅能很方便的控制測試用例的執(zhí)行順序來控制整個測試流程,還能為各種測試場景的實現(xiàn)提供支撐。
常用注解:
- @Test ,用來標記測試方法
- @BeforeSuite ,適合套件的全局初始化,在整個套件執(zhí)行前先執(zhí)行
- @BeforeTest ,適合Test測試集的初始化,在測試集執(zhí)行前先執(zhí)行
- @BeforeClass ,適合Class測試類的初始化,在測試類被調(diào)用時執(zhí)行
- @BeforeMethod ,適合測試方法執(zhí)行前的初始化,在測試方法前先執(zhí)行
- @After… ,對比上面的來回答, 執(zhí)行順序跟上面的剛好相反,作用適合做一些回收資源。
- @Parameters :參數(shù)化注解,方便實現(xiàn)參數(shù)化
- @DataProvider :數(shù)據(jù)提供者,可以用來提供測試用的批量測試數(shù)據(jù)
41、說說你對接口的理解
- 接口是服務(wù),是功能點實現(xiàn),是數(shù)據(jù)傳遞的通道,也是服務(wù)器端的一個實現(xiàn)了某種協(xié)議(比如http協(xié)議… )和映射機制(當(dāng)訪問一個urlI時就會通過服務(wù)器端的映射處理機制解析后,落到對應(yīng)的處理函數(shù))的函數(shù),接口參數(shù)就是函數(shù)的參數(shù),接口的響應(yīng)數(shù)據(jù)就是函數(shù)的返回值。
41、做過接口測試嗎,有哪些熟悉的工具。
- 做過(即時你之前沒有用過可視化工具做過接口測試,但你現(xiàn)在學(xué)了接口自動化測試就算有經(jīng)驗了)。
熟悉的工具:
- 可視化工具比如: jmeter,postman , soapui等(用過哪些說哪些)
- 代碼: httpclient發(fā)包技術(shù)來實現(xiàn)接口測試。
42、工具已經(jīng)可以完成自動化測試了,為啥還要用到代碼去完成?
- 工具做自動化測試依賴和局限性和強,有些工具提供了斷言方法和表達式,但是上手成本高,而且已經(jīng)提供的現(xiàn)有的斷言表達式可能無法滿足某些特殊規(guī)則的數(shù)據(jù)驗證,而代碼的話就相當(dāng)靈活更多,斷言方式可以隨便按照自己的想法去設(shè)計。
43、請簡單說一說get、post這 兩種請求方法的區(qū)別?
Get :
- a. 一般對于從服務(wù)器取數(shù)據(jù)的請求可以設(shè)置為get方式
- b.Get方式在傳遞參數(shù)的時候,一般都會把參數(shù)直接拼接在url上(例如:http://xxx?id=1&type=2 )
- c.Get請求方法可以傳遞的參數(shù)數(shù)據(jù)量是有限的(因為一般參數(shù)是拼接在url上,而瀏覽器對于url的長度是有限制的)
- d.Get請求因為是直接將數(shù)據(jù)拼接在url上,所以安全性不如post強(相對) , 但是get的執(zhí)行效率要快于post
Post :
- a.一般往服務(wù)器提交數(shù)據(jù)的請求會設(shè)置為post方式
- b.Post方式傳遞參數(shù)一般都會把參數(shù)放在請求體,而不會拼接在url
- c.Post請求方法可以提交的數(shù)據(jù)量不受限制
- d.Post請求傳參相對于get要安全(相對不是絕對) , 但是post的執(zhí)行效率不如get。
44、簡述你所知道的延時等待方式
強制等待:
- 也叫線程等待, 通過線程休眠的方式完成的等待,如等待5秒: Thread sleep(5000),
隱式等待:
- 通過implicitly Wait完成的延時等待,注意這種是針對全局設(shè)置的等待,如設(shè)置超時時間為10秒,使用了implicitlyWait后,如果第一次沒有找到元素,會在10秒之內(nèi)不斷循環(huán)去找元素,如果超過10秒還沒有找到,則拋出異常
顯式等待:
- 也稱為智能等待,針對指定元素定位指定等待時間,在指定時間范圍內(nèi)進行元素查找,找到元素則直接返回,如果在超時還沒有找到元素,則拋出異常
45、輸出結(jié)果是什么?
def f(x, l=[]):for i in range(x):l.append(i * i)print(l) f(2) f(3, [3, 2, 1]) f(3)結(jié)果: [0] [0, 1] [3, 2, 1, 0] [3, 2, 1, 0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0] [0, 1, 0, 1] [0, 1, 0, 1, 4]46、你是怎么做接口自動化的?
- 參考答案:會根據(jù)接口文檔設(shè)計接口用例,然后利用 python 的 requests 庫實現(xiàn)接口請求,利用excel來管理測試數(shù)據(jù)。并在代碼當(dāng)中利用 unittest 測試框架實現(xiàn)接口用例的斷言處理。
47、如何用webdriver進行鼠標右鍵點擊操作?
使用ActionChains類
ac= ActionChains(driver);
ac.context _click(元素對象).perform()
48、你在寫自動化框架的時候,測試用例保存到哪里?用什么去讀取?
- 測試用例保存到Excel中,使用第三方庫openpyxI完成對Excel的操作
49、用python寫一段代碼,計算1-1000以內(nèi)能被7整除,除以5余3的整數(shù),并按行打印
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' for i in range(1, 1000):if i % 7 == 0 and i % 5 ==3:print(i)執(zhí)行結(jié)果: 28 63 98 133 168 ........50、小明有一百元,他想買一百本書,英語書5元一本,數(shù)學(xué)書3元一本,語文書0.5元一本,請問他有多少種買法。請編程解決這個問題,可以使用任何編程語言,包括偽語言。
根據(jù)題意是要買一百本書,一百塊錢,看有多少種買法(錢不一定非要花完 ,只要能買到一百本書) :
三本書的價格分別為: 5,3,0.5,那么能買到最多的數(shù)學(xué)書為20本,英語書33本,語文書200本。但是也有組合的買法,所以可以通過一個三重for循環(huán)來實現(xiàn), ijk分別代表購買數(shù)學(xué),英語,語文書的數(shù)量,循環(huán)條件分別是i<=20,j<=33,k<=200,那么只要滿足 i+j+k == 100,5i+3j+0.5*k<= 100即可。最后統(tǒng)計所有的組合就是買法的數(shù)量。
n = 0 for i in range(21):for j in range(34):for k in range(201):if 5 * i + 3 * j + k * 0.5 <= 100 and i + j + k == 100:n += 1 print(n)51、使用monkey測試到了bug怎么提交的?
- monkey對APP進行我們在測試的時候,會利用adb shell monkey-p包名-f腳本-V-V -v >D:log.txt把日志輸出到本地,并且將出現(xiàn)錯誤時候的日志截圖,把日志截圖以及bug描述提交到禪道,指派給對應(yīng)的開發(fā)。但是在提交bug之前會手動去重現(xiàn)下這個bug。
52、在一個HTML頁面中想要創(chuàng)建超鏈接, 有哪種實現(xiàn)方法?
- 超鏈接:<a href="網(wǎng)址”target=". blank">內(nèi)容</a>
- target="_ blank"為新窗口打開。
- JS跳轉(zhuǎn)鏈接:<a href="#" onclick="javascript:location.href='網(wǎng)址";">內(nèi)容</a>
- meta 標簽跳轉(zhuǎn)鏈接:<meta http-equiv="refresh" content="3;URL =網(wǎng)址">
- (數(shù)字3為秒)
53、下面哪些關(guān)于自動化測試的說法是錯誤的: (ABCD )
A、自動化測試可以完全取代手工測試
B、自動化測試可以大幅度減少測試團隊的工作量
C、性能測試不能自動化
D、自動化測試能夠發(fā)現(xiàn)大量的新缺陷
Python中自定義的函數(shù)如何傳遞動態(tài)參數(shù)?
- 參數(shù)使用args或者*kwargs*
55、什么是lambda函數(shù)?它有什么好處?
- lambda函數(shù):沒有函數(shù)名稱,是匿名函數(shù)。
- 好處:只做簡單運算,接收任何多參數(shù)并返回值,沒有復(fù)雜的函數(shù)體。可以作為回調(diào)函數(shù),傳遞給某些應(yīng)用,比如消息處理.
56、Python語言中子類如何調(diào)用父類的構(gòu)造函數(shù)?
- 如果子類沒有定義構(gòu)造函數(shù),則子類默認會調(diào)用父類的構(gòu)造函數(shù);
- 如果子類定義了構(gòu)造函數(shù),那么在子類的構(gòu)造函數(shù)中,調(diào)用父類的構(gòu)造函數(shù): python3中,使用super()._ init _()
57、已知L = [“a”, “b”, “c”, “d”, “e”, “f”, “g”],則L[3]的值是_ L[::5]的值是__L[::2]值是_
L = ["a", "b", "c", "d", "e", "F", "g"]print(L[3]) print(L[::5]) print(L[::2])執(zhí)行結(jié)果: d ['a', 'F'] ['a', 'c', 'e', 'g']58、已知列表x=[1, 2],那么表達式 list(enumerate(x)) 的值
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' x = [1, 2] a1 = list(enumerate(x)) print(a1) # 執(zhí)行結(jié)果:[(0, 1), (1, 2)]59、查看變量類型的python內(nèi)置函數(shù)是 type
60、查看變量內(nèi)存地址的python函數(shù)是 id
61、表達式sum(range(1, 10, 2)) 的值為25
print(sum(range(1, 10, 2))) # 各兩位取一個之和:1,3,5,7,9 # 執(zhí)行結(jié)果:2562、Python的有序序列是:列表、元祖、字符
小飛飛買好多瓶子,每對瓶子上會有一個相同的數(shù)字。小飛飛數(shù)了一遍自己的瓶子發(fā)現(xiàn)瓶子的個數(shù)是奇數(shù)N ,也就是有-個沒有配對的瓶子。現(xiàn)在小飛飛要去再拿一個新瓶子,請問他給新瓶子要標幾號才能讓所有瓶子都有配對的。比如說他有七個瓶子( N=7 ),那么標號可以是:1,6,13,1,6,13,13
那么新瓶子就要標記為13,加入后就有(1,1),(6,6),(13,13),(13,13 )這4對
輸入:測試數(shù)據(jù)的第一行一個正整數(shù) N (1<=N<=1000 )表示有N個數(shù), N保證是奇數(shù),第二行N個自然數(shù),每個數(shù)都小于10^9
輸出:輸出一行一個整數(shù),新瓶子的號碼
樣例:
- 輸入:
- 9
- 121233441
- 輸出:1
63、用python寫一個函數(shù),將一個字符串中給定的子串字符按從小到大的輸出,第一個字符的位置為0
- 如: myOrder( abejykhsesm’,2,5)
- 輸出: ehjky
64、對輸入的整數(shù)數(shù)組,輸出數(shù)組元素中的最大值、最大值的個數(shù)、最小值和最小值的個數(shù)
函數(shù)名稱: max_ and_ min(list)
輸入?yún)?shù): list整數(shù)數(shù)組
輸出: list整數(shù)數(shù)組,有四個值,分別表示最大值、最大值的個數(shù)、最小值和最小值的個數(shù)
- 示例: max and. min([1,4,21,5,6,1,1]) => [21,1,1,3]
- max_ and. min(1]) => [1,1,1,1]
65、字符串右補齊,根據(jù)len長度補齊str到src中
函數(shù)名稱: rpad(src,len,str)
輸入?yún)?shù)::src原字符串, len目標字符串長度, str用來填充的字符串
輸出:補齊后的字符串
示例:
- rpad (“abcd”,10,“12”) =>“abcd121212”
- rpad (“abcd”,11,“12”) =>“abcd1212121”
- rpad (“abcd”,10,“12”) =>"abcd121212”
- rpad (“abd”,12,“0”) =>*"bd0000000”
- rpad (“abcd”,12,") =>"abcd
66、基于Web端呈現(xiàn)的產(chǎn)品可以如何做自動化測試,談?wù)勀愕乃悸泛头较颉?/h3>
參考:
- web端的自動化測試,基本就是模擬手工測試人員來做功能測試。
- 用機器的自動執(zhí)行代替人的操作。
- web端呈現(xiàn)的產(chǎn)品有兩個方向可以做自動化測試:接口層和界面操作層,且接口層自動化的比例要高于界面操作層。
- 并且主要對產(chǎn)品穩(wěn)定的功能進行自動化測試,主要用于產(chǎn)品的核心功能冒煙測試、回歸測試。
- 從系統(tǒng)最最核心的功能開始做,再根據(jù)情況慢慢鋪開。
67、請描述實現(xiàn)用戶登陸模擬自動化測試的思路
參考:
基于用戶登陸的自動化測試思路:
- 使用 python+selenium 框架來編寫登陸的所有測試用例,
- 使用unittest框架來組織測試用例。
- 使用Htmltestrunner來形成html版的測試報告,并使用郵件模塊來發(fā)送測試報告給項目組相關(guān)人員。
結(jié)尾給大家推薦一個非常好的學(xué)習(xí)教程,希望對你學(xué)習(xí)Python有幫助!
Python基礎(chǔ)入門教程推薦:更多Python視頻教程-關(guān)注B站:Python學(xué)習(xí)者
【Python教程】全網(wǎng)最容易聽懂的1000集python系統(tǒng)學(xué)習(xí)教程(答疑在最后四期,滿滿干貨)
Python爬蟲案例教程推薦:更多Python視頻教程-關(guān)注B站:Python學(xué)習(xí)者
2021年P(guān)ython最新最全100個爬蟲完整案例教程,數(shù)據(jù)分析,數(shù)據(jù)可視化,記得收藏哦
總結(jié)
以上是生活随笔為你收集整理的67道 Python自动化面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 中set集合类型(去重、成
- 下一篇: Python 必背的42个常见单词,看看