1. unittest核心要素

  • unittest介绍

    • 测试框架,不仅仅用于单元测试

    • python自动的测试包

    • 用法和django.test.TestCase类似

1.1、unitest介绍和核心要素

   自动化测试最初接触的就是python中的unitest框架,因为它是python自带的一套测试框架,学习起来也相对较容易,下面是unitest框架的四个概念(较为一目了然):

  test case:就是我们的测试用例,unittest中提供了一个基本类TestCase,可以用来创建新的测试用例,一个TestCase的实例就是一个测试用例;unittest中测试用例方法都是以test开头的,且执行顺序会按照方法名的ASCII值排序。

  test fixure:测试夹具,用于测试用例环境的搭建和销毁。即用例测试前准备环境的搭建(SetUp前置条件),测试后环境的还原(TearDown后置条件),比如测试前需要登录获取token等就是测试用例需要的环境,运行完后执行下一个用例前需要还原环境,以免影响下一条用例的测试结果。

​   test suite:测试套件,用来把需要一起执行的测试用例集中放到一块执行,相当于一个篮子。我们可以使用TestLoader来加载测试用例到测试套件中。

​   test runner:用来执行测试用例的,并返回测试用例的执行结果。它还可以用图形或者文本接口,把返回的测试结果更形象的展现出来,如:HTMLTestRunner

1.2、unittest核心要素的使用

# ---*--- encoding: utf-8 ---*---

'''
@Author : {gan sir}
@Time : 2022/3/4 14:22
'''
import unittest
#测试类、继承于unittest.TestCase
class MyTest(unittest.TestCase):
    def test_1(self):
print("test_1")
  def test_1(self):
print("test_1")
if __name__ == '__main__':

#类的外面
#2、容器,容器添加测试用例
suit = unittest.BaseTestSuite()
#测试用例的执行顺序,按添加的顺序执行
suit.addTest(MyTest('test_1'))
    suit.addTest(MyTest('test_1'))
#3、运行容器中的测试用例
runner = unittest.TextTestRunner()
runner.run(suit)

1.3、了解Fixture

测试类中:实现了前、后置方法,他就是一个fixture

1.4、掌握defaultTestLoader

# ---*--- encoding: utf-8 ---*---
'''
@Author : {gan sir}
@Time : 2022/3/4 14:22
'''
import unittest

# 测试类、继承于unittest.TestCase
class MyTest(unittest.TestCase):
def test_1(self):
print("test_11111111111111")

def test_1(self):
print("test_2222222222222")

if __name__ == '__main__':
#2.容器,容器添加测试用例
#默认找指定路径下,所有test开头文件
#参数1;路径,参数2:指定文件
suite = unittest.defaultTestLoader.discover('./','test_2_demo.py')

#3.运行容器中的测试用例
runner = unittest.TextTestRunner()
runner.run(suite)

2、掌握unitest基本使用

import unittest       # unittest的单元测试框架

class TestConut(unittest.TestCase): # TestConut指类的名字,继承了TestCase这个类,即拥有了该类的所有方法,首字母大写
    @classmethod                  
def setUpClass(cls) -> None:
print('setUpClass')
    def setUp(self) -> None:  # 这里setup指执行测试用例之前的预操作,即每次执行一条测试用例的时候都会执行该操作              
print('test start')
    def test_01(self):    # 此框架所定义的函数名执行测试用例的时候必须以test开头,且执行测试用例时会默认按照阿拉伯数字的顺序执行及1,2,3,4...                 
        print('执行test_01测试')                  
def test_02(self):
print('执行test_02测试')
def test_03(self):
print('执行test_03测试')

   def test_s(self):
     print('test_s')
     a = 1 + 1
     self.assertEqual(a,2,'结果不为2')
   def test_f(self):
     print('test_f')
     a = 1 + 2
     self.assertEqual(a,3,'结果不为3')
    def tearDown(self):    # 这里和上面的setup相对应,即执行完每个测试用例之后的结束操作,如关闭浏览器                  
print('test end')
@classmethod
def tearDownClass(cls):
print('最后结束的!')
if __name__ =='_main_':
unittest.main()

3、断言

#  arg1和arg2相等,测试通过,标志为T。

