大連建設(shè)工程集團(tuán)有限公司電話seo中文全稱是什么
今天,我們來聊聊接口自動化測試是什么?如何開始?接口自動化測試框架怎么做?
自動化測試
自動化測試,這幾年行業(yè)內(nèi)的熱詞,也是測試人員進(jìn)階的必備技能,更是軟件測試未來發(fā)展的趨勢。
特別是在敏捷模式下,產(chǎn)品迭代速度快,市場不斷調(diào)整,客戶需求不斷變化,單純的手工測試越來越無法適應(yīng)整個變化過程(迭代快,加班多)。測試人員如何快速響應(yīng)并保證產(chǎn)品在上線后的質(zhì)量能夠滿足市場要求(如何在上線一個新功能的同時快速對舊功能快速進(jìn)行回歸,保證舊功能不被新功能影響而出現(xiàn)嚴(yán)重的Bug?)。
針對以上問題,采用自動化測試無疑是一個不錯的選擇,能夠做到在保證產(chǎn)品質(zhì)量的同時提升測試效率。
隨著行業(yè)內(nèi)卷越來越嚴(yán)重,對于測試崗位的要求也是水漲船高,崗位招聘要求都會出現(xiàn)自動化測試的字眼,因此也是我們跳槽面試、升職加薪必備利器。
自動化測試又可分為接口自動化、Web UI自動化、App自動化,今天我們就來聊聊接口自動化測試。
同時,我也準(zhǔn)備了一份軟件測試視頻教程(含接口、自動化、性能等),需要的可以直接在下方觀看,或者直接關(guān)注VX公眾號:互聯(lián)網(wǎng)雜貨鋪,免費(fèi)領(lǐng)取
軟件測試視頻教程觀看處:
字節(jié)大佬教你逼自己如何在15天內(nèi)掌握自動化測試(接口自動化/APP自動化/Web自動化/性能測試),內(nèi)含項目實戰(zhàn)
接口自動化測試的價值
1、相比于UI自動化測試,接口自動化的維護(hù)成本更低,主要體現(xiàn)在以下幾個方面
- 在分層測試金字塔模型中,接口測試屬于第二層服務(wù)集成測試,與UI自動化測試相比,接口自動化測試收益更大、更容易實現(xiàn)、維護(hù)成本更低,有更高的投入產(chǎn)出比,因此是公司開展自動化測試的首選。
- 前端頁面變化快,而且UI自動化比較耗時,比如等待頁面元素加載、添加等待時間、定位元素、操作元素、模擬頁面動作這些都需要時間,因此UI自動化實施起來比較困難。
- 接口較穩(wěn)定,接口的響應(yīng)時間基本上都是秒級、毫秒級別,速度快,并且接口自動化本身也可以做一些有關(guān)聯(lián)的操作、全流程的操作,比如:注冊 --> 登錄 --> 修改個人信息。
2、測試復(fù)用性
3、快速回歸(提高回歸的覆蓋率、效率、穩(wěn)定性)
4、可以運(yùn)行更多更繁瑣的測試,自動化的一個明顯的好處是可以在較少的時間內(nèi)運(yùn)行更多的測試
接口自動化測試如何開展
工具選擇
- Python/Java + Requests + Unittest/Pytest + HTMLTestRunner/Allure
- RobotFramework:關(guān)鍵詞驅(qū)動的自動測試框架
- 基于Web的自動化測試平臺(公司自主研發(fā),成本較高,方便不懂編程也能使用)
自動化測試工具有很多,每種工具都有各自的優(yōu)缺點(diǎn),選擇適合自身實際情況的框架,落地實施才是重點(diǎn),具體選擇哪種工具放在其他文章再說。
這里使用 Python + Requests + Pytest + Allure
舉個栗子
接口文檔(找了一個開放的接口用于測試)
接口信息:
名稱:全國高校信息查詢接口
描述:用于查詢?nèi)珖咝P畔?Host: www.iamwawa.cn
Request URL:/home/daxue/ajax
Request Method:POST
Content-Type: application/x-www-form-urlencodedheaders:user-agent:Chrome
參數(shù):
請求示例:
POST /home/daxue/ajax HTTP/1.1
Host: www.iamwawa.cnuser-agent: ChromeContent-Type: application/x-www-form-urlencodedCookie: PHPSESSID=sjsrn0drje6ds5fq9kouoo2r23Content-Length: 54type=name&keyword=四川輕化工大學(xué)
響應(yīng)示例:
{"status":1,"info":"查詢成功!","data":[{"id":"2181","name":"四川輕化工大學(xué)","code":"4151010622","department":"四川省","city":"自貢市","level":"本科","remark":""}]}
線性腳本
import requestsres = requests.post(url="https://www.iamwawa.cn/home/daxue/ajax",headers={"user-agent": "Chrome"},data={"type": "name", "keyword": "四川輕化工大學(xué)"})
assert res.status_code == 200
res_json = res.json()
print(res_json)
assert res_json["status"] == 1
使用以上代碼,最基礎(chǔ)最簡單的接口測試就做起來了,好的開始就是成功的一半。
但是,問題也隨之而來,線性腳本的缺點(diǎn)也暴露出來了:
- 測試的輸入和斷言都是捆綁在腳本中,易讀性差
- 無共享或重用腳本,可復(fù)用性低
- 線性腳本修改代價大,維護(hù)成本高,不便于后期優(yōu)化
- 容易受軟件變化的影響,容易受意外事件的影響,引起整個測試失敗
所以,下一步就是如何優(yōu)化線性腳本,也就是如何實現(xiàn)代碼的高內(nèi)聚低耦合,也是接口自動化測試框架要解決的問題。
接口自動化測試框架
GitHub開源代碼:點(diǎn)擊文章末尾小卡片掃碼備注000領(lǐng)取
- base_api.py:對Requests庫進(jìn)行二次封裝,完成對api的驅(qū)動
- api:繼承base_api,將http請求接口封裝成Python方法
- utils:CommonUtil,公共模塊,將一些公共函數(shù)、方法以及通用操作進(jìn)行封裝,如:日志模塊、yaml操作模塊、時間模塊
- config:配置文件模塊,配置信息存放,如:URL、Port、Headers、Token、數(shù)據(jù)庫信息等
- data:測試數(shù)據(jù)模塊,用于測試數(shù)據(jù)的管理,數(shù)據(jù)與腳本分離,降低維護(hù)成本,提高可移植性,如:yml文件數(shù)據(jù)
- cases:測試用例模塊,用于測試用例的管理,這里會用到單元測試框架,如:Pytest、Unittest
- run.py:批量執(zhí)行測試用例的主程序,根據(jù)不同需求不同場景進(jìn)行組裝,遵循框架的靈活性和擴(kuò)展性
- logs:日志模塊,用于記錄和管理日志,針對不同情況,設(shè)置不同的日志級別,方便定位問題
- reports:測試報告模塊,用于測試報告的生成和管理,如:基于Allure生成的定制化報告
總結(jié)
現(xiàn)階段很多人都在說軟件測試太內(nèi)卷了,工作太難找了,競爭太激烈了。那么如何在這樣的現(xiàn)狀下使得自己更具有競爭力呢?筆者認(rèn)為大家需要迅速學(xué)習(xí)軟件測試的硬技能,提升自己的業(yè)務(wù)能力,早日擺脫初中級測試的Title,雖然測試人員眾多,但是高級的軟件測試人員還是很稀缺,有很多人掛著高級測試的頭銜卻還在干著初中級測試的活。在掌握這些硬技能的同時,軟技能的培養(yǎng)同樣重要,溝通能力、自主學(xué)習(xí)能力越來越被企業(yè)看重。
如果不想被這個時代淘汰,就要做好持續(xù)學(xué)習(xí)的準(zhǔn)備。
PS:這里分享一套軟件測試的自學(xué)教程合集。對于在測試行業(yè)發(fā)展的小伙伴們來說應(yīng)該會很有幫助。除了基礎(chǔ)入門的資源,博主也收集不少進(jìn)階自動化的資源,從理論到實戰(zhàn),知行合一才能真正的掌握。全套內(nèi)容已經(jīng)打包到網(wǎng)盤,內(nèi)容總量接近500個G。如需要軟件測試學(xué)習(xí)資料,關(guān)注公眾號(互聯(lián)網(wǎng)雜貨鋪),后臺回復(fù)1,整理不易,給個關(guān)注點(diǎn)個贊吧,謝謝各位大佬!
? 240集-零基礎(chǔ)到精通全套視頻課程
? [課件+源碼]-完整配套的教程
? 18套-測試實戰(zhàn)項目源碼
? 37套-測試工具軟件包
? 268道-真實面試題
? 200個模板-面試簡歷模板、測試方案模板、軟件測試報告模板、測試分析模版、測試計劃模板、性能測試報告、性能測試報告、性能測試腳本用例模板(信息完整)
這些資料,對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術(shù)行業(yè),一定要提升技術(shù)功底。