接口自動化項目的實現


測試過程如下:

1、接口測試項目先向測試數據庫中插入測試數據(zhangsan的個人信息)

2、調用被測試系統接口(傳參username="zhangsan")

3、系統接口根據傳參(username="zhangsan")向測試數據庫中進行查詢並得到zhangsan的個人信息

4、將查詢結果組裝成一定格式的數據,並返回給被調用者

5、通過單元測試框架斷言接口返回數據(zhangsan的個人信息),並生成測試報告

為了使正式數據庫的數據不被污染,應使用獨立的測試數據庫。

 

舉例:接口測試

import requests

#查詢發布會接口

url = "http://127.0.0.1:8000/api/get_event_list/"
r = requests.get(url,params = {'eid':'1'})
result = r.json()
print(result)
assert result['status'] == 200
assert result['message'] == "success"
assert result['data']['name'] == "xx 產品發布會"
assert result['data']['address'] == "北京林匹克公園水立方"
assert result['data']['start_time'] == "2016-10-15T18:00:00"

  因為“發布會查詢接口” 是 GET 類型, 所以, 通過 requests 庫的 get()方法調用, 第一個參數為調用接口
URL 地址, params 設置接口的數, 參數以字典形式組織。
  json()方法可以將接口返回的 json 格式的數據轉化為字典。
接下來就是通過 assert 語句對接字典中的數據進行斷言。分別斷言 statusmessage data 的相關數據等

舉例:接口自動化測試

使用 unittest 單元測試框架開發接口測試用例。

 

#-*-coding:utf-8-*- 
import unittest

import requests

__author__ = 'Administrator'

class GetEventListTest(unittest.TestCase):
    '''查詢發布會接口測試'''
    def setUp(self):
        self.url = "http://127.0.0.1:8000/api/get_event_list/"

    def test_get_event_null(self):
        '''發布會 id 為空'''
        r = requests.get(self.url, params={'eid':''})
        result = r.json()
        print(result)
        self.assertEqual(result['status'], 10021)
        self.assertEqual(result['message'], "parameter error")

    def test_get_event_success(self):
        '''發布會 id 為 1, 查詢成功'''
        r = requests.get(self.url, params={'eid':'1'})
        result = r.json()
        print(result)
        self.assertEqual(result['status'],200)
        self.assertEqual(result['message'], "success")
        self.assertEqual(result['data']['name'], "xx 產品發布會")
        self.assertEqual(result['data']['address'], "北京林匹克公園水立方")
        self.assertEqual(result['data']['start_time'], "2016-10-15T18:00:00")

if __name__ == '__main__':
        unittest.main()
import unittest
from count import Calculator
class CountTest(unittest.TestCase):
  def setUp(self):
    self.cal = Calculator(8, 4)
  def tearDown(self):
    pass
  def test_add(self):
    result = self.cal.add()
    self.assertEqual(result,12)
  def test_sub(self):
    result = self.cal.sub()
    self.assertEqual(result,4)
  def test_mul(self):
    result = self.cal.mul()
    self.assertEqual(result,32)
  def test_div(self):
    result = self.cal.div()
    self.assertEqual(result,2)
if __name__ == "__main__":
  #unittest.main()
  # 構造測試集
  suite = unittest.TestSuite()
  suite.addTest(CountTest("test_add"))
  suite.addTest(CountTest("test_sub"))
  suite.addTest(CountTest("test_mul"))
  suite.addTest(CountTest("test_div"))
  # 執行測試
  runner = unittest.TextTestRunner()
  runner.run(suite)

單元測試用例。
  首先, 通過 import 導入 unittest 單元測試框架。
  創建 CountTest 類繼承 unittest.TestCase 類。
  setUp()tearDown()在單元測試框架中比較特別, 它們分別在每一個測試用例的開始和結束執行。setUp()
方法用於測試用例執行前的初始化工作, 例如初始化變量、 生成數據庫測試數據、 打開瀏覽器等。 tearDown()
方法與 setUp()方法相呼應, 用於測試用例執行之后的善后工作, 例如清除數據庫測試數據、 關閉文件、 關閉
瀏覽器等。
  unittest 要求測試方法必須以“test” 開頭。 例如, test_addtest_sub 等。
  接下來, 調用 unittest.TestSuite()類中的 addTest()方法向測試套件中添加測試用例。 簡單的可以將測試套
件理解成運行測試用例的集合。
  通過 unittest.TextTestRunner()類中的 run()方法運行測試套件中的測試用例。
  如果想默認運行當前測試文件下的所有測試用例, 可以直接使用 unittest.main()方法。 那么 main()方法在
查找測試用例時按照兩個規則。 首先, 該測試類必須繼承 unittest.TestCase 類; 其次, 該測試類下面的方法必
須以“test” 開頭。

接口自動化測試框架實現 :

  關於接口自動化測試, unittest 已經幫我們做了大部分工作, 接下來只需要集成數據庫操作, 以及
HTMLTestRunner 測試報告生成擴展即可 .


免責聲明!

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



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