一步一步教你打造介面測試平台 2

2022-07-04 06:15:13 字數 2306 閱讀 2556

這一節我們實現下面兩個功能

為了測試方便,我們先在main.py檔案中增加2個測試的介面

def api():

return jsonify()

def error():

codes = [404, 401, 403, 500]

random.shuffle(codes)

abort(codes[0])

再修改handle_get()方法

def handle_get():

url = request.form['url']

try:

r = requests.get(url)

except exception as e:

print(e)

r = none

resp = build_resp(r)

return render_template('home.html', resp=resp)

def build_resp(r):

resp =

if r is none:

return resp

if r.status_code < 400:

resp['success'] = true

resp['url'] = r.url

resp['text'] = r.text

resp['headers'] = r.headers

resp['status_code'] = r.status_code

return resp

這裡我們新增了build_resp(r)方法,該方法的主要作用是判斷請求響應的狀態碼,如果小於400就將請求成功狀態設定為true。

下面修改前端頁面home.html

狀態碼: }

headers

}: }

body

}
執行失敗

狀態碼: }

響應: }

上面主要的修改是回顯get請求的url,另外如果請求是失敗狀態,就展示失敗的資訊。

修改完成後,使用/error介面進行測試,效果如下

我們使用最偷懶最不安全的方式去實現斷言,使用python的eval()方法,大家有興趣可以自行了解一下。該方法主要的作用就是動態去執行一段python**,是黑魔法,不安全,僅僅作為演示使用,大家不要在生產環境使用。

我們的設計是讓使用者在頁面上輸入乙個斷言表示式,也就是純python**。預設情況下我們將伺服器返回的json字串轉換成python字典,並賦值給obj變數。簡單理解的話就是伺服器的返回會自動轉成名為obj的字典物件,我們可以使用下面的語法來進行斷言

也就是提供1個python表示式,只要表示式返回的是boolean值就好了。

實現後效果如下,我們使用/api介面進行測試

上面我們測試了斷言通過和失敗的情況,一切如預期。

main.py中實現的核心**其實很簡單。

def handle_get():

url = request.form['url']

assertion = request.form['assert']

assertion_success = none

try:

r = requests.get(url)

if assertion is not none and assertion != '':

obj = r.json()

if assertion:

assertion_success = eval(assertion)

except exception as e:

print(e)

r = none

resp = build_resp(r)

resp['assertion'] = assertion

resp['assertion_success'] = assertion_success

return render_template('home.html', resp=resp)

上面的**裡我們將使用者輸入的python表示式直接使用eval方法執行,如果表示式為真,則斷言通過,否則失敗。該方法很危險,大家可以去搜尋一下為什麼。

前端頁面的核心修改如下

斷言成功

斷言失敗

}

判斷斷言執行的狀態並給予相應的顯示。

完整**這裡

一步一步教你打造介面測試平台 2

這一節我們實現下面兩個功能 為了測試方便,我們先在main.py檔案中增加2個測試的介面 def api return jsonify def error codes 404,401,403,500 random.shuffle codes abort codes 0 再修改handle get 方...

一步一步教你配置vnc

配置 vnc遠端桌面連線 1.在命令列輸入 init 3 進入純字元介面 2.kill 掉所有與 x有關的程序 用命令ps aux grep x 然後kill 程序號1 程序號2 只要找到的程序都 kill 掉 如果不會使用 kill 命令,直接重啟電腦 3.首先檢查 vncserver 是否安裝使...

一步一步打造WebIM 3 效能測試

webim系列文章 在一步一步打造webim 1 和 2 中,已經討論了如何開發乙個webim,並且使用快取來提高webim的效能,本文將編寫乙個程式模擬大量使用者登入來對webim進行效能測試。測試一將模擬200個使用者同時登入的聊天室,每個使用者以1條訊息 秒的速度傳送訊息 由於網路和伺服器處理...