此工程是為了示范qt4s框架使用方式的demo工程。
快速上手
環境准備: 1-安裝python,如 2.7.13、2.7.16,配置好環境變量,包括根目錄、Scripts目錄、Tools目錄 2-安裝python組件,pip、setuptools,附下載地址 https://mirrors.cloud.tencent.com/pypi/packages/8b/8a/1b2aadd922db1afe6bc107b03de41d6d37a28a5923383e60695fba24ae81/pip-19.2.1.tar.gz#md5=e9ac3e030e88b6c076a20ab371a30742 https://mirrors.cloud.tencent.com/pypi/packages/25/4e/1b16cfe90856235a13872a6641278c862e4143887d11a12ac4905081197f/setuptools-28.8.0.tar.gz#md5=43d6eb25f60e8a2682a8f826ce9e3f42 3-安裝ide,如 PyCharm
拉取測試代碼並安裝依賴:
git clone http://git.code.oa.com/ittest/QTA-QT4S-Demo.git
在代碼根目錄執行 :
pip install -r requirements.txt -i http://pypi.dq.oa.com/simple --trusted-host pypi.dq.oa.com
檢查組件: 在控制台中輸入pip list , 可以看到的組件有 pip、setuptools、qt4s 即代表環境准備完成
命令行執行測試用例
python manage.py runscript projtest/http_demo.py
可以看到,在命令行用例的執行情況,執行了一個測試用例,並且都通過了。
我們上面是在命令行執行的測試用例,可以導入到PyCharm 中開始編寫自己的測試用例。
編寫測試用例
編寫用例
我們先看下工程中已有的測試用例projtest.http_demo,代碼如下:
class HttpDemoTest(TestCase):
'''http demo testcase
'''
timeout = 5
owner = 'willtang'
priority = TestCase.EnumPriority.High
status = TestCase.EnumStatus.Ready
def run_test(self):
self.start_step('准備測試數據')
self.start_step('發送請求並獲取回包')
rsp_body, rsp_code, rsp_headers = visit()
# 判斷預期數據是否在返回頁面中,將判斷結果保存在 result
result = "關於我們" in rsp_body
self.start_step('檢查回包內容')
self.assert_("返回碼錯誤", rsp_code == 200)
self.assert_("返回頁面錯誤", result == True)
可以看到,一個用例就是一個類,這個類繼承自TestCase。
一個用例,有4個屬性:
-
timeout,用例執行最大的超時時間
-
owner,用例的作者
-
priority,用例的優先級
-
status,用例的狀態
用例定義了run_test方法,當用例執行的時候,就是從run_test入口開始的。更多用例相關的內容,如用例的初始化和清理,可以參考:設計測試用例。
這里我們主要關注一個后台測試用例的步驟,上面代碼中,可以清晰看到,用例包含了三個步驟:
-
准備測試數據,
-
調用自己定義的接口(所有的接口定義都在projlib中),發送請求並獲取回包
-
檢查回包,對回包的內容進行檢查,使用了斷言
基本上,對每個后台的請求收發,都可以按照上面的模式進行套用。可以看到通過對通道和請求的封裝,用例的內容是非常簡單的。
更加詳細的命令行執行測試用例的方式可以參考文檔:執行測試。
ps:可以結合洞悉dongxi庫、 codecc插件做安全測試