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