接口自動化測試是個啥?如何開始?什么是框架?帶你揭開神秘面紗

自動化測試

自動化測試,這幾年行業內的熱詞,也是測試人員進階的必備技能,更是軟件測試未來發展的趨勢。

特別是在敏捷模式下,產品迭代速度快,市場不斷調整,客戶需求不斷變化,單純的手工測試越來越無法適應整個變化過程(迭代快,加班多)。測試人員如何快速響應并保證產品在上線后的質量能夠滿足市場要求(如何在上線一個新功能的同時快速對舊功能快速進行回歸,保證舊功能不被新功能影響而出現嚴重的Bug?)。

針對以上問題,采用自動化測試無疑是一個不錯的選擇,能夠做到在保證產品質量的同時提升測試效率。

隨著行業內卷越來越嚴重,對于測試崗位的要求也是水漲船高,崗位招聘要求都會出現自動化測試的字眼,因此也是我們跳槽面試、升職加薪必備利器。

自動化測試又可分為接口自動化、Web UI自動化、App自動化,今天我們就來聊聊接口自動化測試。

接口自動化測試的價值

接口自動化測試是個啥?如何開始?什么是框架?帶你揭開神秘面紗

  1. 相比于UI自動化測試,接口自動化的維護成本更低,主要體現在以下幾個方面在分層測試金字塔模型中,接口測試屬于第二層服務集成測試,與UI自動化測試相比,接口自動化測試收益更大、更容易實現、維護成本更低,有更高的投入產出比,因此是公司開展自動化測試的首選。前端頁面變化快,而且UI自動化比較耗時,比如等待頁面元素加載、添加等待時間、定位元素、操作元素、模擬頁面動作這些都需要時間,因此UI自動化實施起來比較困難。接口較穩定,接口的響應時間基本上都是秒級、毫秒級別,速度快,并且接口自動化本身也可以做一些有關聯的操作、全流程的操作,比如:注冊 –> 登錄 –> 修改個人信息。
  2. 測試復用性
  3. 快速回歸(提高回歸的覆蓋率、效率、穩定性)
  4. 可以運行更多更繁瑣的測試,自動化的一個明顯的好處是可以在較少的時間內運行更多的測試

接口自動化測試如何開展

工具選擇

  • Python/Java Requests Unittest/Pytest HTMLTestRunner/Allure
  • RobotFramework:關鍵詞驅動的自動測試框架
  • 基于Web的自動化測試平臺(公司自主研發,成本較高,方便不懂編程也能使用)

自動化測試工具有很多,每種工具都有各自的優缺點,選擇適合自身實際情況的框架,落地實施才是重點,具體選擇哪種工具放在其他文章再說。

這里使用Python Requests Pytest Allure

舉個栗子

接口文檔(找了一個開放的接口用于測試)

接口信息:

1234567名稱:全國高校信息查詢接口描述:用于查詢全國高校信息Host: www.iamwawa.cnRequest URL:/home/daxue/ajaxRequest Method:POSTContent-Type: application/x-www-form-urlencodedheaders:user-agent:Chrome

參數:

名稱

類型

是否必填

描述

type

String

name,根據名稱查詢

keyword

String

高校名稱,如:四川輕化工大學

請求示例:

12345678POST /home/daxue/ajax HTTP/1.1Host: www.iamwawa.cnuser-agent: ChromeContent-Type: application/x-www-form-urlencodedCookie: PHPSESSID=sjsrn0drje6ds5fq9kouoo2r23Content-Length: 54type=name&keyword=四川輕化工大學

響應示例:

123456789101112131415{ "status": 1, "info": "查詢成功!", "data": [ { "id": "2181", "name": "四川輕化工大學", "code": "4151010622", "department": "四川省", "city": "自貢市", "level": "本科", "remark": "" } ]}

線性腳本

123456789import requestsres = requests.post(url="https://www.iamwawa.cn/home/daxue/ajax", headers={"user-agent": "Chrome"}, data={"type": "name", "keyword": "四川輕化工大學"})assert res.status_code == 200res_json = res.json()print(res_json)assert res_json["status"] == 1

使用以上代碼,最基礎最簡單的接口測試就做起來了,好的開始就是成功的一半。

但是,問題也隨之而來,線性腳本的缺點也暴露出來了:

  1. 測試的輸入和斷言都是捆綁在腳本中,易讀性差
  2. 無共享或重用腳本,可復用性低
  3. 線性腳本修改代價大,維護成本高,不便于后期優化
  4. 容易受軟件變化的影響,容易受意外事件的影響,引起整個測試失敗

所以,下一步就是如何優化線性腳本,也就是如何實現代碼的高內聚低耦合,也是接口自動化測試框架要解決的問題。

接口自動化測試框架

GitHub:https://github.com/itcaituotuo/api_auto_framework

接口自動化測試是個啥?如何開始?什么是框架?帶你揭開神秘面紗

  • base_api.py:對接口測試框架Requests進行二次封裝,完成對api的驅動
  • api:繼承base_api,將http請求接口封裝成Python方法
  • utils:CommonUtil,公共模塊,將一些公共函數、方法以及通用操作進行封裝,如:日志模塊、yaml操作模塊、時間模塊
  • config:配置文件模塊,配置信息存放,如:URL、Port、Headers、Token、數據庫信息等
  • data:測試數據模塊,用于測試數據的管理,數據與腳本分離,降低維護成本,提高可移植性,如:yml文件數據
  • cases:測試用例模塊,用于測試用例的管理,這里會用到單元測試框架,如:Pytest、Unittest
  • run.py:批量執行測試用例的主程序,根據不同需求不同場景進行組裝,遵循框架的靈活性和擴展性
  • logs:日志模塊,用于記錄和管理日志,針對不同情況,設置不同的日志級別,方便定位問題
  • reports:測試報告模塊,用于測試報告的生成和管理,如:基于Allure生成的定制化報告

文章來自https://www.cnblogs.com/caituotuo/p/16296668.html

相關新聞

聯系我們
聯系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部
主站蜘蛛池模板: 狠狠色狠狠色很很综合很久久| 两个人一上一下剧烈运动| 1000部国产成人免费视频| 波多野结衣办公室33分钟| 天天爱天天做天天爽| 午夜亚洲国产精品福利| 丁香狠狠色婷婷久久综合| 精品国产欧美一区二区| 成人精品视频一区二区三区尤物| 国产av无码专区亚洲av毛片搜 | 国产精品igao视频网| 亚洲人成高清在线播放| 人与动人物欧美网站| 最近最新中文字幕完整版免费高清| 国产极品视觉盛宴| 久久精品国产99国产精偷| 韩国大尺度床戏未删减版在线播放| 日本三级视频网站| 嗯啊~被触手怪女性灌液漫画| 三级台湾电影在线| 男人的好电影在线观看| 国内精品伊人久久久久av影院| 亚洲日韩精品无码一区二区三区| 最新黄色网址在线观看| 日韩精品一区二区亚洲av观看| 国产又粗又长又硬免费视频| 中文网丁香综合网| 精品久久久久久久免费人妻 | 粉色视频下载观看视频| 在线播放一区二区| 亚洲av综合色区无码专区桃色| 麻豆md国产在线观看| 把胡萝卜立着自己坐上去| 免费国产黄网站在线观看视频 | 天天躁日日躁狠狠躁av中文| 亚洲精品午夜久久久伊人| 182tv精品视频在线播放| 最新欧洲大片免费在线| 国产AV国片精品一区二区| ffee性护士vihaos中国| 欧美性色黄在线视频|