python接口自動化測試(七)-unittest-批量用例管理


  我們日常項目中的接口測試案例肯定不止一個,當案例越來越多時我們如何管理這些批量案例?如何保證案例不重復?如果案例非常多(成百上千,甚至更多)時如何保證案例執行的效率?如何做(批量)測試數據的管理?如何做到數據與腳本分離?

  以上這些問題才是我們自動化測試中要重點考慮的問題,單個用例其實並不難。

來看一下在unittest框架中如何管理批量案例:

 

一、手工加載批量用例:

# -*- coding:utf-8 -*-
# 批量用例執行--手工加載

import unittest

class TestOne(unittest.TestCase):
    def setUp(self):
        print '\ncases before'
        pass

    def test_add(self):
        '''test add method'''
        print 'add...'
        a = 3 + 4
        b = 7
        self.assertEqual(a, b)

    def test_sub(self):
        '''test sub method'''
        print 'sub...'
        a = 10 - 5
        b = 5
        self.assertEqual(a, b)

    def tearDown(self):
        print 'case after'
        pass

if __name__ == '__main__':
    # 1、構造用例集
    suite = unittest.TestSuite()

    # 2、執行順序是安加載順序:先執行test_sub,再執行test_add
    suite.addTest(TestOne("test_sub"))
    suite.addTest(TestOne("test_add"))

    # 3、實例化runner類
    runner = unittest.TextTestRunner()
# 4、執行測試 runner.run(suite)

 

二、自動加載批量用例:

# -*- coding:utf-8 -*-
# 批量用例執行--自動加載
import unittest
import os

class TestOne(unittest.TestCase):
    def setUp(self):
        print '\ncases before'
        pass

    def test_add(self):
        '''test add method'''
        print 'add...'
        a = 3 + 4
        b = 7
        self.assertEqual(a, b)

    def test_sub(self):
        '''test sub method'''
        print 'sub...'
        a = 10 - 5
        b = 5
        self.assertEqual(a, b)

    def tearDown(self):
        print 'case after'
        pass

if __name__ == '__main__':
    # 1、設置待執行用例的目錄
    test_dir = os.path.join(os.getcwd())

    # 2、自動搜索指定目錄下的cas,構造測試集,執行順序是命名順序:先執行test_add,再執行test_sub
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')

    # 實例化TextTestRunner類
    runner = unittest.TextTestRunner()

    # 使用run()方法運行測試套件(即運行測試套件中的所有用例)
    runner.run(discover)

 

以上只是解決了如何管理批量案例的問題,其它的問題如何做(批量)測試數據的管理?如何做到數據與腳本分離?后續在介紹。

 


免責聲明!

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



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