#  arg1和arg2不相等,测试不通过,标志为F,抛出异常,显示msg的信息

   unittest.assertEqual(arg1,arg2,msg=None)

unittest自动化测试框架核心要素以及应用的更多相关文章

  1. 三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。

    序 关于自动化测试的工具和框架其实有很多.自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不 ...

  2. Robot Framework自动化测试框架核心指南-如何使用Java编写自定义的RobotFramework Lib

    如何使用Java编写自定义的RobotFramework Lib 本文包括2个章节 1. Robot Frdamwork中如何调用java Lib库 2.使用 java编写自定义的Lib 本文作者为: ...

  3. Robot Framework自动化测试框架核心指南-如何做好自动化测试平台框架的设计

    自动化测试如果需要能高效快速的支撑软件项目的测试,项目的快速迭代以及上线,除了以上我们介绍的需要许多的Lib来支持以及需要高效的去编写自动化测试案例外,还需要一个好的自动化测试框架平台来支撑我们的自动 ...

  4. unittest自动化测试框架

    目录 框架的概念 Unittest单元测试框架 常用的assert语句 unittest创建测试代码的方式: unittest构建测试套件(测试用例集合): unittest忽略测试用例: 运行测试集 ...

  5. python+appium+unittest自动化测试框架环境搭建

    一.基础软件准备 1.python 版本最新版本,python的IDE使用pycharm.具体的下载链接: python https://www.python.org/ pycharm:https:/ ...

  6. python + selenium + unittest 自动化测试框架 -- 入门篇

    . 预置条件: 1. python已安装 2. pycharm已安装 3. selenium已安装 4. chrome.driver 驱动已下载 二.工程建立 1. New Project:建立自己的 ...

  7. RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)

    在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装Da ...

  8. RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib

    使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...

  9. RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

    Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍W ...

随机推荐

  1. 获取iframe引入页面内的元素

    在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素.js在父窗口中获取iframe中的元素1.    格式:window ...

  2. layui文件上传组件“请求上传接口出现异常”问题解决方案

    这是一个悲伤的故事,以前开发项目用过很多次这个组件,这次使用了Token,于是报了一些莫名其妙的错误,来复盘一下,警示自己! 刚开始接触layui的同学们肯定经常会看到这个错误 下面我们对这个异常的处 ...

  3. git的.gitignore文件内容

    **/pom.xml.versionsBackup **/target/ **/out/ *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ .idea/ ...

  4. linux mysql导入导出sql文件

    导出 导出单独数据库:mysqldump -uroot -p 数据库名 > 数据库名.sql 例:mysqldump -uroot -p database1 > database1.sql ...

  5. 几种比较经典的波形及其FFT变换(正弦波,三角波,方波和锯齿波)

    之前上学时我的信号学得最差了,主要原因还是我高数学得不怎么样.可能是人总敬畏自己最不会的,所以我觉得我学过诸多科目中,数学是最博大精深而最妙的,从最开始的一次函数到反比例函数,二次三次函数和双曲线,椭 ...

  6. 约定编程与Sping AOP

    一.约定编程 Spring AOP是一种约定流程的编程,咱们可以先通过动态代理模式的实现来理解Spring AOP的概念. 代理的逻辑很简单,例如,当你需要采访一名儿童时,首先需要经过他父母的同意,在 ...

  7. JS的URIencode方式

    BEGIN; 对需要传递的URL参数进行URLencode编码 刚开始浪费了很多时间都没搞出来,不知道怎么用.后面google到了不少解决方案,最终解决.转载下面内容: js对文字进行编码涉及3个函数 ...

  8. Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中

    之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...

  9. 合并csv文件保存到一个csv文件中-保留表头

    主要实现功能: 在同一文件夹下的所有csv文件全部合并到同一个csv文件中,并将csv文件的表头保留 1 import os 2 import pandas as pd 3 path = os.get ...

  10. nacos 详细介绍(一)

    一.Nacos介绍 Nacos是SpringCloudAlibaba架构中最重要的组件. Nacos 是一个更易于帮助构建云原生应用的动态服务发现.配置和服务管理平台,提供注册中心.配置中心和动态 D ...