介面自動化使用requests生成測試報告

行走的小劉發表於2021-01-04
  1. 什麼是介面測試
    顧名思義,介面測試是對系統或元件之間的介面進行測試,主要是校驗資料的交換,傳遞和控制管理過程,以及相互邏輯依賴關係。其中介面協議分為HTTP,WebService,Dubbo,Thrift,Socket等型別,測試型別又主要分為功能測試,效能測試,穩定性測試,安全性測試等。

在分層測試的“金字塔”模型中,介面測試屬於第二層服務整合測試範疇。相比UI層(主要是WEB或APP)自動化測試而言,介面自動化測試收益更大,且容易實現,維護成本低,有著更高的投入產出比,是每個公司開展自動化測試的首選。

下面我們以一個HTTP介面為例,完整的介紹介面自動化測試流程:從需求分析到用例設計,從指令碼編寫、測試執行到結果分析,並提供完整的用例設計及測試指令碼。

  1. 基本流程
    基本的介面功能自動化測試流程如下:
    需求分析 -> 用例設計 -> 指令碼開發 -> 測試執行 -> 結果分析

2.1 示例介面
聚合資料網:http://v.juhe.cn/xhzd/query

程式碼:

import unittest
import HTMLTestRunner
import requests


# http://v.juhe.cn/xhzd/query
# 協議   域名
class Testjuhe(unittest.TestCase):
    def setUp(self):
        self.url = "http://v.juhe.cn"
        print("測試開始")

    def tearDown(self):
        print("測試結束")

    def test_query(self):  # 測試用例
        url = self.url + "/xhzd/query"
        data = {"key": "4268ec17fcf83a920e988a004b0eca1c", "word": "漢字"}
        res = requests.get(url, data)
        assert res.status_code == 200

    def test_bushou(self):
        url = self.url + "/xhzd/bushou"
        data = {"key": "4268ec17fcf83a920e988a004b0eca1c"}
        res = requests.post(url, data)
        # 如果需要動態token的話 需要自定到json中取
        assert res.status_code == 200


if __name__ == '__main__':
    # 建立測試用例容器
    testlist = unittest.TestSuite()
    # 將用例新增到容器中
    testlist.addTest(Testjuhe("test_query"))
    # testlist.addTest(類名("函式名"))
    testlist.addTest(Testjuhe("test_bushou"))

    # 建立測試報告
    # 建立檔案目錄
    file = "e:/ceshi/baogao/zidian.html"
    fle = open(file, "wb")  # 生成測試報告的時候用的是二進位制檔案wb    rb wb  以進位制的方式進行讀寫檔案
    # 定義測試報告,stream定義報告所寫入的內容,title為報告標題,description為報告的說明與描述
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=fle,
        title=u"介面測試報告",
        description=u"用例執行情況"
    )
    # 將測試報告和用例容器關聯在一起
    runner.run(testlist)

在這裡插入圖片描述

相關文章