zoukankan      html  css  js  c++  java
  • 单元测试框架:import unittest

    1.unittest参数化测试
    (1)框架结构
    bin 目录;启动测试用例,例如discover
    conf 目录;设置常量,例如用例路径等等
    lib 目录;存放主逻辑和一些函数
    case 目录;存放excel
       report目录;专门存放测试报告
    import unittest,requests,HTMLTestRunner
    from nose_parameterized import parameterized
    def req(url,username,pwd):
    data={"username":username,"pwd":pwd}
    res = requests.get(url,data).text
    return res
    class My(unittest.TestCase):
    @parameterized.expand(
    [
    ("baidu.com","jmy","123456",{"meg":"登录成功"}),
    ("baidu.com","jmy","123456",{"meg":"登录成功"})
    ]
    )
    def test_a(self,url,name,pd,hope):
    res = req(url,name,pd)
    self.assertEqual(res,hope)
    if __name__=='__main__':
    suite=unittest.TestSuite()
    suite.addTest(unittest.makeSuite(My))
    fw = open('res.html','wb')
    runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='接口测试')
    runner.run(suite)

    Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。

    在说unittest之前,先说几个概念:

    TestCase 也就是测试用例

    TestSuite 多个测试用例集合在一起,就是TestSuite

    TestLoader是用来加载TestCase到TestSuite中的

    TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

    下面写一个简单的单元测试用例

    下面是一些常用的断言,也就是校验结果

    那如何生成一个测试报告呢,需要加入另外一个模块了,HTMLTestRunner,这个模块需要自己安装,使用执行测试用例就会生成一个html的测试报告,里面会有每个测试用例的执行结果,代码如下:

    如果我们有很多个模块,每个模块下面都写了很多python文件,每个python文件里面都有测试用例,那怎么把这个目录下的用例都执行了呢,就要先找到这个目录下的所有python文件,然后找到里面的测试用例,逐个执行,代码如下:

    我们在后续进行持续集成的时候,要让代码自动运行,就会用到Jenkins了,但是上面产生的测试报告都是html格式的,Jenkins不认识,就在Jenkins里面显示不出来。那咱们就要产生一些Jenkins认识的测试报告,Jenkins认识xml格式的报告,那咱们就产生xml格式的呗,就需要用一个新的模块,xmlrunner,安装直接 pip install xmlrunner即可,代码如下:

    然后咱们运行,可以看到在report目录下已经产生了xml格式的报告了,而且还自动把日期加上了

  • 相关阅读:
    构建之法(一)
    大二下周总结十四
    寒假学习报告03
    寒假学习报告02
    2019春季学期个人总结
    2019春学习进度报告(第十六周)
    计算英语最长单词连
    2019春学习进度报告(第十五周)
    用户体验评价
    2019春学习进度报告(第十四周)
  • 原文地址:https://www.cnblogs.com/lanxia/p/8072107.html
Copyright © 2011-2022 走看看