pythonflaskmock數據_Flask實現簡單Mock Server

Mock Server充當的角色:

Mock server在實際項目中的意義就相當于數據庫。將我想要的數據返回給我就行,我并不關心你怎么邏輯處理的。

一般的應用程序請求方式是GET和POST。

Flask自帶的request使用:request.url獲取當前的請求url全路徑地址,request.method獲取當前的請求方式。

Flask處理get請求時:

(1)因為get方式存在帶”?”的參數方式,所以可以使用urlparse模塊進行解析。

url parse是將url拆分成6部分,并返回元組。具體實例可以參見:Python2.7 urlparse學習

將帶”?”的方式分別將key-value對應關系取出來,這樣就可以知道每一個請求的key-value。

(2)不同的公司定義的接口標準不同,不同的get方式key-value對應關系要自己去梳理和找出相同及不同點,方便后期自己不管是做接口還是客戶端測試驗證時可以:

根據url就可以取出對應的key-value,進行自動化校驗。

Flask處理POST請求時:

post方式的數據一般是放在body中的,有時header中會攜帶一些用戶信息:

使用request.get_data() 可以獲取到請求中的body內容,使用request.headers獲取到header中的用戶信息,然后可以根據規律同樣將key-value對應關系取出,進行相應的測試等。

Flask正則表達式:

Flask正則表達式要想使用需要導入BaseConverter:

from werkzeug.routing import BaseConverter

定義一個類:

Class RegexConverter(BaseConverter):

def __init__(self,url_map,*items):

super(RegexConverter,self).__init__(url_map)

self.regex=items[0]

然后app.url_map.converters[‘regex’]=RegexConverter

通過定義:

@app.route(‘/’,methods=[‘GET’,’POST’]) #匹配所有的url地址

def allurl(ceshi):

myreqUrl=request.url

print myreqUrl

Return ‘

所有url返回這個結果!

這樣就可以匹配所有的url并返回相同的結果。

Regex正則表達式相關學習:

匹配任意字符:[\w\W]*

匹配任意包含jingxuan的正則 \\w*jingxuan\\w*

匹配最后以json結尾的正則 .json$

匹配任意符合數字的正則 -?\d+

匹配任意符合字母的正則 -?[a-zA-Z]+

只匹配一個數字 \\d或者[0-9]

匹配版本號 (-?\d+)(\.\d+)?(\.\d+)?(\.\d+)?(\.\d+)?

匹配類型json結尾或者html結尾 .json$|.html$

匹配url ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

Flask Mock Server可以做的:

使用flask的正則表達式可以根據請求的url及抓到的請求參數:

1.自動驗證參數數量及合法性(所謂的接口自動化做的事情)。

2.自動返回固定的數據,或者根據需要進行相應的修改。

3.盡可能的模擬接口在真實環境下的狀態,進行最大程度的模擬“客戶端狀態”。

目前所做的事情已經基本可以實現了部分客戶端及接口校驗,當然還有很多不足。

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

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

相關文章

在Application_Error事件中獲取當前的Action和Control

ASP.NET MVC程序處理異常時,方法有很多,網上也有列舉了6種,下面是使用全局處理在Global.asax文件的Application_Error事件中實現。既然是ASP.NET MVC,我需要捕捉到Controller和Action名稱。怎樣實現可以參考下面代碼: 程序運行結果…

android 真機 sqlite3,在android真機上使用sqlite3

#zijun#2013.10.29#QQ:223663737在android真機上使用sqlite3前期準備:1:保證手機已經ROOT操作步驟:1 : 打開CMD2 : 進入android linuxadb shell3 :切換到root權限su - root4 : 修改system目錄為可讀寫權限mount -oremount,rw -t yaffs2 /dev/block/mtdblock3 /system5 :拷貝文件…

【ORACLE技術嘉年華PPT】MySQL壓力測試經驗

