前段時間公司招人,面了一個要20K的,一問自動化只會點皮毛···

前段時間公司要招2個自動化測試,同事面了幾十個候選人,發現了一個很奇怪的現象,面試的時候,如果問的是框架api、腳本編寫這些問題,基本上個個都能對答如流,等問到實際項目的時候,類似“怎么從0開始搭建自動化體系”“讓你來推廣自動化,你會怎么設計方案”這種問題時,很多人就開始避重就輕、含糊其辭。

跟同事討論了一下這個事,一致認為主要問題出現在,現在學習自動化的渠道太多了,很多自動化的基礎知識都能在公開的渠道學習,很多自動化的新手就把學到的這些技術名詞和術語往自己簡歷里搬,覺得好像自己已經完全掌握自動化了。

但事實上,“會自動化” ≠ “ 能做自動化

如果說沒有企業級的項目實操, 你就不可能清楚,怎么去拆解項目需求?怎么從0到1搭建自動化體系?還有自動化實施過程中的坑如何避開?

說來說去,還是對自動化實操的經驗太匱乏了,同時也沒有能夠參考的自動化測試流程規范。
做了幾年自動化測試,突然想就這個問題,總結一下自己以往的學習經歷,踩過的坑,做一些深入的探討。

拋開疑問,只做學術探討

這次我們拋開所有的疑惑,比如自動化測試到底有什么用?自動化真的能提升效率么?學了自動化能漲多少工資等等,以上的話題,我這次將不再論述,這幾個問題也是平時討論的比較多的問題。

針對以上的問題,我做一個總結,能漲工資,能多賺錢的技術,就值得我們去學!既然自動化現如今發展的這么火,自然有它存在的價值。

大部分手工測試想的無非是以下幾點問題:

1.自動化測試好學嗎?
2.不學/不寫代碼能做自動化測試嗎?
3.怎樣學習自動化測試?
4.學自動化測試要先學習哪個方向?學ui自動化?還是接口自動化?好像App自動化也比較火?要么再來個小程序自動化?
5.我沒有代碼基礎,工作都是點點點,要不要報培訓班?
6.我需要學習什么語言?java 還是 python?
…等等

我來針對以上的問題,說一些自己的看法:

首先,自動化測試,很好學!但是要記住,一定要明確學習的方向,不要劍走偏鋒,白花力氣。

第一,不寫代碼當然可以做自動化測試,但是個人建議還是學習一門語言,至于學習什么語言的話,很簡單,不用糾結,第一看你是否有編程基礎,沒有選py,有的話選java py都可

第二,需要看你們的開發用的什么語言,和開發用同一門語言能在學習自動化測試的同時,降低你和開發之間溝通的門檻,提升你在公司的話語權。

第三,學習哪個方向?我建議:web ui自動化=》接口自動化=》App自動化/小程序自動化,當然,著重學習接口自動化,ui自動化要學,但是沒太大必要深究。

第四,要不要報名培訓班?這個看你個人,如果你覺得自己學習理解能力很強,本身自己又很自律,同時學習的方向又很明確,那么你當然可以不報名培訓,多省點錢不香么?

假如你對自動化測試或者一些編程語言毫無理解,身邊又沒有能帶你學習的人,那么報名培訓絕對是一個快速提升的途徑。

蓋樓之前先打好地基,首先需要學習一門語言

在上面我們也提到了,自動化要想做得好,必須要學習至少一門語言。當然至于學習語言要到什么程度了?我不可能一直學下去吧?答案是,會用就行!

掌握大部分的語法基礎,已經能夠滿足你的自動化的日常需求了,因為我們寫腳本并沒有像開發那么難!

語言你需要學習,for循環,if判斷,數據類型,運算符,面向對象編程等等,不管是java還是python,這些都是需要的,其實也差不多,會一門語言,其他的都類似。

語言入門后,正式踏上開始自動化成神之路,入門篇Selenium
在這里插入圖片描述
selenium作為自動化的老祖宗,已經被玩爛了,基本上只要是做自動化的,無人不知無人不曉。為什么要先學習selenium?

它能幫助你快速理解,自動化到底是個什么東西,并且能直觀的在頁面上面反饋給你。咱當初也是,看著selenium的api,一點一點啃下來的,幾乎每個方法都去嘗試了一下。

