接口自動化測試框架(五)--testcase包的介紹

繼上一篇commonlib的介紹,下面我們來介紹一下框架裏接口測試用例的編寫,
首先,我建議將接口按功能模塊劃分,每個大的功能模塊,單獨建一個包,這樣方便用例的維護。
在這裏插入圖片描述

一 測試用例的命名

首先用例以test_xxx.py命名,當然你也可以隨便命名,但是爲了用例的統一管理,建議統一命名~

二 測試用例的組成

之前博客也說過,接口最重要的兩個參數,
1:接口地址

        self.url = api_data['XXX']  # 獲取接口名稱
        confighttp.set_url(self.url)  # 將接口名稱傳給http配置文件中

接口地址的組成在初始化方法中獲取,調用testdata中api_data的字典,獲取字典中XXX的值,即是接口的參數,然後將接口參數傳給set_url方法,拼接接口地址的頭部信息,這個頭部信息組成方法在上一篇博客中已經分享。https://blog.csdn.net/weixin_43574761/article/details/106192527
2:報文

data = {
            "xxxxx"
        }

接口報文,我們直接將抓到的接口報文,放到data參數中即可,然後調用requests的post方法即可,如果你是get方法,則使用confighttp.get()即可。

下面是完整的demo,XXX自行根據實際接口替換

# coding=utf-8
"""
作者:vissy@zhu
"""

import unittest
from commonlib.confighttp import ConfigHttp
from testdata.api_data import api_data
from testdata.common_data import common_data
from commonlib.connectdb import connectdb

confighttp = ConfigHttp()

# @unittest.skip('該用例線下接口不通,跳過')
class Test_XXXXX(unittest.TestCase):
    '''
    xxxxxx
    '''

    def __init__(self, *args, **kwargs):
        super(Test_XXXXX, self).__init__(*args)
        self.url = api_data['XXX']  # 獲取接口名稱
        confighttp.set_url(self.url)  # 將接口名稱傳給http配置文件中

    def test_xxxx(self):
        data = {
            "xxxxx"
        }
        confighttp.set_data(data)
        self.response = confighttp.post().json()
        self.check_result()

    def check_result(self):
        connect = connectdb()
        conn = connect[0]
        cc = connect[1]
        cc.execute("SELECT * FROM user WHERE user_id=%s" % self.user_id)  # 查詢
        result = cc.fetchall()  # 獲得數據庫查詢結果
        conn.commit()
        conn.close()
        # 結果驗證
        self.assertEqual(self.response['responseStatus']['errorcode'], 0, '接口連接錯誤')
        self.assertEqual(self.response['basic']['name'], result[0][7], '用戶名錯誤')


特別說明

1:測試方法必須以test開頭,是因爲unittest默認尋找test開頭的方法,當然,如果你想自定義,也是可以的,改一下源碼裏的默認值即可。不建議改哈,瞭解即可,無關緊要的東西。路徑(我的是mac電腦)/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/loader.py,
在這裏插入圖片描述
2:check_result(self)是否需要數據庫連接,自己選擇,不需要的話,全部拿掉
3:結果驗證,一般常用的方法有:
assertEqual,判斷兩個參數值是否相等 assertLessEqual,判斷第一個參數值是否小於等於第二個參數值 assertIn,判斷第一個參數是否存在於第二個參數中
4:接口的返回的數據驗證由你根據實際接口來判斷,你可以驗證多條,也可以驗證一條
5:如果同一個接口,需要多條測試用例驗證,你可以在同一個測試類下面,定義多個方法來,比如:def test_a(self): def test_aa(self):,每個方法中,輸入不同的請求報文即可。
6:如果某個用例需要跳過,那麼在測試類或測試方法上面加上,這樣在執行用例的時候,該接口下的用例,會直接跳過。

@unittest.skip('該用例線下接口不通,跳過')

至於測試用例中引用了testdata裏的數據,而數據是如何組成的和調用的,下一篇博客將繼續分享~
大家如有任何問題,可以加我的微信:zx1187463903,拉你進軟測的微信羣,一起學習討論。
如果該篇博客,對你有幫助,開心的同時請美女小編喝杯咖啡也是極好的呀。-_-
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章