【測試開發(fā)】刁鉆面試題真題解析

大廠刁鉆面試題,學(xué)習(xí)使我快樂。(持續(xù)更新)

1.現(xiàn)在有兩個杯子,一個能裝水 6L,一個能裝水 5L,不用其他杯子的情況下,怎么倒出 3L 的水?

https://github.com/t880216t/cupGame/

0. 初始狀態(tài)
A杯當(dāng)前水量:0L [      ]
B杯當(dāng)前水量:0L [     ]
------------------------------------------------------------------------------------------------------------
1. B加滿
A杯當(dāng)前水量:0L [      ]
B杯當(dāng)前水量:5L [#####]
------------------------------------------------------------------------------------------------------------
2. B倒入A
A杯當(dāng)前水量:5L [##### ]
B杯當(dāng)前水量:0L [     ]
------------------------------------------------------------------------------------------------------------
3. B再加滿
A杯當(dāng)前水量:5L [##### ]
B杯當(dāng)前水量:5L [#####]
------------------------------------------------------------------------------------------------------------
4. B倒入A,加滿A
A杯當(dāng)前水量:6L [######]
B杯當(dāng)前水量:4L [#### ]
------------------------------------------------------------------------------------------------------------
5. A清空,B倒入A
A杯當(dāng)前水量:4L [####  ]
B杯當(dāng)前水量:0L [     ]
------------------------------------------------------------------------------------------------------------
6.B倒?jié)M
A杯當(dāng)前水量:4L [####  ]
B杯當(dāng)前水量:5L [#####]
------------------------------------------------------------------------------------------------------------
7.B倒入A,加滿A
A杯當(dāng)前水量:6L [######]
B杯當(dāng)前水量:3L [###  ]
------------------------------------------------------------------------------------------------------------

2.get 與 post 區(qū)別

從面上看:

  • 最直接的區(qū)別,GET請求的參數(shù)是放在URL里的,POST請求參數(shù)是放在請求body里的;
  • GET請求的URL傳參有長度限制,而POST請求沒有長度限制;
  • GET請求的參數(shù)只能是ASCII碼,所以中文需要URL編碼,而POST請求傳參沒有這個限制;

本質(zhì)上看:

兩者沒有任何區(qū)別。他們都是HTTP協(xié)議中的請求方法。
底層實現(xiàn)都是基于TCP/IP協(xié)議。只是讓請求,更加有語義而已。
所以GET把參數(shù)body里,只要服務(wù)端去取,也是一樣的。
上述的所謂區(qū)別,只是瀏覽器廠家根據(jù)約定,做得限制而已。

3.網(wǎng)頁從輸入url到完整呈現(xiàn)出來都經(jīng)歷了哪幾個過程

  • 1:輸入網(wǎng)址;
  • 2:發(fā)送至DNS服務(wù)器,并獲取域名對應(yīng)的web服務(wù)器對應(yīng)的ip地址;
  • 3:與web服務(wù)器建立TCP連接;
  • 4:瀏覽器向web服務(wù)器發(fā)送http請求;
  • 5:web服務(wù)器響應(yīng)請求,并返回指定url的數(shù)據(jù);
  • 6:瀏覽器下載web服務(wù)器返回的數(shù)據(jù)及解析html源文件;
  • 7:生成DOM樹,解析css和js,渲染頁面,直至顯示完成;

4.有一只小青蛙,想要跳到最高的臺階上看風(fēng)景,由于臺階比較高,小青蛙每次只能跳一階或兩階,如果臺階一共有N階,請問小青蛙有多少種跳法?

可以自己畫張圖,先試試,隨著臺階數(shù)的遞增,得到的結(jié)果也遞增:1、2、3、5、8、13...,同樣的問題,還有兔子生兔子之類的。
這就是斐波那契數(shù)列了。
超過3階的套公式吧

 f(n) = f(n-1)+f(n-2)

用遞歸程序表達(dá)為:

def fib_rec(n):
    if not isinstance(n,int):
        return None
    elif n == 1 or n == 2:
        return n
    else:
        return fib_rec(n-1) + fib_rec(n-2)

但是這種遞歸可想而知,計算量是越來越大的。
可以用遞推方式來解決:

def fib_loop(n):
    a, b = 0, 1
    for i in range(n+1):
        res = a + b
        a = b
        b = res
    return a

5. appium的架構(gòu)及工作原理是什么?

appium本身是個標(biāo)準(zhǔn)的c/s架構(gòu)。
架構(gòu)圖如下:


appiumjiagouwps1.png

通過個簡單的圖來了解它的工作原理及流程:
一句描述為:appium client處理腳本后發(fā)送給appium server, server給設(shè)備的監(jiān)聽服務(wù)發(fā)送腳本里的操作,設(shè)備端調(diào)底層的自動化庫執(zhí)行相關(guān)的操作指令。


IMG_20190428_135558.jpg

6.簡述TCP連接流程及與UDP的區(qū)別

TCP是一種面向連接的、可靠的傳輸層通信協(xié)議。
保證了傳輸數(shù)據(jù)的完整性,適用于文件傳輸。如網(wǎng)頁請求。
UDP是一種無連接、不可靠的通信協(xié)議。
可以理解為一個廣播喇叭,只管自己說,不管別人聽到了多少、聽到?jīng)]有。用于實時視頻傳輸,直播等。

TCP建立連接過程

IMG_20190506_105144.jpg

TCP數(shù)據(jù)傳輸過程

IMG_20190506_105219.jpg

TCP斷開連接過程

IMG_20190506_105245.jpg

7.adb常用命令

設(shè)備數(shù)據(jù)獲取類

adb logcat > log.txt 獲取設(shè)備運(yùn)行日志并輸出到本地文件
adb shell dumpsys battery
adb shell dumpsys meminfo -s <pakagename | pid> 獲取指定包內(nèi)存數(shù)據(jù)
adb shell top -n 5 | grep <pakagename | pid> 獲取指定包CPU數(shù)據(jù)
adb shell dumpsys window windows | grep "mCurrentFocus" 獲取當(dāng)前窗口包名
adb shell pm list packages 獲取應(yīng)用中所有包名

工具輔助類

adb shell monkey -p <pakagename> <event-count> 對指定包執(zhí)行指定次數(shù)的混亂測試

無線調(diào)試手機(jī):

將 Android 設(shè)備與要運(yùn)行 adb 的電腦連接到同一個局域網(wǎng),比如連到同一個 WiFi。
adb tcpip 5555
adb connect <device-ip-address>:5555

管理包

adb install xxxxx.apk 安裝包
adb uninstall <pakagename> 卸載
adb shell pm clear <pakagename> 清除應(yīng)用緩存

截圖錄屏

adb shell screencap -p /sdcard/test.png 截圖應(yīng)用
adb shell screenrecord /sdcard/demo.mp4 錄屏設(shè)備默認(rèn)最大2分鐘
adb pull /sdcard/test.png test.png 取手機(jī)數(shù)據(jù)
adb push test.png /sdcard/test.png 發(fā)送數(shù)據(jù)到手機(jī)

自動化

adb shell input tap x y 點擊坐標(biāo)
adb shell input swipe x1 y1 x2 y2 直線滑動
adb shell input keyevent 82 系統(tǒng)自帶事件
adb shell input text 123456 輸入文本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容