zoukankan      html  css  js  c++  java
  • Unittest

    1.测试框架的作用

    1. 标记和筛选用例
    2. 创建测试数据
    3. 执行用例
    4. 判断结果
    5. 清理测试数据
    6. 生成测试报告
    7. 对接外部工具

    2.

    执行测试用例的3个方式

    1.脚本方式执行 2.模块方式执行 3.用例执行顺序

    import unittest

    class Test(unittest.TestCase):
    def test_Happy(self):
    self.assertTrue(1)

    def test_Apple(self):
    pass
    #执行方法1-脚本方式
    if __name__ == '__main__':
    unittest.main()
    #执行方式2-命令执行 python -m unittest test.py


    3.测试结果
    . 代表用例测试通过
    F 用例测试失败
    E 用例执行出错
    s 用例跳过执行

    4.TestFixture : 在每个测试方法执行前后自动执行的指令
    seuUp/tearDown:每个测试方法执行前后,比如:浏览器启动4次

    setUpClass/tearDownClass:每个测试类执行前后,比如:浏览器启动2次   @classmethod   ....cls

    setUpModule/tearDownModule:每个测试模块执行前后,比如:浏览器启动1次

    5.测试执行顺序筛选

    if _ _name_ _=='_ _main_ _':

      unittest.main(defaultTest=["TestCase.test_01","TestCase.test_02"])

    6.

    if _ _name_ _=='_ _main_ _':

      unittest.main()

    #1.实例化testLoader,收集测试用例,并且生成 **测试套件**

    #2.实例化test Runner,运行测试用例,并且生成结果

    #3.判断,是否结束程序

    等价于如下(unittest.main()原理如下

    if  __name__ == '__main__':
    suite=unittest.TestSuite() #测试套件 也就是testloader执行结果
    suite.addTest(TestCase("test_Happy"))

    runner=unittest.TextTestRunner(verbosity=2) #实例化test Runner
    res=runner.run(suite)
    print(res)

     执行顺序

    1.默认顺序:ASCII

    2.修改顺序

    2.1 手动添加用例和套件

    2.2 修改模的顺序:重写testloader的sort方法

    if __name=='__main__':

      def sort(x,y):

        return len(y)-len(x)

      unittest.defaultTestLoader.sortTestMethodUsing=sort #使用新的排序规则 替换旧的

      unittest.main()

    2.3 指定测试方法的前缀

    3.生成网页版测试报告

    3.1 文件名test开头,框架自动收集

    3.2 文件名不是test开头,把文件名传递给unittest

    if __main__=='__main__':

      unittest.defaultTestLoader.testMethodPrefix="t_" #新的前缀

      unittest.main()

    4.安装第三方包

    pip install html -testRunner

    4.1指定 HTMLTestRunner

    if __main__=='__main__;"

      from HtmlTestRunner import HTMLTestRunner

      runner_argv={

        "output":"./test".

        "combine_reports":True,

    }

    # 如果把字典作为关键字参数船体,需要**解包

      unittest.main(testRunner=HTMLTestRunner(**runner_argv))

    HTMLTestRunner参数

    1.output="./reports/" 测试报告存放路径

    2.report_title=None 测试报告标题

    3.combine_reports=False 合并报告到同一个文件

    4.open_in_browser=False 自动打开报告

    5.template=None自动逸模板位置

    持续继承 docker

    CI runner

    接口一般是异步请求

    ddt:数据驱动测试

    ddt=数据读取+动态生成测试用例

    pip install ddt

    python装饰器 @ddt.ddt()

    import unittest

    import requests

    import openpyxl

    def get_data_by_excel(path):

      sheet=openpyxl.load_workbook("path").active  #打开excel

      return sheet.values #读取execl里的数值

    使用Green运行unittest   pip install green pytest

  • 相关阅读:
    如何创建多线程
    Oracle导入数据表
    Oracle如何创建数据库用户
    Oracle忘记密码,如何修改密码
    Oracle如何创建表空间
    leetcode 787. K 站中转内最便宜的航班 js题解
    JS实现平衡二叉树
    typescript的安装与配置
    二分查找JS实现
    JS作用域(一):一般变量声明
  • 原文地址:https://www.cnblogs.com/JacquelineQA/p/14433480.html
Copyright © 2011-2022 走看看