介面測試框架接入效能測試實踐分享
1. 前言
現如今介面測試在軟體質量行業中的地位,已經越來越重要,相對於上層的UI自動化測試和下層的單元測試,介面測試的“低”投入、“高”回報,也成了絕大多數質量保障實踐的首選。
在開展介面測試時,往往很多時候都只在關注介面的功能性質量,而對於非功能性的質量保障驗證,比如效能、安全,在實際工程應用或者設計用例時關注度明顯不足(甚至很多壓根沒有這方面的測試實踐)。
今天就以Python系下 requests庫(常用於介面測試)和 Robot FrameWork框架為例,和大家聊聊在介面測試過程中,和功能需求同等重要的效能測試檢查項。
2. 介面測試需要考慮的效能檢查項
在介面測試過程中,除了要考慮產品需求的正常、異常、資料正確性等顯性功能需求質量外,還有很多隱性需求質量需要關注,以效能測試為例,常見需要關注的檢查項包括,但不限於:
- 1、單使用者登入的響應時間是否小於 3 秒;
- 2、單使用者登入時,後臺請求數量是否過多;
- 3、高併發場景下使用者登入的響應時間是否小於 5 秒;
- 4、高併發場景下服務端的監控指標是否符合預期;
- 5、高集合點併發場景下,是否存在資源死鎖和不合理的資源等待;
- 6、長時間大量使用者連續登入和登出,伺服器端是否存在記憶體洩漏。
本文重點以介面響應時間為例,介紹如何在requests庫和Robot FrameWork框架納入效能測試項,其它效能檢查項思路基本都是相通的。
3. requests庫介面測試校驗響應時間
通常在結合 requests庫開展介面測試時,傳送請求後,介面的響應時間,也是我們需要關注的一個重點,如果響應時間太長,從產品業務或者使用者角度也是不可接受的。那如何進行請求響應時間校驗,也成為了介面測試人員需要掌握的一項小技能。
針對 requests庫校驗請求響應時間,給大家提供兩種實現思路:
一、藉助請求響應超時機制
具體實現:
#-*- coding:utf-8 -*-import requestsfrom requests import exceptionstry: req = requests.post(url=url, data=data, headers=headers, verify=False, timeout=3) print r.json()except exceptions.Timeout as e: print("丟擲異常")
在上述實現中,透過增加timeout引數,設定請求響應超時機制,當timeout=3(可自由定義),當請求響應時間超過3秒,則會丟擲超時異常。
其中,額外補充的知識點:超時(預設單位:s),有兩種設定超時方法:
- timeout=5:設定5s的超時時間
- timeout=(5,10):設定區間時間的等待
當請求出現超時時,則會丟擲此異常:requests.exceptions.ConnectTimeout: HTTPConnectionPool
2、獲取響應時間方法:
req.elapsed.total_seconds()
二、藉助requests介面響應返回值elapsed
具體實現:
#-*- coding:utf-8 -*-import requests r = requests.post(url, data=data, headers=headers) print(r.status_code) print(r.elapsed) print(r.elapsed.total_seconds()) print(r.elapsed.microseconds) print(r.elapsed.seconds) elapsed_time = r.elapsed.total_seconds() #獲取實際的響應時間 assert elapsed_time>3
上述程式碼實現中,透過獲取請求返回的響應值來獲取介面響應時間,常見的幾個獲取響應時間引數為:
-
elapsed.total_seconds:獲取響應時間,單位s (推薦)
-
elapsed. microseconds:獲取響應時間,大於1s的時候,只擷取了後面的小數部分
-
elapsed.seconds:單位s,響應時間小於1s時,為0
4. Robot Framework框架校驗響應時間
在上述我們介紹了 requests庫在開展介面測試過程,校驗請求響應時間的實現思路。而透過Robot Framework框架開展介面測試,主要會依賴RequestsLibray庫,而因此實現思路也是一樣的。
具體實現,可參考下述示例:
上述校驗請求響應時間,核心就兩句程式碼:
${elapsed_seconds}= set variable ${resp.elapsed.total_seconds()} should be true ${elapsed_seconds}<3
補充知識點:響應體${resp}是一個類物件,原始碼可在requests/models/Response檢視,可以檢視找出該類的所有屬性,第6行列印結果:
5. 小結
作為測試工程師,你的目標是要保證系統在各種應用場景下的功能是符合設計要求的,所以你需要考慮的測試用例就需要更多、更全面。本文,透過介面測試如何融合介面效能檢查項,給大家提供一點思路,希望對你有所幫助或啟發。
轉載自 https://www.cnblogs.com/jinjiangongzuoshi/p/13671335.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983768/viewspace-2720793/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Jmeter介面測試+效能測試JMeter
- 介面自動化測試工程實踐分享
- Locust效能測試實踐
- HTTP框架Hertz實踐入門:效能測試指南HTTP框架
- HTTP介面測試實踐(一)HTTP
- 介面測試框架Requests框架
- 介面測試和效能測試的區別
- 小白測試系列:介面測試與效能測試的區別
- 介面測試工具 Postman 使用實踐Postman
- 測試開發之效能篇-JMeter介面測試JMeter
- 為什麼要做介面測試?可做介面測試的軟體測試公司分享
- 介面測試框架選擇框架
- 介面測試之unittest框架框架
- Yslow效能測試框架部署框架
- 基於jmeter,jenkins,ANT介面,效能測試框架JMeterJenkins框架
- H5 前端效能測試實踐H5前端
- 介面測試測試流程
- java 效能測試框架工具-junitperfJava框架
- API 測試 | 瞭解 API 介面測試 | API 介面測試指南API
- 實用測試技能分享:jmeter+Jenkins效能測試自動化搭建JMeterJenkins
- 【軟體測試】——介面測試
- 介面測試 - 引數測試
- 經驗分享丨功能測試漲薪路線,記一次簡單的效能測試實踐!
- 『居善地』介面測試 — 7、介面自動化測試框架的設計與實現框架
- 效能測試:分散式測試分散式
- phpunit測試成功phpunit測試實踐程式碼PHP
- 乾貨分享▏軟體效能測試包括哪些測試內容?
- API測試:瞭解API介面測試與API介面測試指南API
- jmeter介面測試教程以及介面測試流程JMeter
- 介面自動化測試世界裡的“身份證”—測試工具Jmeter實踐篇JMeter
- Python-PyQt5介面效能測試工具分享PythonQT
- App測試、Web測試和介面測試一般測試流程APPWeb
- MBT測試思想在蘇寧蛙測的運用實踐分享
- 測試平臺之介面測試
- 介面測試要測試什麼?
- 介面自動化測試框架 HttpFPT框架HTTP
- 介面測試
- 【效能測試】使用ab做Http效能測試HTTP