selenium有1.0 2.0 3.0,建議你學習之前,先去了解以下它的歷史,u以及它的運行原理,這樣可以勾起你的學習興趣。你學習selenium,需要去安裝瀏覽器,強烈建議使用Chrome而不是FireFox,前者兼容的更好。

安裝好Chrome,你需要去安裝驅動,恭喜你,這時候你就會踩到自動化的第一個坑了!大部分原因還是因為你的驅動版本和瀏覽器版本對不上。等能訪問百度后,這里印象很深的su和kw(具體是什么等你學了就知道了)

你會再去嘗試各種selenium的方法,去操作瀏覽器,這時候仿佛打開了新世界的大門,奧!原來自動化測試是這么個東西!真神奇!

玩膩了Selenium

等你玩了幾天,或者幾個星期之后,你好像對Selenium提不起什么興趣了,腳本也寫的越來越6,能寫出一些線性的自動化腳本了,這個時候,有點驕傲自滿,自動化不過如此,就這?

我想說的是,不要高興的太早,你僅僅只是剛跨入自動化測試的大門,走了一小步而已。此時,你可以開始嘗試,把項目中一些重復的操作,寫成腳本去跑,滿滿的成就感有木有!自動化的成效初步形成,仿佛你開始懂得如何用自動化提升效率了。

開始接觸自動化框架unittest/testNG

等你學會單元測試框架unittest/testNG,當你學會了selenium后,你會發現大部分的線性腳本,很難去管理,并且每個腳本需要去一個個run,而且還無法統計測試結果,這個時候,就需要單元測試框架登場了!

你會開始學習,單元測試框架的用法,如何創建一個測試類,如何寫測試方法,如何把你的腳本寫成測試用例,如何校驗測試是否通過,用例的執行順序怎么去控制,斷言怎么去寫,這些都是你要去探究學習的。

不滿足于單元測試框架的功能

等你腳本寫的很6,用例也會組織了,然后每次領導告訴你,跑一下測試,然后把測試結果發給他,要總結成測試報告的形式。

你這時候,屢次打開你的編輯器,run test,然后刷刷刷的跑完測試,一條一條的統計測試結果,累得半死,發給了領導。

第二天領導又說,下班前你再跑一下測試,給我份報告,想死的心都有了。那么你開始去逛百度,逛論壇,想要得到解決方法,那么“框架”一次就會映入眼簾。

學習自動化框架

此時,你已經開始琢磨如何寫一個自動化框架出來了,那么說明你的自動化已經開始入門了,并且往著中級的方向發展,你開始研究框架的結構,發現有用例管理,日志,測試報告,郵件,基礎封裝類等等,還有一種框架的設計模式(經典PO模式)

你開始對你的用例進行整理,封裝基類,編寫頁面類,封裝日志,郵件模塊等等,經過了幾個星期的打磨,你的第一個自動化框架誕生了!

此時你可以去各個技術群去炫耀了,自動寫出了一個自動化框架,很多小白也開始吹捧你,叫你大神了。

初始接口測試

以上結束了UI自動化的學習,那么下面到接口這邊。一般公司用的都是http接口,那么你就從http協議開始學習了,了解它的結構,請求頭,請求參數,請求地址,請求方式等等等,嘗試學習一些抓包工具

如fiddler,chales,wireshark或者瀏覽器的開發者工具等等,去抓包獲取一些接口,慢慢的觀察它的請求構造,但是這時候還是云里霧里,對接口一知半解。于是下載了一個接口測試工具,嘗試把參數錄入到工具中,手動發起調用。

當工具返回200 code時,奧,原來是這么回事。好像就是和服務端來傳遞和接受數據的,然后前端頁面會把數據展示到前臺!

嘗試學習Request/HttpClient庫發起請求

在用完postman后,就會想到,那么我怎么用代碼去發起一個請求呢?這時候就需要去學習這兩個東西。pip install & import requests后,就開始了你的接口自動化之旅。

你嘗試也是把之前ui自動化的增刪改查,用接口來實現,你把抓包的請求參數拿過來,一個一個方法的調用,然后一鍵運行!一綠三紅!為什么?然后發現接口返回了401,無權限!奧!我沒有登入啊,那么怎么才能登入呢??

