隨手寫個介面測試工具,讓學妹瞧瞧我的能耐
學妹的問題
教妹寫工具,沒見過這麼放肆的標題吧?“語不驚人死不休”,沒錯,本篇文章的標題就是這麼酷炫,不然你怎麼會點進來?
在學習的日子裡很多青年脫坑,同時也有很多青年入坑,但入坑的時候可能沒有什麼好的指導或者學習方法可能頭髮掉的一發不可收拾……
博主有個學妹就遇到了相同的境遇,學妹被介面測試搞得頭暈目眩。
本著友好互助的原則,不顧女朋友的反對,本篇就根據筆者的理解自己邊寫邊教教學妹,先不說其它的了,你們先看文章,我去跪一會榴蓮。
瞭解常用的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格式檔案
本專案的程式碼可以分為兩個部分:
- 第一部分:引用設計好的介面元件
- 第二部分:介面請求的邏輯程式碼
初始化圖形介面
引用圖形介面的元素的方式,跟進行UI自動化的元素定位有點類似:
1.定義通過ui物件
2.找到對應的元素名稱
3.對該元素進行相應的操作
呼叫圖形介面的整體過程如下:
1.建立app程式物件
2.獲取圖形物件:開啟ui檔案
3.讀取ui檔案
4.載入ui檔案內的物件
5.關閉ui檔案
6.展示圖形介面
7.執行程式
業務邏輯處理
處理業務邏輯時,需要涉及到三個內容:
1.通過圖形介面獲取使用者資料
2.通過點選事件觸發業務邏輯處理
3.將業務處理結果展示在圖形介面上
程式碼說明
1.操作圖形介面的元件的格式
ui物件.元件的objectname.動作(通過“.”連線)。
2.初始化請求方法的選項值
GET\POST\PUT\DELETE。
3.定義介面請求函式
a) 通過圖形介面控制元件獲取使用者輸入的資料:獲取的資料是字串格式,需要轉化為json格式;
b) 發起介面請求:利用request庫完成介面請求;
c) 獲取響應資訊頭、響應資料;
d) 響應資訊新增到圖形介面上展示:獲取到的資料通過append新增到文字瀏覽器前,需要對將資料轉為str格式。
4.定義清空資料函式
事先明確好,點選清楚按鈕時,需要清空哪些控制元件的資料或將選擇框設定什麼預設值。
本文設計點選清空按鈕時做以下兩個操作:
1)清空響應資訊頭、響應資料兩個文字框;
2) 重置請求方法選擇框的預設值為“請選擇”。
5.點選按鈕繫結業務函式
點選後通過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。
結語
OK,到此完美解決了學妹的問題,如有需要了解軟體測試相關的其他內容,可到「 主頁 」進行檢視學習~
同時,大家覺得深度不夠或者有錯誤還請見諒,建議評論區共同探討