qt4s自動化接口測試框架上手


QT4SDemo工程

此工程是為了示范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插件做安全測試

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM