學習之淺談python如何做接口自動化


Pycharm功能:www.jetbrains.com/pycharm

Project視圖、代碼結構視圖、圖形界面的調試功能

代碼導航、語法高亮、自動補齊、錯誤提示、自動修復、代碼重構

主流開發框架的支持(Django)、集成版本控制(git,svn)、單元測試

python操作Mysql

mysqlclient

第三方開發的,Django推薦

文檔:http://mysqlclient.readthedocs.io/

安裝:Pip install mysqlclient==1.3.12

獲取數據記錄:Fetchone, fetchmany, fetchall

如何實現python接口自動化測試

一、接口

抓包工具 fiddler   charles

接口工具 postman  jmeter

接口加密解密、接口鑒權

接口簽名、Dubbo  Ws

API自動化測試(接口測試)

一、什么是接口:

接口:系統提供服務的一種形式、兩個事物交互點,基於某個協議,實現數據交互

1.一定是基於網絡協議來傳輸的

2.下發請求,基於網絡協議的傳輸,獲取到響應結果,形成最終的接口的交互

3.url相當於指定了需求訪問的接口

比如:

微信支付 內部接口(兩個不同的賬戶實現數據交互)

銀聯支付 第三方接口(微信系統與銀行系統實現數據交互)

接口測試意義:

1、盡早介入測試

2、前端進行驗證,后端還需要兩次測試---->增加測試覆蓋率

3、前端無法正常測試的接口測試才能更好的進行覆蓋測試

二、網絡協議:

1.HTTP網絡協議是目前業內最為主流的網絡協議

http網絡協議目前主流是1.1版本,是無狀態協議,意味着每一次的請求都是獨立的。通過鑒權機制來實現到數據的交互。鑒權包含:cookie/Session/Token

https就是http+SSL協議(獨立的安全證書)

2.tcp網絡協議:通信軟件。比如微信、QQ、在線客服等。

3.微服務RPC(remote procedure call),本質上外部的網關還是基於HTTP網絡協議為主。內部的通訊結合各類實際業務,而設定不同的網絡協議 進行交互

4.restful:不是網絡協議。本身只是一種格式規范。

大部分都還是基於HTTP網絡協議進行通信,而生成對應的restful的規范化格式

三、基於Python+Requests庫實現接口測試:

1.requests庫是適用於HTTP網絡協議下的接口的測試通信。

2.所有的接口測試,都是基於接口文檔來實現的

3.業務是接口測試的核心。在所有接口開發測試之前,一定要懂業務。

4.所有的參數,應該如何傳遞都是基於設計來定義的。

很多時候在系統中,接口彼此之間是有互相交互和聯系的。

三、requests框架

Requests是自動化測試框架之一,是python實現的最簡單易用的HTTP請求和發送,屬 於python的第三方庫

python內庫 unittest   logging  os....  不需要安裝

python第三方庫  jsonpath          需要安裝

本地安裝:pip install requests

四、自動化測試框架-------》自動化測試核心技能

1、熟悉掌握一門編程語言python java

2、常用自動化測試框架應用:三大平台  Web + 接口 + app、原理+應用、設計理念

3、搭建落地自動化測試框架   web + 接口 + app  效率最大化

常用框架第二次開發、公共數據全局配置、日志收集、數據依賴、用例管理

4、落地自動化框架:(類似於工具postman jmeter)

易用性:不懂代碼的人可以進行維護   填用例數據   配置數據 維護成本低

高效性:分布式集成 框架核心封裝設計

通用性:通用所有的項目

一、結合接口文檔實現請求代碼構建

1、項目接口文檔解讀

2、規划接口自動化測試流程

項目業務--接口文檔--接口用例--python腳本--pytest框架--調試&執行--Allure報告--結果分析

excel用例

Yaml用例

json用例

接口的架構

  1. 業務層
  2. 用例層
  3. 數據層
  4. 執行層
  5. 設備層 ---app自動化測試
  6. 配置層
  7. 日志層
  8. 報告

3、構建接口請求python代碼

===============================================================================

一、接口測試

接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等

通俗一點就是輸入數據,返回數據,不同種類的接口應用層協議可能不一樣,傳輸的數據格式也可能不一樣。檢查業務邏輯是否滿足業務需求,校驗字段是否正常你實際結果是否滿足預期。

