python面試題2
阿新 • • 發佈:2020-10-12
python面試題2
前面寫了一篇關於面試測試遇到的一些python面試題,有部分朋友留言說挺不錯的,於是安靜又收集了一批面試題,供明年的金3銀4做準備(這次安靜會寫一批python的面試題和我們測試的面試題)
1、自動化流程是什麼?
首先搭建環境,然後根據專案搭建自動化框架,編寫自動化用例,整理用例,自動生成測試報告,然後整合到jenkins上進行操作
2、app出現ANR和crash如何操作?
出現ANR和crash進行復現抓取日誌(adb命令)
3、在自動化的過程中出現用例執行失敗,應該怎麼做?
編寫自動化用例的時候斷言編寫清楚,然後也可以通過用例失敗後進行截圖進行儲存,方便我們後續檢視用例失敗原因,自動化用例失敗後,進行手工操作,檢視是否真的存在問題,如果不存在,可以檢視程式碼是否書寫錯誤
4、在web和app中,一個元素明明定位到了,但是點選無效
- web自動化中我們可以通過JS進行點選元素,
- app自動化中如果是H5頁面的時候沒有辦法點選,我們需要用到webdriver中的觸控模組
- app自動化中如果點選無效,我們可以通過座標的方式進行模擬點選
5、app測試和web測試有什麼區別?
整體來說,web測試和app測試一般沒有區別,都需要進行需求評審,用例評審,提bug,提交測試報告。唯一區別的就是app測試需要進行安裝,下載,升級,覆蓋以及冷啟動和熱啟動,還有手機上的電話,電量不足,資訊,以及其他軟體的互動測試
6、自動化中如何截圖
通過函式get_screensho t_as_file(self,filename)進行截圖
7、目前測試都需要依賴登入,自動化中如何操作?
- 如果是介面自動化的話可以使用session進行保持會話,然後再執行登入後的操作
- 如果是web自動化的話可以進行定位輸入賬號密碼完成登入
- 如果是app自動化的話可以進行定位賬號密碼輸入完成登入
8、你在自動化中使用過資料驅動嗎?
一般使用ddt資料驅動來進行儲存資料,有時候也會使用paramunittest
9、有兩組資料分別為a=[1,2,3,4,5] b=[‘a’,'b','c','d','e'],通過python如何成c=['a1','b2','c3','d4','e5']
a=[1,2,3,4,5] b = ["a", "b", "c", "d", "e"] c = [str(i)+str(j) for i,j in zip(b, a)] print(c) 列印結果: ['a1', 'b2', 'c3', 'd4', 'e5']
10、通過python實現9乘9口訣
# 9*9口訣 for i in range(1,10): for j in range(1,i+1): print("%s*%s=%s"%(i,j,i*j),end=" ") print("") 輸出結果: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
11、通過python實現‘hello_world_anjing’變成[‘hello’,‘world’,‘anjing’]
a = 'hello_world_anjing' c = a.split('_') print(c) # 輸出結果: # ['hello', 'world', 'anjing']
12、一個列表通過python判斷有多少個正數和負數
a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8] b = [] c = [] for i in a: if i>0: b.append(i) elif i < 0: c.append(i) else: pass print(len(b)) print(len(c)) 執行結果: 5 4
13、通過python如何實現字串和列表的轉換
# 字串轉換列表 a = 'anjing' c = list(a) d = a.split(' ') print(d) # 列表轉換字串 a = ['1','2','3','4'] c =''.join(a) print(c)
14、列表去重
# 列表去重 a = ['1','2','3','4','2','1','4'] c = set(a) print(c) # {'2', '3', '1', '4'}
15、python中的__init__表示什麼
# 初始化函式,用來完成一些預設的設定 class test(): def __init__(self): self.name = 'anjing' self.age = '18' a = test() print('我的名字是:%s'%a.name) print('我的年齡是:%s'%a.age) 我的名字是:anjing 我的年齡是:18
16、對列表進行翻轉
# 列表進行翻轉 a = [1,2,3,4,5] print(a[::-1]) # [5, 4, 3, 2, 1]
17、loging模組是什麼?有什麼作用?
loging屬於日誌模組,在我們編寫指令碼的時候可以告訴我們每一步都在幹什麼,如果報錯的話,方便我們進行分析資料,也就是我們平常說的打點的作用
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/tmp/test.log', filemode='w') logging.debug('debug message') # 低級別的,除錯資訊 logging.info('info message') # 正常資訊 logging.warning('warning message') # 警告資訊 logging.error('error message') # 錯誤資訊 logging.critical('critical message') # 高級別的 # 嚴重錯誤資訊
18、append和extend的區別
# append a = [1,2,3,4,5] c = [6,7] a.append(c) print(a) # [1, 2, 3, 4, 5, [6, 7]] # extend a = [1,2,3,4,5] c = [6,7] a.extend(c) print(a) # [1, 2, 3, 4, 5, 6, 7]
19、通過程式碼介紹下zip函式用法
zip()函式在運算時,會以一個或者多個序列作為引數,返回一個元祖的列表,zip()引數口語接受任何型別的序列,通過也支援多個引數。
# 列表 a = [1,2] b = [3,4] c = [i for i in zip(a,b)] print(c) # [(1, 3), (2, 4)] # 元祖 a = (1,2) b= (3,4) c = [i for i in zip(a,b)] print(c) # [(1, 3), (2, 4)] # 字串 a = '12' b = '34' c = [i for i in zip(a,b)] print(c) # [(1, 3), (2, 4)]
20、如果一個3位數等於其各位數字的立方和,則稱這個數為水仙花數。求1000以內的水仙花數(3位數)
sxh = [] for i in range(100, 1000): s = 0 m = list(str(i)) for j in m: s += int(j)**len(m) if i == s: sxh.append(i) print("100-999的水仙花數:%s" % sxh) # 100-999的水仙花數:[153, 370, 370, 371, 407]