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)

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

  • 相关阅读:
    Activity与Fragment间的通信
    Activity生命周期.lanchMode.保存状态
    网络知识
    Android内存优化(使用SparseArray和ArrayMap代替HashMap)
    进程/线程死锁产生的原因以及如何避免死锁
    Android UI框架基本概念
    android在线源码
    y音频学习
    给 Android 开发者的 RxJava 详解
    设计模式之观察者模式
  • 原文地址:https://www.cnblogs.com/yingchen/p/11812224.html
Copyright © 2011-2022 走看看