zoukankan      html  css  js  c++  java
  • 接口自动化之unittest初探

    最近几天苦心钻研unittest,终于略有所得,所以想来跟大家分享一下。有关python和unittest的基础知识部分就不在一一细说,相信各位也不是小白了。如果需要我整理基础知识,欢迎留言,我会看情况整理出来。下面直接贴上我的demo模板代码,注释部分主要是思路,有疏漏的地方欢迎大佬们指正。

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time     :2018/12/7 11:03
    # @Author   :Yosef-夜雨声烦
    # @Email    :wurz529@foxmail.com
    # @File:    :model.py
    # @Software :PyCharm Community Edition
    """
    unittest模块总结:
    关于这个模块,可没少让我吃苦头啊。以前自己学习这个模块的时候,就不是很懂,这两天我就一直在钻研这个东西,总算是略有收获。
    下面的是我总结的模板,仅供参考。在学习PO模式之后,建议把下面模板分开几个py文件。
    
    做下面demo发现的新问题:不能把断言放到try语句中并且是可以被except的异常类包含的,否则就不能通过断言来设置测试用例的结果。
    然后突然想到raise语句,except语句执行完毕之后可以再抛出异常,这样就能被定义为fail
    """
    import unittest
    import HTMLTestRunner
    import time
    
    class TestCases(unittest.TestCase):
    
        def setUp(self):
            print("每一条case执行之前都会执行这个方法")
    
        def tearDown(self):
            print("每一条case执行之后都会执行这个方法
    ")
    
        def test_testcase1(self):
            print("这是一条测试用例case1")
            a = "hello"
            try:
                self.assertTrue(a.isalpha())
                print("测试通过")
            except Exception as e:
                print("出错啦,错误结果是%s" % e)
                print("failed")
                raise e
    
        def test_testcase2(self):
            print("这是一条测试用例case2")
            b = "123"
            try:
                self.assertTrue(b.isalpha())
                print("测试通过")
            except Exception as e:
                print("出错啦,错误结果是%s" % e)
                print("failed")
                raise e
    
        def test_testcase3(self):
            print("这是一条测试用例case3")
            c = " "
            try:
                self.assertTrue(c.isalpha())
                print("测试通过")
            except Exception as e:
                print("出错啦,错误结果是%s" % e)
                print("failed")
                raise e
    
    '''
    if __name__ == "__main__":
        unittest.main()
        写上这段代码可以在命令行直接运行model.py,而且用例全部执行
    '''
    
    """
    加载测试用例,方法不仅这种,还有利用loader的方法,大佬们自行试下
    loader = unittest.TestLoader()
    suite.addTest(loader.loadTestsFromTestCase(TestCases))
    or 
    suite.addTest(loader.loadTestsFromModule(model))
    """
    suite = unittest.TestSuite()
    # suite.addTest("test_testcase2")   # 这里我写错了,要加上模块
    suite.addTest(TestCases('test_testcase3'))
    
    
    """
    指定测试报告的路径并且定义报告名称格式
    """
    report_dir = "../Test report"
    now = time.strftime("%Y-%m-%d %H-%M-%S")
    reportname = report_dir + "/" + now + " Test report.html"
    
    """
    运行用例并生成测试报告
    """
    with open(reportname, "wb+") as file:
        runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
                                               description="Hello testers! This is the description of Model test"
                                                           "report")
        runner.run(suite)

    再次欢迎大家指正!

  • 相关阅读:
    SQL-W3School-高级:SQL CHECK 约束
    SQL-W3School-高级:SQL FOREIGN KEY 约束
    SQL-W3School-高级:SQL PRIMARY KEY 约束
    SQL-W3School-高级:SQL UNIQUE 约束
    ylbtech-SQL-W3School-高级:SQL NOT NULL 约束
    SQL-W3School-高级:SQL 约束(Contraints)
    SQL-W3School-高级:SQL CREATE TABLE 语句
    SQL-W3Chool-高级:SQL CREATE DATABASE 语句
    SQL-W3School-高级:SQL SELECT INTO 语句
    02:输出最高分数的学生姓名
  • 原文地址:https://www.cnblogs.com/wlyhy/p/10083318.html
Copyright © 2011-2022 走看看