抱著很多的疑惑開始研究,這時候你需要去了解cookie和token的工作機制,再配合你的代碼,去緩存cookie,達到登入。等解決了這個問題,但是接口還是報錯了啊,刪除接口提示我沒有這條數據!

查來查去,原來是我那條數據已經用掉了,那么怎么可以保證我每次錄入的參數都是新的呢?這時候就需要去了解接口關聯,如何把參數從上個接口的響應提取出來,給下個接口用。

request/HttpClient結合unittest/testNG+allure

一樣的,等你學會了 request/HttpClient,自然也會想到用單元測試框架把他們集成起來,然后又發現了一個高大上的allure測試報告,再結合一些日志模塊打印參數,輕車熟路的這么一個接口框架就出來了,和之前的差不多!小意思。

嘗試用yaml/Excel管理測試用例

等你拿自己的框架,重復枯燥的寫著測試用例,這時候你想了,我為啥每次都要request.post,方法都是一樣的,只是數據不一樣,為什么我要一直寫代碼呢,很累啊!為什么不用一些文件來讀取測試數據,做參數化呢?

這時候你開始研究讀寫excel/yaml了,你想把所有的測試用例都放在文件里管理,就不用每次去寫代碼了,然而事情并沒有那么簡單!那么我在文件里如何去處理關聯數據呢?如何去緩存cookie呢?如何做斷言呢?如果做一些動態的輸入呢?

以上問題就留給你們自己去想了。

高級貨?git?jenkins?docker容器?分布式?

走到這一步,你已經寫過好幾個框架了,并且基于自己的框架做了優化,那么你此時發現一個很嚴重的問題,我的代碼居然只能在我本地運行,如果要給別人用,還需要去別人電腦上配置環境,copy代碼給他。

那么為什么不用一些代碼管理工具去管理我的腳本呢?那么就會需要去學習git,了解如何add commit push推送我的代碼到公司的gitlab,這樣別人也可以使用,那么有了gitlab,我想做一些定時任務,讓它自動執行呢?

學jenkins。再更多,要是我想多個用例一起跑呢?學習selenium grid,docker等等。。

自動化頂端之測試平臺/工具開發

等你搭建好公司的自動化生態,你還是不滿足,我為什么不把這些東西可視化管理呢?做個平臺?管理用例,管理任務,管理測試報告?我還可以把公司的一些部署任務也集成過來?

想法很好!此時的你已經不僅僅是一名優秀的自動化工程師了,已經邁向了測試開發的道路!開始學習,了解了測試框架httprunner,開發框架django/flask/springboot,懂得了接口開發的流程,了解了mybatis,shiro,quartz等等,開始學習前端

vue/react,懂得了什么是組件開發,父子組件傳值,開始了解很多東西,甚至運維方面的知識,開始了解k8s docker,微服務。。那么你越來越往著大神的方向去了,希望你還沒有禿頭,此時的你可以驕傲的稱自己為一名合格的測試開發,或者叫全棧開發了有木有!到此告一段落。

最后

做為一名有8年工作經驗的測試人員,接下來我想分享一下這些年來,我對于技術一些歸納和總結,和自己對作為一名高級測試者需要掌握那些技能的筆記分享,希望能幫助到有心在技術這條道路上一路走到黑的朋友!

下面分享我整理的這一份2023年可能是最全的軟件自動化測試開發工程師發展方向知識架構體系圖。
1、Python 編程與測試開發技術

在這里插入圖片描述

2、Web自動化測試基礎

在這里插入圖片描述

3、APP自動化測試基礎

在這里插入圖片描述

4、Postman測試工具專題

在這里插入圖片描述

5、接口自動化測試基礎

在這里插入圖片描述

6、自動化框架封裝

在這里插入圖片描述

7、持續集成

在這里插入圖片描述

8、Jmeter 性能測試

在這里插入圖片描述

9、APP性能測試

在這里插入圖片描述

10、Fiddler 抓包工具的使用

在這里插入圖片描述

11、TCP/IP協議詳情

在這里插入圖片描述

12、計算機操作系統

在這里插入圖片描述

13、Linux 系統操作

在這里插入圖片描述

14、MySQL 數據庫

