接口自動化(2)----如何編寫接口自動化用例


1. 測試用例

1.1 了解測試用例

1)百度百科:什么是測試用例?

2)英文名:Test Case,簡稱TC

1.2 測試用例標題

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

1.3 測試用例描述

前置條件:
  登錄:是否需要登錄,什么角色登錄
  權限:賬號是否有訪問接口的權限
  關聯:是否對其他接口有依賴(只關心直接依賴)
測試步驟:
  步驟:測試操作步驟
  期望:執行操作步驟后需要進行斷言(針對本接口或其他關聯接口)

# 注意:測試步驟中的步驟和期望可以多次出現
tc_desc

1.4 測試用例等級

2. python3下pytest+allure的安裝使用

2.1 安裝第三方包

1. 先安裝pytest庫
    pip install pytest
2. 再安裝allure-pytest庫
    pip install allure-pytest
python包安裝

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. 校驗:
''')
配置信息


免責聲明!

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



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