簡介
這里我們說的性能測試主要是應用的CPU和內存占有率,如果CPU和內存占用率過高,就會導致內存泄漏,導致應用發生崩潰,影響用戶的體驗
測試方法
首先,我們說下性能測試的方法,
1.通過手動點擊,不斷跳轉到一個界面
2.使用Monkey來進行穩定性測試
工具使用
1.通過手動點擊,不斷跳轉到一個界面。
監控工具:android studio 的 Profile
限制: 必須要有源碼
操作步驟如下:
1.點擊profile,安裝應用到測試機上
2. 點擊record開始記錄
3.查看圖形,如果在某一個界面出現異常升高,此時停止record.(profile可以分析MEMORY, CPU, NETWORK)
4. 通過目錄查找到你的應用的類
5. 通過分析Allocatinos,如果某一個類的數值過大,就是因為該內存沒有及時得到釋放,就在該類上找原因(一般是Activity)
2.使用Monkey來進行穩定性測試
分析工具:自己寫python代碼,通過循環查看CPU 和內存來進行分析。
內存:
def get_total_pss(): if os.path.exists('total.txt'): with open('total.txt','r+') as f2: res = f2.readlines() print(res) f2.seek(0) f2.truncate() with open('total.txt', 'at') as f1: f1.write('TOTAL:\n') package = "com.wangpos.by.cashier3" cmd = "adb shell dumpsys meminfo {}".format(package) total = "TOTAL" while is_execute: lines = os.popen(cmd).readlines() for line in lines: if total in line: # print(type(line)) total_result = [i for i in re.split(' ',line) if i !=''] print(total_result) with open('total.txt','at') as f: f.write(total_result[1]+'\n') sleep(5) return total_result[1]
輸出,寫入文件:
CPU:
def get_cpu(): package = "com.wangpos.by.cashier3" cmd = "adb shell top -m 10 -n 1 -s cpu" while True: lines = os.popen(cmd).readlines() print(lines) for line in lines: if package in line: result = [i for i in re.split(' ',line) if i !=''] with open('cpu.txt', 'at') as f: f.write(result[2]) print(float(result[2].strip('%'))) sleep(5) return float(result[2].strip('%'))
輸出,寫入文件: