面試題:
1、一張類似支付寶的掃碼支付頁面(商家掃我的),問怎么進行功能測試
------我大致說了下 UI界面測試、掃面二維碼/條形碼跳轉的頁面、選擇的支付方式、支付成功與否、支付金額等,不太全,網上也沒有找到類似的答案,大家有建議的可以回復一下
2、針對第1題中的頁面,用戶反饋點擊支付進入此頁面經常出現白屏,反應慢,怎么進行性能測試
------這個不太會,只回答說可能是APP響應慢、手機卡頓,可以找對應的接口測試一下
3、針對第1題中的頁面,需求規定可以同時支持1萬人支付,實際只能支持1千人支付,怎么進行壓力測試
------這個我是打算用jmeter工具,針對此付款接口進行壓力測試,通過聚合報告/圖形結果的數據,得出能支持的線程數(並發數),然后與開發、運維、產品等人員討論進行性能優化
補充:進行壓力測試時,測試環境的配置與生產環境的有差異,可以通過折算的方式,比如測試環境的配置只有1/5,那根據生產環境的活躍量、要求的TPS等,折算后到測試環境的並發數、TPS數據等,沒有發生失敗事務基本就算測試通過了
指標:並發數、平均響應時間(Average)、90%以下的時間(90%Line)、錯誤率(Error%)、TPS(Throughput)
備注:90%Line,是指90%的請求的響應時間都低於這個值
4、請設計一個高效算法,再給定的字符串數組中,找到包含"Coder"的字符串(不區分大小寫),並將其作為一個新的數組返回。結果字符串的順序按照"Coder"出現的次數遞減排列,若兩個串中"Coder"出現的次數相同,則保持他們在原數組中的位置關系。
給定一個字符串數組A和它的大小n,請返回結果數組。保證原數組大小小於等於300,其中每個串的長度小於等於200。同時保證一定存在包含coder的字符串。
測試樣例:
["i am a coder","Coder Coder","Code"],3
返回:["Coder Coder","i am a coder"]
python 實現:
我分開寫了兩個函數,也可以合並在一個函數,而且可以簡化,大家自己優化吧;另外最后一個要求每個串的長度小於等於200的沒有實現
def find_code(a,t): ''' :param a: 是給定的列表 :param t: 是給定的子字符串 :return: ''' dict_b = {} for item in a: item = item.lower() #因為不區分大小寫,所以直接變成小寫字母進行對比 #print(item) if t in item: #print(item) m = item.count(t) #item.count(t) 是查詢t在item中出現的個數 dict_b[m] = item print("包含code的元素:",dict_b) return dict_b def paixu(b): ''' :param b: 是個字典,並且key是數字 :return: ''' list_b =[] list_key=list(b) #取字典中的key值組成列表 print(list_key) for i in range(0,len(list_key)): #key列表中進行排序 for j in range(i,len(list_key)): if list_key[i] < list_key[j]: #使用<就是從大到小排序,使用>就是從小到大排序 temp = list_key[i] list_key[i] = list_key[j] list_key[j] = temp print(list_key) for k in list_key: #key已經排好序了,直接把相應的values插入列表 list_b.append(b[k]) print(list_b) if __name__ == '__main__': list_a = ["i am a coder","Coder Coder","Code"] t = "coder" dict_b = find_code(list_a,t) print() paixu(dict_b)