接口自動化框架 - httprunner 引用unittest


httprunner其中一個比較好的點就是利用type動態創建類,使用setattr動態增加方法和屬性。

將維護的用例進行轉變為繼承unittest.Textcase的類,很好的與unittest結合起來

以下為簡單的例子

正常的寫法:

import  unittest

class TestMyFunc(unittest.TestCase):

def test_is_prime(self):
print('is_prime')

def test_add(self):
print('add')

def test_api_http(self):
print('api_http')

if __name__ == '__main__':
test_suit = unittest.TestSuite()
suit1 = unittest.TestLoader().loadTestsFromTestCase(TestMyFunc)
test_suit.addTest(suit1)
test_runner = unittest.TextTestRunner()
test_runner.run(test_suit)

動態的寫法:

#-*-coding:utf-8-*-
import requests
def is_prime(self):
number = 1

def add(self):
return 1+2

def api_http(self):
contnet = requests.get(url='https://www.baidu.com')
print(contnet)
import unittest

if __name__ == '__main__':

TestMyFunc = type('TestMyFunc',(unittest.TestCase,),{})
setattr(TestMyFunc,'test_is_prime',is_prime)
setattr(TestMyFunc,'test_add',add)
setattr(TestMyFunc,'test_api_http',api_http)

test_suit = unittest.TestSuite()
suit1 = unittest.TestLoader().loadTestsFromTestCase(TestMyFunc)
test_suit.addTest(suit1)
test_runner = unittest.TextTestRunner()
test_runner.run(test_suit)

源碼除了這部分內容為,還用到了高階函數的方式。

 


免責聲明!

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



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