成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Python+requests+pytest接口自動化測試框架的搭建

原創 精選
開發 后端 測試
框架的設計思路是首先要明確進行接口自動化需要的步驟,然后逐步拆解需要完成的工作,快來看看吧!

框架的設計思路

首先要明確進行接口自動化需要的步驟,如下圖所示:

圖片

然后逐步拆解需要完成的工作:

1)了解分析需求:了解接口要實現的功能

2)數據準備:根據開發文檔確定接口的基本情況,知曉接口的url、請求方式、入參等信息,然后根據業務邏輯以及入參來預期接口的輸出

  • 需要有一個配置文件來存儲接口的一些基本信息;
  • 需要有一個方法能讀取配置文件;
  • 需要有一個excel或者yaml格式文件來存儲測試數據;
  • 需要有一個方法能讀取測試數據;
  • 需要有一個方法來把讀取到的配置文件和測試數據組裝成測試執行時需要的參數化數據;

如果預期結果是需要根據入參查數據庫來得到的時候還需要一個能執行sql的方法

3)設計&執行測試:生成一個測試文件,可以來根據入參調用接口獲得接口輸出然后驗證

  • 根據pytest的特性可以把準備參數化的數據的工作放到conftest.py下;
  • 需要有一個調用接口以及斷言驗證的測試文件,命名規則為xxx_test.py或者test_xxx.py;
  • 為了更好的對輸出和預期輸出做驗證準備封裝一下系統自帶的斷言;
  • 為了能更好執行測試封裝一下requests模塊,制定統一的輸入輸出標準;
  • 記錄執行錯誤信息引入日志記錄模塊;

4)查看結果:根據斷言結果來判定接口是否滿足需求框架最終的執行順序如下圖所示

圖片

框架的基本結構

圖片

然后介紹一個每個目錄下都有什么,分別完成什么工作

1、這里每一個文件對應一個接口所需要的測試數據,命名規則為nameA.xlsx或者nameA.yaml(nameA泛指待測接口名稱),文件里面可以存放調用接口所需的參數name、參數value、所需cookie、預期輸出結果

圖片


2、assertion.py 

--封裝的斷言方法,用于驗證接口返回值和預期結果是否一致    

config.py

--封裝讀取配置文件的方法    

get_caseparams.py

--把測試數據加工成接口所需要的格式     

log.py

--封裝的記錄日志的方法    

request.py

--封裝的https請求方法,主要是post和get    

selectDB.py

--查詢sql并把結果加工成[dic1,dic2,dic3....]這種格式,每個dic是一條數據       

testcasetemplate.py

--這個是根據caseparams文件夾下的測試數據自動在testcase文件夾下生成測試文件的腳本

圖片


3、里面存放兩個配置文件,base.ini存放數據庫連接的配置interface.ini是所有測試接口需要的配置。

圖片


4、記錄測試的日志文件,沒啥可說的,log.log是當天文件,其他的是對應日期下的歷史日志。

圖片


5、conftest.py固定名稱的一個文件,放在被測接口腳本同一個文件夾下,此處的作用是為每個被測腳本提供參數化支持 test_XXX.py這種文件是接口的測試文件,XXX為被測接口的名稱。

圖片      

6、run.py   ---測試執行的主入口,如果把該接口自動化測試框架放到jenkins上做持續集成的時候,可以通過配置jenkins來代替這個入口

使用說明

當我們需要有一個接口(假定名稱為abc)需要用本框架進行自動化測試的時候,操作步驟如下:

1、interface.ini文件下添加名稱為abc的節點,然后在該節點下配置好接口的參數文件格式、http請求方式、接口url、接口wiki。

2、casefparams文件夾下創建名稱為abc.xlsx的用例數據文件。

3、執行common文件夾下的testcasetemplate.py,執行的結果是會自動根據前兩步配置的內容在casefile文件夾下生成test_abc.py的腳本文件。

4、編輯test_abc.py添加所需要的斷言,來驗證接口的準確性。

5、執行run.py完成測試

測試執行詳情為run.py指定要執行測試的測試文件的路徑testcase目錄,根據pytest的運行機制這之前會先調用testcase目錄下的conftest.py,這個文件在此處的作用就是通過遍歷testcase目錄下以test_為開頭的測試文件,然后調用讀取配置文件config.py、讀取并組裝參數的get_caseparams.py將測試用例數據參數化傳遞給test_開頭的測試文件,test_開頭的測試文件執行的時候會把之前步驟傳遞過來的參數拆分,然后調用request.py發送http請求,獲得接口的json格式的返回結果,然后通過以下方式對接口返回結果做驗證。

1)根據產品業務邏輯知道入參的情況下很簡單就能得出預期結果的時候,可以直接把預期結果放到和入參一起的excel或者yaml測試數據文件中,在執行測試的時候這些參數也會一并傳遞給測試文件,直接取出來和接口輸出做驗證即可。

2)需要查庫驗證的情況需要把需要把接口的入參作為sql的條件寫好sql后調用selectDB.py得到查詢結果再拿sql返回的結果和接口輸出做驗證3)還有一些復雜的場景可能會根據接口入參,根據業務邏輯自己寫腳本去獲得預期結果,然后和接口輸出做驗證。

責任編輯:龐桂玉 來源: 之家技術
相關推薦

2023-09-02 20:22:42

自動化測試軟件開發

2023-09-13 11:40:12

2012-03-29 10:57:12

Web自動化測試

2011-05-31 17:35:45

測試自動化QTP

2022-08-14 16:11:23

Python自動化測試數據

2019-04-22 09:00:00

Python框架自動化測試

2009-08-19 09:00:48

單元測試框架自動化測試

2021-06-26 07:40:21

前端自動化測試Jest

2020-04-28 09:00:00

測試測試自動化

2018-05-11 08:29:10

Python自動化測試數據驅動

2018-05-11 13:39:05

PythonCSV接口測試

2017-12-24 21:00:10

自動化測試測試框架敏捷

2011-06-08 17:15:46

QTP腳本

2023-02-11 21:14:58

自動化測試框架

2023-05-18 14:01:00

前端自動化測試

2023-09-14 15:37:11

2013-03-13 11:34:05

自動化測試Selenium.Net測試

2022-12-26 12:30:28

接口測試

2021-08-17 09:00:00

架構PythonWeb

2023-10-12 07:40:54

Minium自動化框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久av | 美女一级毛片 | 在线视频中文字幕 | 日韩精品在线免费观看 | 欧美在线天堂 | 国产精品揄拍一区二区 | 欧美激情精品久久久久 | 国产一区二区精品在线观看 | 九色在线视频 | 久久69精品久久久久久久电影好 | av在线免费网 | 91中文字幕| 日本三级全黄三级a | 日本黄色免费片 | 国产精品久久久久久久久久久新郎 | 国产欧美一区二区三区另类精品 | 国产成人亚洲精品 | 久久一| 99久久99 | 97人人澡人人爽91综合色 | av片在线免费看 | aaa在线观看 | 91传媒在线观看 | 999久久久 | 男女搞网站 | 国产亚洲一区二区精品 | 国产一区二区欧美 | 美女久久 | 国产特一级黄色片 | 一区二区三区四区在线播放 | 亚洲精品久久久久国产 | 亚洲精品一区二区三区蜜桃久 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 六月色婷 | 国产成人福利视频 | 欧美日韩精品综合 | 精品网站999 | 免费的一级视频 | 国产精品成人国产乱一区 | 综合一区二区三区 | 激情五月综合 |