給個MySQL,打算怎麼測試?

給個MySQL,打算怎麼測試?

在很久很久以前,測試工程師面試是這樣開始的:

“給你個杯子,你打算怎麼測試?”

“我會如此… 這樣… 然後… 接下來… 最後… ”


光陰似箭日月如梭,到了0202年,杯子已經被無數測試小姐姐測試,基本已經不能喝水了…


於是,測試工程師測試升級了。

給你個數據,比如MySQL,你打算怎麼測試…

言歸正傳!

正經的MySQL測試是這樣的——使用官方提供的測試套件


給個MySQL,打算怎麼測試?


MySQL的Unix源代碼包和二進制發行版中一般包含有MySQL測試套件(Test Suite)。允許用戶和開發人員對MySQL代碼執行測試。

這些測試可以在Unix/Linux上運行。


如果代碼能力足夠強,可以自己寫測試腳本,放進MySQL的測試套件裡測試。具體可以參考:https://dev.mysql.com/doc/index-other.html


當前的MySQL測試用例集並沒有測試MySQL中的所有內容,但是它應該捕獲SQL處理代碼、操作系統或庫問題中最明顯的錯誤,並且在測試複製方面非常徹底。

MySQL開發者大神們的目標是讓測試覆蓋100%的代碼。


給個MySQL,打算怎麼測試?


所以,MySQL大神們表示:歡迎對各位帥哥、美女為MySQL的測試套件繼續做貢獻。

換言之,只要提交測試用例,被收錄了,那就是妥妥地參與了開源事業!基本堪比github上項目被幾百顆星。

簡歷裡絕對晃眼的亮點!


測試系統由測試語言解釋器(mysql test)、運行所有測試的Perl腳本(mysql test run.pl)、用特殊測試語言編寫的實際測試用例及其預期結果組成。

注:Perl是一種古老開發語言,除了寫出來程序可讀性灰常不友好,其它沒什麼大毛病啦~


下面舉的例子,測試在Linux/Unix系統進行

若要在生成後在系統上運行測試套件,請鍵入make test from the source root directory,或將位置更改為mysql test directory,然後鍵入 ./mysql-test-run.pl。

如果已安裝二進制發行版,請將位置更改為安裝根目錄下的mysql test目錄(例如/usr/local/mysql/mysql-test),然後運行./mysql-test-run.pl。


所有測試都應該成功。如果沒有,請嘗試找出原因並報告問題到MySQL官網的bug管理裡面。大概率情況是:它表明MySQL中存在錯誤。

給MySQL報bug地址:

https://dev.mysql.com/doc/refman/5.7/en/bug-reports.html


如果測試有case不通過,而我們只想看看過程。那麼啟動“霸道總裁”模式,加上—force參數。

mysql-test-run.pl --force


默認情況下,mysql-test用的9306或者9307端口。

所以,即使有MySQL正在運行,也沒大礙。

如果碰到端口被佔用的情況,改別的端口好了。

具體做法是修改環境變量:

MTR_BUILD_THREAD


舉個栗子:

Shell > export MTR_BUILD_THREAD=31

Shell > ./mysql-test_run.pl xxx


具體的MySQL測試用例推薦風格,請參考:

https://dwz.cn/gRXuiDys


作  者:Testfan Arthur
出  處:微信公眾號:自動化軟件測試平臺
版權說明:歡迎轉載,但必須註明出處,並在文章頁面明顯位置給出文章鏈接



分享到:


相關文章: