"立即構建"即可部署。
分析:安裝Jenkins的docker鏡像是 alpine版本,配置nodejs不生效的原因可能是node缺少依賴庫。
解決:通過apk add包管理工具重新安裝nodejs.
#dockerexec-it [對應容器id] /bin/bash
# apk add --no-cache nodejs
# node -v
目錄
一、前言
二、自動化目的
三、自動化分類
四、自動化實現
一、前言
在一些測試交流群經常會看到有小伙伴在問,"怎么做自動化測試?學習自動化測試有什么資料嗎?自動化測試是不是很牛逼?" ,甚至有些言論是"不會自動化的測試人員,真的要被淘汰了嗎?"
不得不說一堆流量號主抓住大眾心理,點進去的必然是賣課廣告,或者是關注買粉絲買粉絲領取測試資料大禮包。
實話實說,我之前也有同樣的疑問,甚至帶著擔憂。每次又不甘心得領著測試資料大禮包......
當然,隨著自己的認知不斷擴大,自己的一套測試體系建設不斷完善,于是這些擔憂逐漸的消失。每項技術引用都要看適用場景,是否適合自己的團隊,因地制宜才能發揮其最大的價值。
因此,我想通過這篇文章來分享下我對于自動化測試的理解。
二、自動化目的
自動化工作可以節省很多人工操作成本,減少人工重復性操作,提高整個團隊的研發效率。但是如果搭建自動化體系需要耗費很長時間,投入很多人力資源,但是用戶只要2-3分鐘的手動工作就能解決,而且這個操作并不頻繁,又或者需要自動化操作的平臺變更迭代非常快并且沒有規律,自動化工具在后面類似累活的跟著。那么自動化還是有必要嗎?
我之前在的團隊,造測試數據特別困難,嚴重影響了整個研發效率,但是當時也沒有一個好的解決辦法,后來基礎研發組做了一個造數平臺,這個平臺需要自己去配置各種字段,并且梳理出各個表字段的關聯,從頭到尾一個一個去構建場景,一不小心就配置錯誤,看著提示你也找不到原因的那種。這給造數過程中又添了一個攔路虎,給本不充裕的測試時間,又耗時一把。
如果能在做執行任務前評估任務的投入和收益,那么是不是就能更加合理的開展這項任務。那么自動化測試的投入和收益是怎樣的呢?
投入:通過測試人員借助腳本或者工具實現自動化,維護自動化平臺。
收益:提高測試效率,提升測試人員的成長。
自動化測試真的提高測試效率嗎?真的可以提升測試人員的成長嗎?針對后者,我認為是有的。接下來我們就來聊聊自動化測試是否提高測試效率。
三、自動化分類
自動化一般分為接口自動化和UI自動化,其中UI自動化又分為Web UI自動化和App UI自動化,按照我的理解還應加上部署自動化。
接下來我將針對這四種自動化的場景做一個介紹。因為我對于UI自動化不是很熟悉,我認為投入產出比不是很高,主要還是因為我沒咋接觸過,所以后面僅做簡單介紹,重點講解接口自動化和部署自動化。
四、自動化實現
4.1、接口自動化
接口
接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞過程,以及系統間的相互邏輯依賴關系等。
流程
填寫接口,入參,對出參進行斷言,每天定時構建,輸出測試報告。
入參覆蓋范圍:必選,可選,有/無/null,類型,數值大小/數值范圍,特殊字符;
出參:json,data;
接口關聯:接口之間的依賴,數據傳遞;
斷言:對響應做核驗,可以對狀態碼或者msg做校驗。
優點
接口測試可以更快的發現服務端問題;
接口測試相對容易實現自動化持續集成;
接口測試相對于比單元測試比較貼近業務場景;
技術選型
1、MeterSphere
MeterSphere 是一站式測試平臺,涵蓋測試跟蹤、接口測試、性能測試、 團隊協作等功能,全面兼容 JMeter、Postman、Swagger 等開源、主流標準。
MeterSphere是一個功能交全的平臺,并且是開源的,對于免費版就足夠小團隊使用了,使用門檻相對來說較低,對于技術能力要求不高,所以是一個不錯的選擇。MeterShpre使用的技術棧是SpringBoot+vue,以及一些中間件,也可以在此基礎上進行二次開發。
2、Python
通過Python來做接口自動化的話,常用組件有:執行庫Requests,斷言庫unittest,測試報告HTMLTestRunner,通過持續集成Jenkins做定時構建。
框架思想:封裝,數據驅動。
使用Python的話則需要掌握一定的代碼能力,當然這個對個人技能的提升是很有幫助的,但是如果在時間比較緊迫的并且沒有足夠的技術功底情況下,還是比較推薦MeterSphere的。
4.2、部署自動化
部署
部署就是將源代碼編譯成可運行軟件包,比如jar包或者war包,并且將軟件包放到目標環境,將軟件包運行起來,并且能夠被客戶端調用。
流程
通過遠程倉庫拉取代碼,前端編譯,后端編譯,下發軟件包到目標機器,重啟服務,啟動失敗則告警。
優點
相比傳統手工部署,速度更快,不容易出錯,提高交付效率。
技術選型
gitlab或者gitee:代碼托管
git:版本管理
node:前端編譯
maven:后端編譯
ansible:下發文件
shell:重啟服務
pipeline:流水線構建
Jenkins:CICD大總管,將以上工具整合起來,提供頁面供用戶操作部署流程。
4.3、Web UI自動化
UI自動化
通過頁面元素定位定位到元素,模擬用戶的操作行為,點擊,輸入,拖拽等。
流程
定位元素,模擬用戶操作,發送測試報告。
優點
適用于回歸主流程,并且變更不頻繁的場景。可用于重復性的功能測試及驗證。我之前在的團隊做過一段Web UI自動化,但是因為需求頻繁變更,并且精力有限,維護這個平臺的成本較高,后面就沒有持續維護了。
技術選型
Python,selenium。
4.4、App UI自動化
UI自動化
通過頁面元素定位定位到元素,模擬用戶的操作行為,點擊,輸入,拖拽等。
流程
定位元素,模擬用戶操作,發送測試報告。
優點
適用于回歸主流程,并且變更不頻繁的場景。
技術選型
Appinum。
結論:我認為接口自動化和部署自動化是能夠帶來收益的,是真實能夠提高效率的,并且也能夠給測試人員的帶來成長。
關注【嘎嘎軟件測試】
搞測試,不迷路
呱呱大王本呱帶你飛!
嘎嘎軟件測試 分享個人成長、團隊管理、軟件測試技能知識等內容,做到有思想、有觀點、有深度,歡迎訂閱。
PHP開發工程師崗位職責15篇
在現實社會中,崗位職責的使用頻率逐漸增多,崗位職責是指工作者具體工作的內容、所負的責
2024-07-19 19:03
2024-07-19 18:34
2024-07-19 17:30
2024-07-19 17:13
2024-07-19 17:11
2024-07-19 16:46