接口測試框架2

現在市面上做接口測試的工具很多,比如Postman,soapUI, JMeter, Python+ unittest等等,各種不同的測試工具擁有不同的特色。但市面上的接口測試工具都存在一個問題就是無法完全吻合的去適用沒一個項目,比如數據的處理,加密方式的選擇,業務邏輯的處理等等,因為自己編寫一個框架能夠很好的契合自己的項目。本次選用Python+ unittest方案。這個方案需要測試者具有一定的代碼能力,通過利用Python自帶的PyUnit也就是我們說的:unittest自動化框架,進行接口自動化測試框架的二次開發。

特點:框架穩定,依托于Python強大的庫進行各種形式的接口測試,如基于http協議的接口可以利用urlib,urlib2,requests等庫進行設計測試。(現在公司的接口基本都是基于http協議的,因此調用這三個庫可以完全的實現接口自動化)同時利用JSON于測試參數進行配置,實現整體測試框架的參數驅動化。

2.框架介紹

整個框架主要分為三層:

  1. 框架層:?核心層+應用層
  2. 核心層:為底層的基礎代碼
  3. 應用層:為核心層的對外的封裝
    框架結構圖如下:

整個框架結構如上圖,console包為整個框架的入口,通過這里來啟動整個框架運作。lib和case為框架的核心層和應用層。

lib里面為測試框架中所有的底層代碼

包括:斷言方法(resultprocess),權鑒,配置文件,自動生成腳本,測試數據的獲取,數據類型的轉換,加密的處理,接口測試的初始化,發送郵件,生成測試報告等等。

case 包里包括server和testcase兩個包,server包里面為接口業務串聯,testcase為單個接口測試。

單個接口測試用例例:

單個server用例示例:

說明:

  1. import unittest?? //導入測試框架
  2. 定義一個繼承自unittest.TestCase的測試用例類
  3. 定義setUp和tearDown,在每個測試用例前后做一些輔助工作。
  4. 定義測試用例,名字以test開頭。
  5. 一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。
  6. 調用unittest.main()啟動測試
  7. 如果測試未通過,會輸出相應的錯誤提示。如果測試全部通過則不顯示任何東西,這時可以添加-v參

data數據包:

log:?主要用于存放腳本運行時生成的log文件

report :用于存放報告文件,為xml文件

case_data?:單個接口測試的數據,為json文件

server-data :?接口業務串聯的數據,為excel文件

case_data 中json數據格式:

(關于什么是json格式,自己百度)

json數據根據給的上面的這個模板進行配置,注意字段:

test_list :單個接口的多種狀態的測試名稱,根據該字段列表中的值進行循環生成py的測試腳本

expect??? :斷言的數據

mode???? :用于判斷斷言采用何種模式(具體情況參看lib庫里的resultprocess.py文件)

R : 用于判斷是否返回測試數據

reclye: 用于判斷是否循環

replace_filed: 標識符,用于判斷哪個參數需要被替換,主要用于業務串聯測試

server_data 中excel數據格式:

excel里面的數據根據給的上面的這個模板進行配置,注意字段:

測試內容 :寫業務流程

測試文件名:表示自動生成的測試腳本的文件名

測試標題:業務串聯測試的用例名

調用文件:填寫需要串聯的接口,以“ ,"隔開

傳遞字段: 表示下一個接口需要從上一個接口返回的數據中獲取的字段內容

測試報告:

3.框架使用說明:

測試人員根據開發提供的接口文檔,對于接口的測試點進行完整的分析,編寫測試用例,再把測試用例轉換成對應的json和excel文檔,啟動console里面的start_文件,選擇對應的測試模式,進行測試

轉載于:https://www.cnblogs.com/zhangbao003/p/9547144.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388713.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python 傳不定量參數_Python中的定量金融

python 傳不定量參數The first quantitative class for vanilla finance and quantitative finance majors alike has to do with the time value of money. Essentially, it’s a semester-long course driving notions like $100 today is worth more than $100 a year from …

axis為amchart左右軸的參數

<axis>left</axis> <!-- [left] (left/ right) indicates which y axis should be used --> <title>流通股</title> <!-- [] (graph title) --> <…

雷軍宣布紅米 Redmi 品牌獨立,這對小米意味著什么?

雷鋒網消息&#xff0c;1 月 3 日&#xff0c;小米公司宣布&#xff0c;將在 1 月 10 日召開全新獨立品牌紅米 Redmi 發布會。從小米公布的海報來看&#xff0c;Redmi 品牌標識出現的倒影中&#xff0c;有 4800 的字樣&#xff0c;這很容易讓人聯想起此前小米總裁林斌所宣布的 …

JAVA的rotate怎么用,java如何利用rotate旋轉圖片_如何在Java中旋轉圖形

I have drawn some Graphics in a JPanel, like circles, rectangles, etc.But I want to draw some Graphics rotated a specific degree amount, like a rotated ellipse. What should I do?解決方案If you are using plain Graphics, cast to Graphics2D first:Graphics2D …

貝葉斯 樸素貝葉斯_手動執行貝葉斯分析

貝葉斯 樸素貝葉斯介紹 (Introduction) Bayesian analysis offers the possibility to get more insights from your data compared to the pure frequentist approach. In this post, I will walk you through a real life example of how a Bayesian analysis can be perform…

vs2005 vc++ 生成非托管的 不需要.net運行環境的exe程序方法

