Python接口自動化測試——如何搭建測試環境

前言

接口測試的方式有很多,比如可以用工具(jmeter,postman)之類,也可以自己寫代碼進行接口測試,工具的使用相對來說都比較簡單,重點是要搞清楚項目接口的協議是什么,然后有針對性的進行選擇,甚至當工具不太適合項目時需要自己進行開發。

  在我們項目的初期,我們采用的是jmeter進行接口測試,當時覺得這個工具上手簡單,團隊成員學習成本低,并且接口測試的腳本稍微調整一下還可以用來做性能測試。

  不過隨著項目規模、團隊人數的不斷增長,漸漸的這個工具有適應不了當前項目的需求了,為此我們項目也重新開發了相關接口自動化的平臺。但是,但是。。。可能是我讓大家中毒太深,現在很多同學一提到接口測試關聯到jmeter,為此,我深深感到不安。畢竟jmeter只是個工具,換個項目換個協議你是否還能玩轉接口測試呢?session和cookie有什么區別?工具又是怎么實現的呢?

  比如session如何保存,接口依賴如何處理,case如何管理及執行順序,測試數據如何管理等等題,這個過程也有助于我們更加深刻的理解接口測試和http協議。

  本文主要采用python語言,python中http協議接口相關的庫有urllib,urllib2以及reqeusts庫,這其中reqeusts庫用來起來最方便,因此我也主要采用requests庫來做http協議的接口測試。首先來看下需要哪些環境信息:

一、安裝python

  mac下自帶安裝了python,這個不多說了。

二、安裝虛擬環境:

我們在一臺機器上可以安裝多個python版本,為了使每個版本的環境相互不受干擾,可以安裝虛擬環境,安裝方法如下:

1、安裝virtualenv:pip install virtualenv

2、新建名為venv的虛擬環境:virtualenv venv

3、進入新環境:source venv/bin/activate

4、退出:deactivate

三、安裝requests庫:

>>>pip install requests

ps:用python做http協議的接口測試會用到這個庫。

四、http測試工具:

一個使用 Python + Flask 編寫的 HTTP 請求和響應服務,該服務主要用于測試 HTTP 庫。后續測試我們都基于這個網站。

http://httpbin.org

五、在本地搭建httpbin:

考慮到測試時要不斷訪問 httpbin 網站,請求過多擔心被拉到黑名單,我們自己在本志搭建一套httpbin服務。

1、安裝:pip install gunicorn

2、安裝:pip install httpbin

3、啟動:gunicorn httpbin:app

?感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點擊下方小卡片領取?

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

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

相關文章

NF是哪個國家品牌?韓國NF-耐福功放芯片介紹

NF是韓國一家專注于數字音頻芯片領域公司旗下的數字功放IC品牌,2008年開始進入中國市場,ISweek工采網作為其代理商;在國內簡稱:韓國NF,又被稱耐福、耐福NTP功放芯片;國內長虹、TCL、海信、小豹AI音箱、騰訊…

大數據-之LibrA數據庫系統告警處理(ALM-37001 MPPDBServer實例Redo日志缺失)

告警解釋 當DN主實例有未同步到DN備實例的xlog日志被刪除時,產生該告警。 告警屬性 告警ID 告警級別 可自動清除 37001 嚴重 是 告警參數 參數名稱 參數含義 ServiceName 產生告警的服務名稱 RoleName 產生告警的角色名稱 HostName 產生告警的主機名…

shell從服務列表中讀取參數并檢查服務

一、shell腳本 #!/usr/bin/env bash# 讀取文檔數據 while read -r line do# 提取服務名和命令service_name$(echo "$line" | awk {print $1})command$(echo "$line" | awk {$1""; print substr($0,2)})#echo "服務名: $service_name"…

SQL進階學習

1.[NISACTF 2022]join-us sql報錯注入和聯合注入 過濾: as IF rand() LEFT by updatesubstring handler union floor benchmark COLUMN UPDATE & sys.schema_auto_increment_columns && 11 database case AND right CAST FLOOR left updatexml DATABA…

Vue3入門組合式 API

Vue3 學習 開發環境 tong ~/Projects/EasyVue3 $ node -v v16.20.1 tong ~/Projects/EasyVue3 $ sw_vers ProductName: macOS ProductVersion: 14.1.1 BuildVersion: 23B81 tong ~/Projects/EasyVue3 $ npm --version 8.19.4 tong ~/Projects/Ea…

selenium 簡單案例 <批量下載文件> <網頁自動化點擊上報>

一、批量下載文件 網頁分析 點擊跳轉到下載頁面 from selenium import webdriver import timedef get_link_list():# 創建瀏覽器對象driver webdriver.Chrome(executable_pathrC:\Users\nlp_1\Desktop\chromedriver\chromedriver-win32\chromedriver.exe)url https://www…

微信報名怎么做_輕松便捷的數字化報名體驗

