1. 測試用例
1.1 了解測試用例
1)百度百科:什么是測試用例?
2)英文名:Test Case,簡稱TC
1.2 測試用例標題

# 用例 {1}_{2}_{3}_{4}_{5} 其中: 1代表業務模塊 2代表接口抽象功能 3代表正向還是反向 4代表接口具體某一功能 5代表用例的重要細節描述,可以沒有也可以有多次描述 # 舉例說明 用例標題1:設備管理_添加設備_正測_添加一台店計設備 用例標題2:設備管理_添加設備_反測_添加一台閘機設備_閘機編碼已存在
1.3 測試用例描述

前置條件: 登錄:是否需要登錄,什么角色登錄 權限:賬號是否有訪問接口的權限 關聯:是否對其他接口有依賴(只關心直接依賴) 測試步驟: 步驟:測試操作步驟 期望:執行操作步驟后需要進行斷言(針對本接口或其他關聯接口) # 注意:測試步驟中的步驟和期望可以多次出現
1.4 測試用例等級
2. python3下pytest+allure的安裝使用
2.1 安裝第三方包

1. 先安裝pytest庫 pip install pytest 2. 再安裝allure-pytest庫 pip install allure-pytest
2.2 安裝allure html工具
Allure Framework是一款使用靈活的、支持多語言的測試報告工具。

第1步:下載工具:https://github.com/allure-framework/allure2/releases
第2步:添加環境變量(windows和linux下)
第3步:使用說明:allure generate [xml文件路徑] -o [html文件路徑] --clean
2.3 pytest的基本使用
1) 查找以test開頭或結尾的函數執行
2) pytest執行用例命令:
pytest.main(['-s', '-v', 'file_path', "--alluredir=./report/xml"])
2.4 allure的基本使用

1 # -*- coding: utf-8 -*- 2 # @Time : 2019/9/16 16:38 3 # @Author : chinablue 4 5 import allure 6 7 @allure.feature("一級模塊") 8 @allure.story("二級模塊") 9 @allure.description(''' 10 前置條件: 11 1.登錄:平台管理員 12 2.權限:有訪問權限 13 3.關聯數據:xxx 14 測試步驟: 15 1. 步驟:yyy 16 2. 校驗:zzz 17 ''') 18 def test(): 19 with allure.step("步驟:yyy"): 20 pass 21 with allure.step("校驗:zzz"): 22 pass 23 24 import pytest 25 case_flie = r"C:\Users\reconova\Desktop\0909\new\case\module_rank\tmp.py" 26 pytest.main(['-s', '-v', '{}'.format(case_flie), "--alluredir=./output/report/xml"]) 27 28 import os 29 cmd = "allure generate ./output/report/xml -o ./output/report/html --clean" 30 os.popen(cmd)
3. 編寫接口測試用例的規則說明
實現思路:使用python版的allure庫(依賴pytest庫)來編寫測試用例,並以html的形式呈現用例。
3.1 概念解釋

1)測試用例:一個以test開頭的函數。 2)測試類:一個以Test開頭的類,類中可以包含多個測試用例。 3)測試模塊:一個.py文件,文件中可以包含多個測試類。 4)測試集:一個測試集可以包含多個測試模塊。
3.2 新建測試模塊
${project_root}/case/module_rank/person.py
3.3 新建測試類
1)類名采用大駝峰,命名規則說明如下:

命名格式:Test{1}{2} # 1代表模塊名稱。如:Person,Device等 # 2代表接口抽象功能。如:Add,Delete,Edit,Detail,List等
2)舉個栗子

# TestPersonAdd 代表人員管理模塊的新增接口 # TestDeviceEdit 代表設備管理模塊的編輯接口
3.4 新建測試方法
1)命名規則說明如下:

命名格式:test_{1}_{2}_(3) # 1代表正測還是反測 # 2代表接口具體功能 # 3代表用例重要細節描述,此部位可以沒有也可以描述多次
2)舉個栗子

# test_反測_添加設備_抓拍相機_設備編碼已使用 # test_正測_添加人員_普通人員 # test_正測_添加人員_普通人員_只填必填
3.5 綜合運用(一)

1 # -*- coding: utf-8 -*- 2 # @Time : 2019/9/23 11:15 3 # @Author : chinablue 4 # @File : person.py 5 6 7 class TestPersonAdd(): 8 9 def test_正測_人員添加_普通人員(self): 10 pass 11 12 13 class TestPersonDelete(): 14 15 def test_正測_人員刪除_特殊人員(self): 16 pass 17 18 19 class TestPersonEdit(): 20 21 def test_正測_人員編輯_人員姓名(self): 22 pass 23 24 25 class TestPersonDetail(): 26 27 def test_反測_人員詳情_人員id不存在(self): 28 pass 29 30 31 class TestPersonList(): 32 33 def test_正測_人員列表_通過人員性別篩選_男(self): 34 pass
3.6 allure的常用標簽介紹
項目地址: https://github.com/allure-framework/allure-python
文檔地址: https://docs.qameta.io/allure/

# 測試用例標簽,分組第一層 1)@allure.feature("一級標簽") # 測試用例標簽,分組第二層 2)@allure.story("二級標簽") # 測試用例級別 3)@allure.severity("用例等級") # 測試用例標題,默認使用函數名。 4)@allure.title("用例標題") # 動態生成功能, 常用於數據驅動的用例函數內部. 此方法會覆蓋@allure.title("用例標題") 5)@allure.dynamic.title("用例標題") # 測試用例描述 6)@allure.description ("用例描述") # 測試用例步驟 7)@allure.step("用例步驟") # 在報告中呈現重要步驟的相關信息 8)@allure.attach()
3.7 綜合運用(二)
學習目標:在測試用例中該如何運用allure標簽

# -*- coding: utf-8 -*- # @Time : 2019/9/23 11:15 # @Author : chinablue # @File : person.py import allure @allure.feature("人員管理") @allure.story("人員添加") class TestPersonAdd(): @allure.description(''' 前置條件: 1.登錄:平台管理員 2.權限:有訪問權限 3.關聯數據: 測試步驟: 1. 步驟:添加一個普通人員A 2. 校驗:可以查看到人員A的詳情信息 3. 校驗:人員列表中可以查看到人員A ''') @allure.severity(allure.severity_level.NORMAL) def test_正測_人員添加_普通人員(self): with allure.step("步驟:添加一個普通人員A"): pass with allure.step("校驗:可以查看到人員A的詳情信息"): pass with allure.step("校驗:人員列表中可以查看到人員A"): pass
4. 高效編寫測試用例
實現思路:在pycharm中自定義模板代碼,快速輸出固定代碼塊
4.1 pycharm如何自定義模板代碼塊
1)打開pycharm后依次點擊:File--Settings--Editor--Live Templates
2)點擊加號(綠色)--點擊Live Template
3)定義模板代碼塊

# 輸入信息的含義說明 Abbreviation: 模板代碼塊的名字 Description: 模塊代碼塊的描述 Template text:模板代碼塊的具體信息
4.2 舉例說明
學習目標:通過自定義模板代碼塊,快速生成測試用例描述的內容模板

1. Abbreviation中輸入內容:tcdesc 2. Description中輸入內容:測試用例描述 3. Template text中輸入內容如下: @allure.description(''' 前置條件: 1.登錄:平台管理員 2.權限:有訪問權限 3.關聯數據: 測試步驟: 1. 步驟: 2. 校驗: ''')