在VS2005里開發的VC程序在編譯的時候&#xff0c;微軟默認會加入自己的 .Net Framework &#xff08;方便推廣自家產品&#xff09;&#xff0c;讓你的VC程序依賴它&#xff0c;這就導致程序編譯后&#xff0c;無法跟往常一樣直接打包&#xff0c;在別的機器就能正常運行。如果…

西工大java實驗報告給,西工大數字集成電路實驗 實驗課6 加法器的設計

西工大數字集成電路實驗練習六 加法器的設計一、使用與非門(NAND)、或非門(NOR)、非門(INV)等布爾邏輯器件實現下面的設計。1、仿照下圖的全加器&#xff0c;實現一個N位的減法器。要求仿照圖1畫出N位減法器的結構。ABABABAB0123圖1 四位逐位進位加法器的結構2、根據自己構造的…

DS二叉樹--二叉樹之數組存儲

二叉樹可以采用數組的方法進行存儲&#xff0c;把數組中的數據依次自上而下,自左至右存儲到二叉樹結點中&#xff0c;一般二叉樹與完全二叉樹對比&#xff0c;比完全二叉樹缺少的結點就在數組中用0來表示。&#xff0c;如下圖所示 從上圖可以看出&#xff0c;右邊的是一顆普通的…

VS IIS Express 支持局域網訪問

使用Visual Studio開發Web網頁的時候有這樣的情況&#xff1a;想要在調試模式下讓局域網的其他設備進行訪問&#xff0c;以便進行測試。雖然可以部署到服務器中&#xff0c;但是卻無法進行調試&#xff0c;就算是注入進程進行調試也是無法達到自己的需求&#xff1b;所以只能在…

前復權后復權程序C# .net

if (win32apitest.MDIMain.SFSDA.FuQuan "前復權") { if (mytime DateTime.Parse("2009-04-29")) { //if (svalue 34.89) …

一天一個js知識

原型繼承和class繼承 class&#xff1a;js中并不存在類的概念&#xff0c;class只是語法糖&#xff0c;本質還是函數&#xff1b; 提升&暫時性死區 console.log(a)// ? a() {} var a8 function a(){} 復制代碼 1、這里說明函數的提升要優先于變量的提升&#xff1b;函數提…

構建圖像金字塔_我們如何通過轉移學習構建易于使用的圖像分割工具

構建圖像金字塔Authors: Jenny Huang, Ian Hunt-Isaak, William Palmer作者&#xff1a; 黃珍妮 &#xff0c; 伊恩亨特伊薩克 &#xff0c; 威廉帕爾默 GitHub RepoGitHub回購 介紹 (Introduction) Training an image segmentation model on new images can be daunting, es…

PHP mongodb運用,MongoDB在PHP下的應用學習筆記

1、連接mongodb默認端口是&#xff1a;27017&#xff0c;因此我們連接mongodb&#xff1a;$mongodb new Mongo(localhost) 或者指定IP與端口 $mongodb new Mongo(192.168.127.1:27017) 端口可改變若mongodb開啟認證&#xff0c;即--auth,則連接為&#xff1a; $mongodb new …

a標簽

a標簽定義超鏈接&#xff0c;用于從一張頁面鏈接到另一張頁面&#xff0c;它最重要的屬性是 href 屬性&#xff0c;它指示鏈接的目標。 <a href"http://www.w3school.com.cn">W3School</a> 最常用的就像這樣添加一個鏈接&#xff0c;如果是點擊事件的話&…

MFC程序執行過程剖析

一 MFC程序執行過程剖析 1&#xff09;我們知道在WIN32API程序當中&#xff0c;程序的入口為WinMain函數&#xff0c;在這個函數當中我們完成注冊窗口類&#xff0c;創建窗口&#xff0c;進入消息循環&#xff0c;最后由操作系統根據發送到程序窗口的消息調用程序的窗口函數。而…

CF888E Maximum Subsequence(meet in the middle)

給一個數列和m&#xff0c;在數列任選若干個數&#xff0c;使得他們的和對m取模后最大&#xff08; \(1<n<35\) , \(1<m<10^{9}\)&#xff09; 考慮把數列分成兩份&#xff0c;兩邊分別暴力求出所有的可能&#xff0c;那么對于一個數列中每一個數字\(x\)&#xff0…

virtualbox php mac,詳解mac下通過docker搭建LEMP環境

在mac下通過docker搭建LEMP環境境1.安裝virtualbox。由于docker是在lxc環境的容器2.安裝boot2docker&#xff0c;用于與docker客戶端通訊> brew update> brew install docker> brew install boot2docker3.初始化boot2docker&#xff0c;也就是在virtualbox上安裝一個d…

SpringBoot項目打war包部署Tomcat教程

一、簡介 正常來說SpringBoot項目就直接用jar包來啟動&#xff0c;使用它內部的tomcat實現微服務&#xff0c;但有些時候可能有部署到外部tomcat的需求&#xff0c;本教程就講解一下如何操作 二、修改pom.xml 將要部署的module的pom.xml文件<packaging>節點設置為war <…

在VS2005中使用添加變量向導十分的

在VS2005中使用添加變量向導十分的方便&#xff0c;但是如何手動添加呢。可以分為2步&#xff1a; 1. 在控件對應的類的頭文件中添加相應的變量聲明&#xff08;如&#xff1a;CString m_strResult&#xff09; 2. 在類的實現文件中的DoDataExchange(CDataExchange* pDX)函數…

關于如何使用xposed來hook微信軟件

安卓端 難點有兩個 收款碼的生成和到帳監聽需要源碼加 2442982910轉載于:https://www.cnblogs.com/ganchuanpu/p/10220705.html