微信報名:輕松便捷的數字化報名體驗 在這個數字化時代,微信已經成為我們生活中不可或缺的一部分。它不僅僅是一個社交平臺,更是一個功能強大的綜合性工具。其中,微信報名功能更是給我們的生活帶來了極大的便利。本文將詳細介紹微…

Django之cookie和session

文章目錄 Cookie的介紹Cookie的由來什么是CookieCookie原理Cookie覆蓋瀏覽器查看Cookie 在Django中操作Cookie設置Cookie查詢瀏覽器攜帶的Cookie刪除Cookie Cookie校驗登錄sessionSession的由來Session設置查看、更新Session值刪除Session值Seesion的其他方法Session的其他配置…

企業微信機器人:自動化辦公的未來已來!

導語:隨著科技的迅速發展,人工智能已經逐漸滲透到我們的日常生活和工作中。而企業微信機器人的出現,更是開啟了自動化辦公的新紀元。本文將為您詳細解析企業微信機器人的功能、優勢以及如何為企業帶來實質性的價值。 一、企業微信機器人的功…

擴展外部eMMC存儲

By Toradex胡珊逢 簡介 存儲器的嵌入式設備中扮演著重要角色,上面不僅安裝有操作系統,同時也保存著應用程序和運行日志等。對于存儲器如 eMMC,寫入的數據量決定其使用壽命,對于有大量日志記錄的應用,通常可以選用一個…

JavaScript:監聽事件

該方法用于向瀏覽器窗口注冊事件監聽器,當指定的事件(如單擊、按鍵按下)被觸發時,瀏覽器會自動調用指定的函數(回調函數)。 window.addEventListener(event, function, useCapture); 參數說明&#xff1a…

洛谷題單--線性表

P3156 【深基15.例1】詢問學號 鏈接 : 【深基15.例1】詢問學號 - 洛谷 直接輸入&#xff0c;然后輸出a[i]即可; 代碼 : #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; int main(){int n, q …

請手寫一個發布-訂閱的模式

發布-訂閱模式也是經典的設計模式之一&#xff0c;它在前端很多地方都有應用&#xff0c;比如javascript事件池&#xff0c;Vue的$on、$off&#xff0c;nodejs的events模塊和socket通信等等都有應用&#xff0c;也是前端面試比較火熱的考點之一&#xff0c;接下來給大家詳細介紹…

cefsharp119.4.30(cef119.4.3,Chromium119.0.6045.159)版本升級體驗支持H264及其他多個H264版本

Cefsharp119.4.30,cef119.4.3,Chromium119.0.6045.159 此更新包括一個高優先級安全更新 This update includes a high priority security update. 說明:此版本119.4.3支持H264視頻播放(需要聯系我),其他版本。.NETFramework 4.6.2 NuGet Gallery | CefSharp.WinForms 119.…

運動規劃Motion-Planning隨筆

online verification技術 實時安全校驗技術&#xff1a;留一手 首先計算能否通過剎車這種方式得到一條安全軌跡&#xff0c;&#xff08;讓速不讓道&#xff09;&#xff0c;當剎車有可能碰撞到行人或其他車輛時&#xff0c;則判斷變道是否會產生碰撞。如果能變道&#xff0…

深度學習之七(深度信念網絡和受限玻爾茲曼機器)

概念 深度信念網絡(Deep Belief Networks,DBN)和受限玻爾茲曼機器(Restricted Boltzmann Machines,RBMs)都是無監督學習的模型,通常用于特征學習、降維和生成數據。 受限玻爾茲曼機器(RBM): 結構: RBM 是一個兩層神經網絡,包括一個可見層和一個隱藏層。這兩層之間…

qt按照不同編碼格式讀取文字(UTF-16LE,UTF-8,UTF-8BOM,UTF-16BE)

enum class EncodingFormat : int {ANSI 0,//GBKUTF16LE,UTF16BE,UTF8,UTF8BOM, }; EncodingFormat VideoPlayer::FileCharacterEncoding(const QString &fileName) {//假定默認編碼utf8EncodingFormat code EncodingFormat::UTF8;QFile file(fileName);if (file.open(QI…

「 系統設計 」 為什么要做架構分層?

「 系統設計 」 為什么要做架構分層&#xff1f; 參考&鳴謝 3.設計模式之分層思維&#xff1a;為什么要做代碼分層架構&#xff1f; 從零開始學架構&#xff08;八&#xff09;分層架構和設計模式 架構模式之分層架構總結 文章目錄 「 系統設計 」 為什么要做架構分層&…

解決 IDEA下VUE項目 @符號無法識別的問題

根目錄新建jsconfig.json {"compilerOptions": {"baseUrl": "./","paths": {"/*": ["src/*"]}},"exclude": ["node_modules","dist"] }

IT支持團隊的績效指標和最佳實踐

一名員工在遠程時因筆記本問題尋求IT支持&#xff0c;盡管他們多次嘗試排除故障&#xff0c;但由于缺乏專業知識&#xff0c;最終還是無法訪問工作所需的應用程序。這時&#xff0c;他們需要一名專業的 IT 技術人員來指導他們&#xff0c;但他們只能等待有人注意到并回應他們的…