在這里插入圖片描述

15、RobotFramework 自動化測試框架

在這里插入圖片描述

16、跨平臺的自動化測試框架

在這里插入圖片描述
上面就是我為大家整理出來的一份軟件測試工程師發展方向知識架構體系圖。

可以說,這個過程會讓你痛不欲生,但只要你熬過去了。以后的生活就輕松很多。正所謂萬事開頭難,只要邁出了第一步,你就已經成功了一半,等到完成之后再回顧這一段路程的時候,你肯定會感慨良多。

如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助。

軟件測試面試題合集

我們進階學習自動化測試必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節等一線互聯網大廠最新的面試資料,并且有字節大佬給出了權威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

在這里插入圖片描述

視頻文檔獲取方式:

這份文檔和視頻資料,對于想從事【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!以上均可以分享,點下方小卡片進群即可自行領取

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/712692.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712692.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712692.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring - InitializingBean、@PostConstruct、@Bean(initMethod = “init“)和構造方法執行優先級比較

執行順序優先級 構造方法 > postConstruct > afterPropertiesSet > init方法 代碼案例 Component public class InitializingBeanTest implements InitializingBean {public InitializingBeanTest(){System.out.println("構造方法");}Overridepublic void…

《滴滴》24校招Java后端

1.問項目 2.Java的基本數據類型? 3.浮點型從二進制的視角是怎么存儲的?(IEEE 754)小數位如何計算出來的? 4.浮點型的正4.5和負4.5轉為int會怎么樣? 5.Int型999除float的100再乘100結果? 6.Strin…

實現窗簾系統監控功能-代碼實現

自定義監控指標是實現窗簾系統監控功能的關鍵一步。這通常涉及到你想要跟蹤和衡量的系統特定方面的數據。以下是一些步驟和考慮因素,可以幫助你自定義監控指標: 1.明確監控目標: 確定你想要監控的窗簾系統的具體方面。這可能包括窗簾的開關狀…

基于yolov8的半自動標注

一、前言介紹 在深度學習領域中,標注是一項非常重要的工作,因為許多深度學習模型都依賴于有標注的數據進行訓練。然而,標注數據是一個費時費力的工作,因此人們希望有一種方式來對標注過程進行自動化。這就是“半自動標注”的來源…

Linux入門攻堅——16、Linux系統啟動流程

CentOS5、6的啟動流程 Linux:kernel rootfs,Linux系統就是內核加上根文件系統。 內核之上是庫: 庫:函數集合,function,函數具有調用接口,庫函數不能單獨執行,必須被其他程序調用…

【前端素材】推薦優質在線電影院商城電商網頁Hyper平臺模板(附源碼)

一、需求分析 1、系統定義 在線電影商城是指一個通過互聯網提供電影服務的平臺,用戶可以在該平臺上瀏覽電影資源、租借或購買電影,以及觀看在線影片。 2、功能需求 在線電影商城是指一個通過互聯網提供電影服務的平臺,用戶可以在該平臺上…

四川尚熠電子商務有限公司電商服務領域的佼佼者

在數字化浪潮席卷全球的今天,電子商務已成為推動企業轉型升級、拓展市場渠道的重要力量。四川尚熠電子商務有限公司,作為一家專注于抖音電商服務的公司,憑借其獨特的服務模式和創新的營銷策略,在激烈的市場競爭中脫穎而出&#xf…

Linux 系統安裝/卸載 Nginx教程

優質博文:IT-BLOG-CN 一、安裝Nginx 【1】首先通過Nginx官網確定需要安裝的版本,如果Linux聯網則直接在Linux服務上使用wget命令將Nginx安裝包下載到/usr/local/目錄下: [rootxxx local]# wget -c http://nginx.org/download/nginx-1.22.1.…

【C++精簡版回顧】14.(重載2)流重載

1.流重載 istream ostream 1.class class MM {friend ostream& operator<<(ostream& out, MM& mm);friend istream& operator>>(istream& in, MM& mm); public:MM() {}MM(int age,string name):age(age),name(name) {} private:int age;st…

Three.js-05坐標軸AxesHelper

1.構建對象 說明&#xff1a;參數一表示坐標軸的長度。紅色代表 X 軸. 綠色代表 Y 軸. 藍色代表 Z 軸. const axesHelper new THREE.AxesHelper( 1 ); 2.設置位置 axesHelper.position.y1 axesHelper.position.x1 axesHelper.position.z1 3. 網格 說明&#xff1a;立方體…

沒有項目經歷,該如何寫簡歷?

沒有項目經歷&#xff0c;我該如何寫簡歷 一、前言二、挖掘自己三、看現成的項目經驗&#xff0c;轉化成自己的語言1、硬件方面2、軟件方面 四、最后 一、前言 相信有很多剛出來找工作的人會遇到這種情況&#xff0c;因為自身沒有項目經歷&#xff0c;投了很多的簡歷都石沉大海…

在python中,設置json支持中文字符串

# 省略以上環節 ... # 假設json格式如下 system_info_dict {uptime: uptime.split(".")[0],cpu_usage: cpu_usage,memory_usage: memory_usage,disk_usage: disk_usage,battery_percentage: battery_percentage,battery_status: batteryStatus }# 設置json支持中文字…

Day05:反彈SHELL不回顯帶外正反向連接防火墻出入站文件下載

目錄 常規基本滲透命令 文件上傳下載-解決無圖形化&解決數據傳輸 反彈Shell命令-解決數據回顯&解決數據通訊 防火墻繞過-正向連接&反向連接&內網服務器 防火墻組合數據不回顯-ICMP帶外查詢Dnslog 思維導圖 章節知識點&#xff1a; 應用架構&#xff1a;W…

Vue全家桶:vue2+vue3全部搞懂:第五篇,Vue的watch監視器

前提&#xff0c;建議先學會前端幾大基礎&#xff1a;HTML、CSS、JS、Ajax&#xff0c;不然不好懂 這一專欄知識將一次性將vue、vue2、vue3全部講明白 一、何為watch監視器 其實我個人理解&#xff0c;就跟原本的表單的input事件一樣&#xff0c;實時監視事件發生并同步更新數…

kswapd0挖礦病毒攻擊記錄

文章目錄 一、起因與病毒分析1、起因2、阿里云告警2.1 惡意腳本代碼執行12.2 惡意腳本代碼執行22.3惡意腳本代碼執行32.4 惡意腳本代碼執行4 3、病毒簡單分析3.1 病毒的初始化3.2 病毒本體執行 4、總結 二、ubuntu自救指南1、病毒清理2、如何防御 一、起因與病毒分析 1、起因 …

3D城市模型可視化:開啟智慧都市探索之旅

隨著科技的飛速發展&#xff0c;我們對城市的認知已經不再局限于平面的地圖和照片。今天&#xff0c;讓我們領略一種全新的城市體驗——3D城市模型可視化。這項技術將帶領我們走進一個立體、生動的城市世界&#xff0c;感受前所未有的智慧都市魅力。 3D城市模型通過先進的計算機…

SLAM基礎知識-高斯分布

???????正態分布&#xff08;高斯分布&#xff09;學習筆記 - 知乎 偏差(bias)、方差(variance)和噪音(noise)_noise variance-CSDN博客 --------------------------------------待更新---------------------------------------------------------------------------

Android的硬件接口HAL

我一直覺得&#xff0c;現代計算機不是一門科學&#xff0c;起碼快算不上一門理科科學。上上下下全是人造&#xff0c;左左右右全是生意&#xff0c;用管理學&#xff0c;經濟學去學計算機&#xff0c;也許更看得懂很多問題。HAL就是一個典型例子。 傳統Linux繞開了微軟的霸權…

圖片的處理庫Thumbnailator

摘要&#xff1a;最近遇到圖片處理的問題&#xff0c;借助了Thumbnailator庫&#xff0c;記錄下使用步驟如下…… 圖片處理&#xff0c;JDK中也提供了對應的工具類&#xff0c;不過處理較麻煩&#xff0c;Thumbnailator 是Google一個 開源Java 圖像處理庫&#xff0c;用于簡化 …

re正則表達式匹配單個字符串

import retext001 "hello" a re.match(h,text001) print(a.group())text002 "hello" a re.match(.,text002) #匹配任意字符串 print(a.group())text003 "11111" a re.match(r\d, text003) #匹配任意數字 print(a.group())text004…