接口就是前段和后端的一個橋梁,那前端的界面要如何展示出來呢,它需要通過接口從服務端去獲取。目前很多的項目都是前端和后端分離開發的,前端,后端開發完成,只需要做一個聯調就好了,前端沒有數據也能夠進行開發,我們只需要通過Mock就可以完成了。

1. 1 接口測試類型

主要包含三種測試:

Web接口測試

應用程序接口(API, application programming interface)測試

數據庫測試

測試API在不同條件下返回正確的響應或輸出。此輸出通常是以下三種之一:

通過或失敗狀態

數據或信息

調用另一個API

1.2 如何開展接口測試

一般來說,我們開展接口測試的流程如下:

1.需求確定后,開發出API文檔

2.拿到API文檔,編寫接口測試用例

3.開發交付

4.實施接口測試

接口測試用例跟常規的功能測試用例基本一樣,可以從接口功能測試、接口業務測試、接口性能測試、接口安全測試等角度考慮

接口功能的關注點是:

1.接口每個參數輸入正確與錯誤

2.接口參數卻是

3.接口參數邊界值

4.接口參數類型

項目后端接口測試內容:

【接口測試】:業務功能測試、邊界分析測試、參數組合測試、異常情況測試、性能測試、安全測試

業務功能測試:正常場景、異常場景

邊界分析測試:業務規則邊界分析、輸入輸出參數邊界分析:【覆蓋所有的必選參數、組合可選參數、參數有|無|null、參數的順序|個數|類型、參數類型數值大小|輸入的數值的范圍、參數字串長短|Null-max-max+1、參數包含特殊字符】

異常情況測試:冪等(重復提交)、並發測試、事務測試、分布式測試、環境異常、大數量測試:【同時處理大批量數據的測試、DB數據量很大時,測試DB操作】

性能測試:響應時間、吞吐量、並發數、服務器資源使用率:【CPU、內存、IO、Network】

安全測試:批量抽獎、SQL注入、敏感信息是否加密:【前后端數據傳輸是否加密、日志信息是否加密】

APP測試】:基本功能測試、邊界分析測試、存儲測試(存儲空間的讀寫)、性能測試、穩定性測試、兼容性測試、中斷測試、交互測試、UI測試

儲測試:屏幕旋轉、連貫加載頁面、開多個窗口、應用互相調用、多線程下載

性能測試:響應時間:【安裝、啟動、跳轉】、內存、cpu、gpu、fps、電量、流量、溫度

兼容性測試:網絡:(2G、3G、4G、wifi、斷網、弱網)分辨率、機型、平台

1.3 Python做接口自動化測試

使用python做接口自動化測試是非常簡單的,python入門非常簡單,通過短時間的學習后,就可以開展自動化測試了,但需要掌握如下知識:

理解HTTP

學會使用Fiddler

熟悉python基礎,python數據類型、函數、模塊、類

Mock服務

熟悉常用的python模塊,如requestsjsonconfigobjpyyaml

熟悉python單元測試框架,如unittestpytestnose

熟悉python操作數據庫的方法

二、持續集成

每天打開項目跑測試,那將會非常的麻煩,解決的辦法就是持續集成Jenkins,點一下構建,自動完成測試,每天都能看到自己項目的質量情況、質量報告

對接口測試而言,持續集成自動化是核心內容,通過持自動化的手段我們才能做到低成本高收益。目前我們已經實現了接口自動化,主要應用於回歸階段,后續還需要加強自動化的程度,包括但不限於下面的內容:

a) 流程方面:在回歸階段加強接口異常場景的覆蓋度,並逐步向系統測試,冒煙測試階段延伸,最終達到全流程自動化。

b) 結果展示:更加豐富的結果展示、趨勢分析,質量統計和分析等

c) 問題定位:報錯信息、日志更精准,方便問題復現與定位。

d) 結果校驗:加強自動化校驗能力,如數據庫信息校驗。

e) 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探,提高代碼覆蓋率。

f) 性能需求:完善性能測試體系,通過自動化的手段監控接口性能指標是否正常。

三、接口測試質量評估標准

a) 業務功能覆蓋是否完整

b) 業務規則覆蓋是否完整

c) 參數驗證是否達到要求(邊界、業務規則)

d) 接口異常場景覆蓋是否完整

e) 接口覆蓋率是否達到要求

f) 代碼覆蓋率是否達到要求

g) 性能指標是否滿足要求

h) 安全指標是否滿足要求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM