zoukankan      html  css  js  c++  java
  • 接口自动化框架

    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)

    源码除了这部分内容为,还用到了高阶函数的方式。

  • 相关阅读:
    用OLEDB读取EXCEL时,单元格内容长度超过255被截断
    jquery对属性和特性的操作
    yum报[Errno 256] No more mirrors to try
    c语言:计算数组长度
    递归之100.相同的树
    1160.Find Words That Can Be Formed By Characters
    892.surface area of 3D shapes
    递归之24&206(链表)
    C++ private
    Dell 7559 安装黑苹果 Mojave14.15.6
  • 原文地址:https://www.cnblogs.com/yingchen/p/11812224.html
Copyright © 2011-2022 走看看