這是2013.11.18在第三屆ORACLE技術嘉年華上的主題演講PPT。點擊這里:本地下載PPT。--------------------------------------分割線--------------------------------------知數堂 (http://zhishuedu.com)培訓是由資深MySQL專家葉金榮、吳炳錫…

EditText 空指針問題

今天在Android中碰到了這樣一個問題,其實應該很少人會碰到,因為只有像我這種奇葩才會犯這種錯誤。 但既然解決了,我就想在這里跟大家分享一下,畢竟它困擾了我一個白天啊。。。不多說了,看下面。。。 其實問題很簡單&am…

ios跨線程通知_iOS多線程開發(三)---Run Loop(一)

Run LoopRun Loop就是一個事件處理的循環,用來不停的調動工作以及處理輸入事件。使用Run Loop的目的就是節省CPU效率,線程在有工作的時候忙于工作,而沒工作的時候處于休眠狀態。一,Run Loop剖析Structure of a Run Loop and its s…

android播放flv,Android:從url播放flv視頻流

我目前有一個應用程序,它可以記錄視頻并將其上傳到我的服務器。在上傳視頻之后,應用程序會獲得一個響應,該響應包含指向該文件的flv流的URL。Android:從url播放flv視頻流當我嘗試在android默認視頻播放器(視頻)中打開流時什么也沒…

1.關于瀏覽器

一、認識主流瀏覽器 Chrome谷歌瀏覽器Safari蘋果瀏覽器Firefox火狐瀏覽器Opera歐朋瀏覽器 二、瀏覽器內核是什么? 三、五大瀏覽器,四大內核 四、前端做網頁開發用什么瀏覽器? Chrome谷歌瀏覽器。

About me [my way]

就要除夕了。假日的到來,心情瞬間就閑適了下來。早早上了床,看看電腦還有30%的電,想到一些事情,順帶紀錄一下吧。 今年堅持上班到了除夕的前一天,爸媽來工作的城市陪我過年了。感謝他們。前幾天就已經看帖子有說仍在上…

明天要中秋節了,先來到簡單“類”的題目

2-1 Point類的定義 Time Limit: 1000MS Memory limit: 65536K 題目描述 通過本題目的練習可以掌握類與對象的定義; 設計一個點類Time,它具有私有數據成員x(橫坐標)、y(縱坐標);公有成員函數:SetPoint(int,int)用于設置點對象的值&…

實時數據交換平臺 - BottledWater-pg with confluent

標簽 PostgreSQL , Bottled Water , Kafka , Confluent , IoT 背景 想必大家都在圖書館借過書,小時候有好看的書也會在小伙伴之間傳閱。 借書和數據泵有點類似,一份數據通過數據泵實時的分享給訂閱者。 例如在IoT的場景中,有流式分析的需求&a…

科技鴻蒙系統一千章,第一千六百零七章 鴻蒙紫氣,成圣之機 (上)

文學迷 > 玄幻魔法 > 天命神相 > 第一千六百零七章 鴻蒙紫氣,成圣之機 (上)第一千六百零七章 鴻蒙紫氣,成圣之機功德金身只要達到了八十一重天,大圓滿的境界,實力堪混元大羅級別的圣人,這聽起來確實是一件吊炸…

js reduce實現中間件_js數組高階方法reduce經典用法代碼分享

以下是個人在工作中收藏總結的一些關于javascript數組方法reduce的相關代碼片段,后續遇到其他使用這個函數的場景,將會陸續添加,這里作為備忘。javascript數組那么多方法,為什么我要單挑reduce方法,一個原因是我對這個…

struts2的s:iterator 標簽 詳解

struts2的s:iterator 可以遍歷 數據棧里面的任何數組,集合等等 以下幾個簡單的demo:s:iterator 標簽有3個屬性: value:被迭代的集合 id :指定集合里面的元素的id status 迭代元素的索引1:jsp…

Protocol Buffers的應用

1. Protocol Buffers的介紹 Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then …

編程提高:一天一道編程題

1.文本操作 逆轉字符串——輸入一個字符串,將其逆轉并輸出。 拉丁豬文字游戲——這是一個英語語言游戲。基本規則是將一個英語單詞的第一個輔音音素的字母移動到詞尾并且加上后綴-ay(譬如“banana”會變成“anana-bay”)。可以在維基百科上了…

android自驗簽名證書,沒有以前的互聯網連接,無法驗證Android自簽名證書

使用SSL基礎架構:我們有一個有效的客戶端/服務器設置,其中Android版本4.2和4.4的手機充當客戶端,必須通過其自簽名SSL證書驗證服務器.問題:只要設備在嘗試連接之前至少有一次互聯網訪問權限,服務器證書驗證就會起作用.但是,如果執行恢復出廠設置且設備直…

asp.net緩存(二)

ASP.NET頁面局部緩存 有時緩存整個頁面是不現實的,因為頁的某些部分可能在每次請求時都需要變化。在這些情況下,只能緩存頁的一部分。顧名思義,頁面部分緩存是將頁面部分內容保存在內存中以便響應用戶請求,而頁面其他部分內容則為…

學習C# - Hello,World!

第一天學C#,開始學著寫一些學習筆記,看了一下傳智播客的視頻,按照傳智播客的教學順序,開始學習。 class Program{static void Main(string[] args){Console.WriteLine("Hello World!");//自動添加回車換行Console.Write("Hell…

android獲取button寬度,android – 如何獲得Button的高度和寬度

我創建了一系列按鈕.現在我想找到按鈕的高度和寬度,為此我使用了getWidth()和getHeight().但問題是它總是返回0.為什么會發生這種情況?我發送了我的代碼,請檢查是否有任何問題.int x,y;LinearLayout layoutVertical (LinearLayout) findViewById(R.id.liVLayout);L…

java執行sql列名無效_嵌套異常是java.sql.SQLException:無效的列名ORACLE

我嘗試在Java中使用JdbcTemplate執行以下oracle查詢:select RESOURCE_IDfrom REPRO_PRINTING_JOBwhere (USER_ID? and PRINTING_CENTER_ID?)group by RESOURCE_IDunion allselect RESOURCE_IDfrom REPRO_PRINTING_JOB_OLDwhere (USER_ID? and PRINTING_CENTER_ID…