測(cè)試人生 | 疫情之下工資翻了2倍多,這4個(gè)月學(xué)習(xí)比工作8年學(xué)到的還多
本文為霍格沃茲測(cè)試開發(fā)學(xué)社優(yōu)秀學(xué)員跳槽筆記,測(cè)試開發(fā)進(jìn)階學(xué)習(xí)文末加群。
本人畢業(yè)后懵懂的加入了軟件測(cè)試這個(gè)行業(yè),前 3 年是在做外包項(xiàng)目,后來跳槽到甲方干了 5 年,在去年突然發(fā)現(xiàn)我已經(jīng)干了 8 年功能測(cè)試了。
在這8年里,我成為一名寶媽,有娃之后明顯感覺精力不夠用加不動(dòng)班了。為了自己不被行業(yè)淘汰,為了給孩子做一個(gè)榜樣,經(jīng)過深思熟慮后,為了專心學(xué)習(xí)裸辭報(bào)名了霍格沃茲測(cè)試開發(fā)學(xué)社課程。
在4個(gè)月的學(xué)習(xí)后**,我順利拿下某企業(yè)測(cè)試開發(fā)崗位 Offer,年薪 30W+,**?實(shí)現(xiàn)了工資翻了兩倍多!這里特別感謝各位老師和同學(xué)的幫助,也分享下自己的一點(diǎn)學(xué)習(xí)心得和成長經(jīng)驗(yàn)。
https://qrcode.ceba.ceshiren.com/link?name=zhihu_xueqi&project_id=qrcode&author=xueqi
在霍格沃茲,學(xué)習(xí)是件快樂的事情
有了學(xué)習(xí)的想法后,就在網(wǎng)上看了很多培訓(xùn)機(jī)構(gòu)的測(cè)試課程,也分別試聽過。最滿意霍格沃茲測(cè)試開發(fā)學(xué)社的《測(cè)試開發(fā)實(shí)戰(zhàn)進(jìn)階》課程,課程內(nèi)容很系統(tǒng),與自己想學(xué)的很接近。
一開始因?yàn)閮r(jià)格原因沒有報(bào)名,只是加了助教好友,蹭了很多免費(fèi)公開課。聽公開課時(shí)驚喜的發(fā)現(xiàn),公開課內(nèi)容對(duì)于現(xiàn)在的工作有很大幫助,尤其是測(cè)試思路。
我之所以下定決心報(bào)名,是因?yàn)槲以谡衅妇W(wǎng)站上查看測(cè)試開發(fā)工程師的職位要求,發(fā)現(xiàn)霍格沃茲測(cè)試開發(fā)學(xué)社的課程體系全部覆蓋到了。這讓我確定了測(cè)試技術(shù)的發(fā)展方向,也讓我對(duì)正式課程有了很大期待,于是很痛快的報(bào)名了測(cè)試開發(fā)課程。
真的很感謝霍格沃茲的導(dǎo)師和測(cè)試開發(fā)班的各位同學(xué)。在學(xué)社學(xué)習(xí)的 4 個(gè)多月時(shí)間里,真的學(xué)到了非常多干貨知識(shí),我也第一次體會(huì)到了有專業(yè)班主任老師帶著學(xué)習(xí)并及時(shí)督導(dǎo)的優(yōu)勢(shì)。
在學(xué)員群里,有問題隨時(shí)可以 @導(dǎo)師,回復(fù)非常迅速。有時(shí)問題剛剛發(fā)到學(xué)員群里,群里的一堆大佬們,根據(jù)自己過往的經(jīng)驗(yàn)就給出解決方案,讓自己少走了很多彎路。學(xué)員群里看各位同學(xué)分享平時(shí)的工作心得,面試經(jīng)驗(yàn)等,都會(huì)有很大的啟發(fā)。
更讓我想不到的是,課程內(nèi)容一直在更新,至今還在加課,第一次遇見這么良心的培訓(xùn)班~~課程學(xué)習(xí)過程中如果沒有及時(shí)參與直播課程,后期可以跟著直播回放自己學(xué)習(xí),并且可以按照自己的需要調(diào)整倍速。此處重點(diǎn)給大家一個(gè)忠告(僅適用于有家庭負(fù)擔(dān)的人),雖然不能每周都做到參加直播課程的學(xué)習(xí),但一定要跟著思路做好自己的當(dāng)堂練習(xí),做到雖然進(jìn)度落后但也不能缺失質(zhì)量。
除了課程內(nèi)容非常優(yōu)質(zhì)之外,學(xué)院還有各種活動(dòng)讓大家邊玩邊學(xué)。例如:知識(shí)分享、答疑區(qū)、金羽毛獎(jiǎng)、競選學(xué)習(xí)委員(以教促學(xué))等等,都很有意思。
面試真題(附作者答題思路)
**以下分享我個(gè)人的學(xué)習(xí)心得和面試經(jīng)驗(yàn)。**主要是關(guān)于接口,UI 自動(dòng)化測(cè)試框架實(shí)戰(zhàn)方面的技能。以上是我在面試過程中,被問到的一些問題以及我的個(gè)人答題思路,僅供參考。可能有些問題回答的不是很全面,也歡迎大家留言交流探討。
關(guān)于 Python 學(xué)習(xí)
深淺拷貝
各數(shù)據(jù)結(jié)構(gòu)特點(diǎn)、區(qū)別
垃圾回收機(jī)制
Python 緩沖池
裝飾器原理與實(shí)現(xiàn)
線程,進(jìn)程,協(xié)程區(qū)別、實(shí)現(xiàn)
迭代器與生成器等
關(guān)于接口自動(dòng)化
其實(shí)很多時(shí)候,企業(yè)不是僅限于滿足斷言接口狀態(tài)響應(yīng)碼,部分字段等。對(duì)于編寫速度,穩(wěn)定性,數(shù)據(jù)真實(shí)性也是有很多的要求
對(duì)于速度,我們可以通過 mustache 模板技術(shù)生成測(cè)試用例,可以通過 Charles 生成的 chls 文件進(jìn)行部分處理生成 JSON 或者 YAML 文件
對(duì)于穩(wěn)定性,可以通過在設(shè)計(jì)階段,生成對(duì)應(yīng)接口正確的 jsonschema 進(jìn)行對(duì)比
對(duì)于數(shù)據(jù)真實(shí)性,可以通過 mitmproxy,讓流量走特定接口,直接生成線上數(shù)據(jù),模擬真實(shí)用戶請(qǐng)求
接口測(cè)試如何設(shè)計(jì)測(cè)試用例?
接口測(cè)試一般考慮入?yún)⑿问降淖兓徒涌诘臉I(yè)務(wù)邏輯,一般設(shè)計(jì)接口測(cè)試用例采用等價(jià)類、邊界值、場景法居多!
接口測(cè)試設(shè)計(jì)測(cè)試用例的思路如下:
1.接口業(yè)務(wù)邏輯測(cè)試:
接口邏輯測(cè)試是指根據(jù)業(yè)務(wù)邏輯、輸入?yún)?shù)、輸出值的描述,對(duì)正常輸入情況下所得的輸出值是否正確的測(cè)試,也就是測(cè)試對(duì)外提供的接口服務(wù)是否正常工作。
2.模塊接口測(cè)試:
模塊接口測(cè)試是為了保證數(shù)據(jù)的安全及程序在異常情況下的邏輯的正確性而進(jìn)行的測(cè)試。
模塊接口測(cè)試的主要包括以下幾個(gè)方面:
鑒權(quán)碼token異常(鑒權(quán)碼為空<沒有鑒權(quán)碼>,錯(cuò)誤的鑒權(quán)碼,過期的鑒權(quán)碼)
其他參數(shù)異常
錯(cuò)誤碼異常覆蓋
接口測(cè)試其他的關(guān)注點(diǎn)
接口有翻頁時(shí),頁碼與頁數(shù)的異常值測(cè)試
數(shù)據(jù)庫的增刪改查,比如一個(gè)post接口操作完成后,通過列表頁接口看下新的數(shù)據(jù)是否和剛才的post一致
接口返回的圖片地址能否打開,圖片尺寸是否符合需求
當(dāng)輸出參數(shù)有聯(lián)動(dòng)性時(shí),需要校驗(yàn)返回兩參數(shù)的實(shí)際結(jié)果是否都符合需求。
所有列表頁接口必須考慮排序值
所有功能都要考慮兼容舊版本
Pytest 測(cè)試框架
Pytest 是最流行的 Python 自動(dòng)化測(cè)試框架,需要重點(diǎn)掌握
UI 自動(dòng)化測(cè)試
除了學(xué)院教授的 PO 思想,簡單完成頁面封裝后。我們要去增加用例,只有用例數(shù)足夠多的時(shí)候,才能發(fā)現(xiàn)還需要處理在多個(gè) py 文件中管理用例順序,合理 driver 調(diào)度等一系列問題。也可以去增加相關(guān)的日志,報(bào)告模塊的封裝,將部分 JS 處理同步集成到 Basepage 模塊中等一系列的系統(tǒng)操作,SeleniumGrid 的集成等等。
UI 自動(dòng)化擴(kuò)展:
增加 log 存儲(chǔ),Allure 報(bào)告存儲(chǔ)(此處的 Allure 必須要結(jié)合趨勢(shì)圖,例如這一次生成報(bào)告后,你需要保存 result 中的 history 文件,等下一次生成時(shí),覆蓋到 report 中的 histroy 中),seleniumgrid 的執(zhí)行命令,使用 pytest.ini 進(jìn)行定制,使用pytest鉤子函數(shù)定制,使用 pytest-xdist 進(jìn)行并發(fā)用例等)。
對(duì)于自動(dòng)化測(cè)試原理
重點(diǎn)掌握 Selenium 自動(dòng)化原理,接口 Requests 原理,接口 Mitmproxy 代理原理(中間人攻擊),Appium 自動(dòng)化測(cè)試原理;
關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)
(?1?)網(wǎng)絡(luò)七層模型,?TCP/IP?模型
(2)UDP 與 TCP 區(qū)別
TCP 有連接;UDP 無連接(基于無狀態(tài)傳輸)
TCP 需要建立三次握手,含有確認(rèn)、擁塞、重傳機(jī)制,對(duì)系統(tǒng)資源要求多
UDP 不需要一系列復(fù)雜認(rèn)證,速度快;TCP 速度慢
TCP 含有確認(rèn)機(jī)制,數(shù)據(jù)可靠,有序;UDP 不可靠,無序
TCP 面向字節(jié)流(流模式);UDP 面向報(bào)文(數(shù)據(jù)報(bào)模式)
(3)HTTP 與 HTTPS 區(qū)別
http是超文本傳輸協(xié)議,信息是明文傳輸;https是具有安全性的ssl傳輸協(xié)議
http與https使用的是不同的連接方式,端口也一樣,http默認(rèn)端口是80;https默認(rèn)端口是443
http連接狀態(tài)比較簡單,是無狀態(tài)的;https協(xié)議是由ssl+http協(xié)議組成的可進(jìn)行傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議
(4)session、token、cookie 區(qū)別
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。而token是接口測(cè)試時(shí)的鑒權(quán)碼,一般情況下登陸后才可以獲取到token,然后在每次請(qǐng)求接口時(shí)需要帶上token參數(shù)
cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session,session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會(huì)比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面應(yīng)當(dāng)使用cookie
可以將登錄信息等重要信息存放為session;其他信息需要保存,可以放在cookie
(5)常見網(wǎng)絡(luò)狀態(tài)響應(yīng)碼
200 成功
30X 重定向
400 請(qǐng)求格式/語法錯(cuò)誤
401 權(quán)限
404 資源未找到
405 不允許的請(qǐng)求方式
5XX 服務(wù)端錯(cuò)誤:
50X 服務(wù)器內(nèi)部錯(cuò)誤
502錯(cuò)誤網(wǎng)關(guān)
503服務(wù)不可用 服務(wù)器超載或者停機(jī)
504網(wǎng)關(guān)超時(shí)
關(guān)于數(shù)據(jù)庫 MySQL
重點(diǎn)復(fù)習(xí)內(nèi)連接inner join,左鏈接left join ,右鏈接right join(要知道左右連接的區(qū)別),union,子查詢,排序order by,分組group by ,過濾having,去重distinct,事務(wù),索引類型、原理,存儲(chǔ)過程,慢 SQL,優(yōu)化等。
關(guān)于測(cè)試思維
面試時(shí)候面試官大部分會(huì)詢問你以往工作經(jīng)驗(yàn)中的整體項(xiàng)目生命周期流程,具體功能的系統(tǒng)流程,另外會(huì)讓你說出你是如何設(shè)計(jì)測(cè)試計(jì)劃、測(cè)試用例、測(cè)試報(bào)告。還有接口測(cè)試,項(xiàng)目中如何做的接口測(cè)試,接口測(cè)試流程。
給大家總結(jié)一個(gè)登錄的測(cè)試用例,需要考慮的層面有:功能測(cè)試、界面測(cè)試,性能測(cè)試,安全測(cè)試,易用性測(cè)試,兼容性測(cè)試,本地化測(cè)試。現(xiàn)用登錄界面來舉例如何設(shè)計(jì)測(cè)試用例
功能測(cè)試
輸入正確的用戶名和密碼,點(diǎn)擊提交按鈕,驗(yàn)證是否能正確登錄
輸入錯(cuò)誤的用戶名或者密碼,驗(yàn)證登錄會(huì)失敗,并且提示相應(yīng)的錯(cuò)誤信息
登錄成功后能否能否跳轉(zhuǎn)到正確的頁面
用戶名和密碼,長度
用戶名和密碼,特殊字符(比如空格)
登錄失敗后,不能記錄密碼的功能
用戶名和密碼前后有空格的處理
密碼是否非明文顯示,使用星號(hào)圓點(diǎn)等符號(hào)代替。
牽扯到驗(yàn)證碼的,還要考慮文字是否扭曲過度導(dǎo)致辨認(rèn)難度大,考慮顏色(色盲使用者),刷新或換一個(gè)按鈕是否好用
登錄頁面中的注冊(cè)、忘記密碼,登出用另一個(gè)帳號(hào)登陸等鏈接是否正確
什么都不輸入,點(diǎn)擊提交按鈕,檢查提示信息
界面測(cè)試
布局是否合理,testbox 和按鈕是否整齊
testbox和按鈕的長度,高度是否符合要求
界面的設(shè)計(jì)風(fēng)格是否與UI的設(shè)計(jì)風(fēng)格統(tǒng)一
界面中的文字簡潔易懂,沒有錯(cuò)別字
性能測(cè)試
打開登錄頁面,需要的時(shí)間是否在需求要求的時(shí)間內(nèi)
輸入正確的用戶名和密碼后,檢查登錄成功跳轉(zhuǎn)到新頁面的時(shí)間是否在需求要求的時(shí)間內(nèi)
模擬大量用戶同時(shí)登陸,檢查一定壓力下能否正常登陸跳轉(zhuǎn)
安全性測(cè)試
登錄成功后生成的Cookie,是否是httponly
用戶名和密碼是否通過加密的方式,發(fā)送給Web服務(wù)器。
用戶名和密碼的驗(yàn)證,服務(wù)器端驗(yàn)證,而不能前端javascript驗(yàn)證
用戶名和密碼的輸入框,屏蔽SQL注入攻擊
防止暴力破解,檢測(cè)是否有錯(cuò)誤登陸的次數(shù)限制
是否支持多用戶在同一機(jī)器上登錄
單點(diǎn)登錄or多機(jī)可登錄
易用性測(cè)試
是否可以全用鍵盤操作,是否有快捷鍵
輸入用戶名,密碼后按回車,是否可以登陸
輸入框能否可以以Tab鍵切換
兼容性測(cè)試
不同瀏覽器下能否顯示正常且功能正常
同種瀏覽器不同版本下能否顯示正常且功能正常
不同的平臺(tái)是否能正常工作,比如Windows、Mac
移動(dòng)設(shè)備上是否正常工作,比如iPhone、Andriod
不同的分辨率下顯示是否正常
本地化測(cè)試
不同語言環(huán)境下,頁面的顯示是否正確
關(guān)于Linux常用命令:
查看幫助文檔 :–help ls --help ,man 如man ls
空格鍵向下翻頁,回車鍵下一行,d 往前翻, 看完退出Q
ls查看文件,ls -a查看所有文件包含隱藏文件,前邊帶點(diǎn)的是隱藏文件,一個(gè)點(diǎn)是當(dāng)前目錄,兩個(gè)點(diǎn)是上級(jí)目錄,ls-l顯示文件詳細(xì)信息(簡寫方式ll),可以組合使用比如ls -al 顯示文件加詳細(xì)信息
cd h 按tab鍵自動(dòng)補(bǔ)全了變成cd hotwargs
顯示當(dāng)前目錄pwd
創(chuàng)建新目錄mkdir,創(chuàng)建多層目錄的新文件a/b/c -p,創(chuàng)建空文件touch touch 1.txt
查看文件里的具體內(nèi)容cat cat 1.txt
刪除文件 rm 1.txt,刪除目錄 rm -r加文件名,強(qiáng)有力的刪除,不管有沒有都不會(huì)報(bào)錯(cuò) rm -rf,rm -ri b 會(huì)詢問一下是否要?jiǎng)h除目錄b
cp ./1 ./feier 把1文件拷貝到feier目錄下 cp 源文件路徑加目標(biāo)文件路徑,拷貝當(dāng)前目錄下的a目錄拷貝到上一層目錄下的霍格沃茲 cp /a ./a …/hotwargs/ 加參數(shù)-a才能拷進(jìn)去
查找文件:find ./ -name 1.txt 查找當(dāng)前目錄下的1文件,./ -name ‘*.txt’ 查找當(dāng)前目錄下的所有txt文件
head -n 3顯示文件內(nèi)容的前3行信息
壓縮文件 tar -zcvf f.tar.gz 1.txt 2.txt,解壓文件 tar -xf f.tar.gz
du -sh 查看當(dāng)前目錄總大小,df -lh 查看磁盤使用
查看日志less或者view加文件名,查看控制臺(tái)日志tail-f加日志文件名
查看當(dāng)前系統(tǒng)都有哪些進(jìn)程:ps -aux 或者ps -elf
查看系統(tǒng)都開啟了哪些端口:netstat -lnp
殺死一個(gè)進(jìn)程:Kill -9 pid
怎么重啟 Linux 服務(wù)器:
shutdown -h now --立即關(guān)機(jī)
shutdown -h 10:53 --到10:53關(guān)機(jī),如果該時(shí)間小于當(dāng)前時(shí)間,則到隔天。
重點(diǎn)說明,由于時(shí)間原因個(gè)人不能完全學(xué)習(xí),推薦大家一定要盡力學(xué)完所有課程,個(gè)人認(rèn)為掌握越多,薪資越高,薪資跟自己的努力還是大大相關(guān)的。
面試測(cè)試開發(fā)的時(shí)候,大家也不需要太緊張,除了以往的測(cè)試經(jīng)驗(yàn)外,更多會(huì)考察你對(duì)開發(fā)方面的理解,對(duì)語言的熟悉程度,以及你站在測(cè)試開發(fā)方向,對(duì)軟件測(cè)試和質(zhì)量保障全局的一個(gè)理解。