隨手寫個介面測試工具,讓領導瞧瞧我的能耐

在工作過程中相信很多人都或多或少的知道甚至使用過postman或jmeter等工具做介面測試,那麼postman/jmeter這個工具是怎麼來的呢?

今天我就帶大家初步實踐寫一個簡單的類似postman的介面測試工具。

本文主要利用pyside2+python設計一個簡單的介面測試工具,並打包成exe檔案,透過這一系列實踐,既能將自己寫好的工具以圖形介面的形式提供給他人使用,又能防止原始碼洩漏。

瞭解常用的GUI庫

在開始進行實戰前,可簡單瞭解一下幾種常見的圖形化介面設計需要的庫:

Tkinter(是python最簡單的圖形化模組)。

PyQt(是python最複雜也是使用最廣泛的圖形化模組,PyQt的採用的是GPLv3),若使用該庫,則要求程式碼是開源的,若是引用該庫,但是程式碼非開源的,可能會面臨起訴。

PySide2 :Pyside2的LGPL協議要求動態連結可以閉源商用,一般情況下選擇該庫進行GUI設計。

環境安裝

pip install PySide2 #PySide2是一個GUI庫在,主要用於設計程式介面

(左右滑動檢視完整程式碼)

pip install pyinstaller #pyinstaller主要用於將程式碼打包成exe檔案時使用的模組

(左右滑動檢視完整程式碼)

若是直接安裝失敗,可百度豆瓣源地址進行安裝。

介面設計-輸出UI格式檔案

對介面工具的頁面進行設計,設計完成後會形成一個UI格式的檔案。本文實踐案例示範完成一個簡單的介面測試工具,介面設計如下圖,分為三個部分:

第一個部分:請求方法、請求地址、傳送請求、清空資料;

第二個部分:請求頭、請求體;

第三個部分:響應資訊頭、響應資料。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

PySide2圖形工具相關元件和使用方法介紹:

a) 按鈕:pushButton

i。 點選按鈕clicked()

b) 單行文字框:lineEdit

i。 獲取文字text()

ii。 使用者名稱或者其他需要明文顯示時,則可選擇echoMode=Normal

iii。 密碼類的需要直接“*”顯示,則可選擇echoMode=Password

iv。 密碼類的需要編輯時明文顯示,編輯結束則“*”顯示,則可選擇echoMode= PasswordEchoOnEdit

c) 多行文字框:QPlainTextEdit

i。 獲取多行文字:toPlainText()

ii。 設定提示文字:setPlaceholderText (‘提示文字’)

d) 文字瀏覽框:textBrowser

i。 獲取文字:toPlainText()

ii。 設定提示文字:setPlaceholderText (‘提示文字’)

e) 組合選擇框:QComBox

i。 透過addItem新增單個選項,透過addItems([,,])新增多個選項

ii。 透過setCurrentText(‘請選擇’)設定預設當前選項的值

iii。 透過currentText()獲取選項框的當前值

f) 文字標籤:label

介面佈局

介面佈局說白了就是各個控制元件的位置區域調整,常見的佈局有三種:水平佈局、垂直佈局、柵格佈局。

水平佈局:就是各個元件水平排列對齊。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

垂直佈局:就是各個元件垂直排列對齊。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

柵格佈局:柵格佈局與水平佈局和垂直佈局皆不一樣,網格佈局內部透過一個無形的網格來對其中的控制元件進行佈局。

最後為了能讓佈局內的控制元件隨著視窗自動縮放,可在視窗空白區域(非控制元件區域)右鍵選擇任意一種佈局即可。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

程式碼設計-輸出py格式檔案

本專案的程式碼可以分為兩個部分:

第一部分:引用設計好的介面元件

第二部分:介面請求的邏輯程式碼

01

初始化圖形介面

引用圖形介面的元素的方式,跟進行UI自動化的元素定位有點類似:

1。 定義透過ui物件

2。 找到對應的元素名稱

3。 對該元素進行相應的操作

呼叫圖形介面的整體過程如下:

1。 建立app程式物件

2。 獲取圖形物件:開啟ui檔案

3。 讀取ui檔案

4。 載入ui檔案內的物件

5。 關閉ui檔案

6。 展示圖形介面

7。 執行程式

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

02

業務邏輯處理

處理業務邏輯時,需要涉及到三個內容:

1。透過圖形介面獲取使用者資料

2。透過點選事件觸發業務邏輯處理

3。將業務處理結果展示在圖形介面上

程式碼說明

01

操作圖形介面的元件的格式

ui物件。元件的objectname。動作(透過“。”連線)。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

02

初始化請求方法的選項值

GET\POST\PUT\DELETE。

03

定義介面請求函式

a) 透過圖形介面控制元件獲取使用者輸入的資料:獲取的資料是字串格式,需要轉化為json格式;

b) 發起介面請求:利用request庫完成介面請求;

c) 獲取響應資訊頭、響應資料;

d) 響應資訊新增到圖形介面上展示:獲取到的資料透過append新增到文字瀏覽器前,需要對將資料轉為str格式。

04

定義清空資料函式

事先明確好,點選清楚按鈕時,需要清空哪些控制元件的資料或將選擇框設定什麼預設值。

本文設計點選清空按鈕時做以下兩個操作:

1) 清空響應資訊頭、響應資料兩個文字框;

2) 重置請求方法選擇框的預設值為“請選擇”。

05

點選按鈕繫結業務函式

點選後透過connect()方法連線函式方法,格式:

ui物件按鈕:objectname。 clicked。connect

傳送按鈕:ui。send_pushButton。clicked。connect(send_request)

清空按鈕:ui。clear_pushButton。clicked。connect(clear)

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

專案打包

這樣可以避免程式碼洩漏,方便他人使用工具。

程式寫好了後,圖形介面也設計好了之後,每次使用都要執行程式碼閒的很麻煩,而且其他人還得複製你的程式碼。

所以這個時候就可以用到“打包”的功能,透過打包將工具生成為一個exe程式,其他人可直接使用。具體過程如下。

1。進入專案的py資料夾目錄下,cmd開啟命令視窗,執行打包命令:

pyinstaller -F RequestTool。py ——hidden-import PySide2。QtXml

(左右滑動檢視完整程式碼)

其中RequestTool。py為python程式碼檔案。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

2。打包成功後本地可看到對應的資料夾如下:

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

3。將介面ui檔案複製到dist資料夾目錄下。

4。雙擊執行exe檔案即可。

如果執行程式時不需要後面的命令視窗(黑色視窗,可在進行打包時增加引數-w即可去除該視窗)。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

專案實戰成果

專案內其他成員可直接執行打包好的的exe檔案,即可使用介面測試工具V1。0。

隨手寫個介面測試工具,讓領導瞧瞧我的能耐

總結

所有的產品都不是一蹴而就,都是透過不斷地迭代最佳化而來。本文只是簡單的示範了基礎的介面測試工具,有興趣的人可進行第二版本、甚至的第三版本的迭代開發。

寫這篇文章的目的在於給大家做個示範,如何將日常學過的GUI程式設計、介面測試等融合輸出成為一個能說的出去的產品,更甚至能合理有效的運用到我們的工作中。