接口自动化框架 - 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