【自动化测试】unittest框架-基础知识

一、什么是UnitTest框架

UnitTest是python自带的一个单元测试框架,用它来做单元测试。

对于测试来说,unittest框架的作用是自动化脚本(用例代码)执行框架,使用unittest框架来管理运行多个测试用例的。

二、为什么使用框架

1. 能够组织多个用例去执行

2.提供丰富的断言方法(让程序代替人工自动的判断预期结果和实际结果是否相符)

3. 能够生成测试报告

三、UnitTest核心要素

1. Testcase(测试用例)

TestCase是unittest框架的组成部分,不是手工和自动化所说的用例

主要作用:每个TestCase(测试用例)都是一个代码文件,在这个代码文件中来书写真正的用例代码

"""
代码的目的:学习TestCase(测试用例)模块的书写方法
"""
# 1.导入unittest包
import unittest

# 2.自定义的测试类,只要继承unittest模块中的TestCase类即可


class TestDemo(unittest.TestCase):
    # 书写测试方法,即用例代码
    # 书写要修,测试方法必须以test_ 开头(本质是以test开头)
    def test_method1(self):
        print('测试方法 1')

    def test_method2(self):
        print('测试方法 2')

# 4 执行用例(方法)
# 4.1 将光标放在 类名 的后面运行,会执行类中的所有的测试方法
# 4.2 将光标放在 方法名 的后面运行,只执行当前的方法

2. TestSuite

TestSuite(测试套件),用来组装(打包)、管理多个TestCase(测试用例的)

"""
代码的目的:学习TestSuite(套件)模块的书写方法
"""
# 1. 导入 unittest包
import unittest

# 2. 实例化testsuite对象
from hm_08_testcase import TestDemo
from hm_09_testcase import TestDemo1

suite = unittest.TestSuite()

# 3. 使用套件对象添加用例方法
# 方法一:套件对象.addTest(测试类名('方法名'))
suite.addTest(TestDemo('test_method1'))
suite.addTest(TestDemo('test_method2'))
suite.addTest(TestDemo1('test_method1'))
suite.addTest(TestDemo1('test_method2'))
# 方法二 将一个测试类中的所有方法进行添加
# 套件对象.addTest(unittest.makeSuite(测试类名))
suite.addTest(unittest.makeSuite(TestDemo))

# 4.实例化运行对象
runner = unittest.TextTestRunner()

# 5. 使用运行对象去执行套件对象   运行对象.run(套件对象)
runner.run(suite)

3. TestRunner

TestRunner(测试执行,测试运行),用来执行TestSuite(测试套件)的

4. TestLoader

TestLoader(测试加速),功能是对TestSuite(测试套件)功能的补充,用来组装(打包)、管理多个TestCase(测试用例的)

"""
TestLoader 的使用
"""
# 1. 导包
import unittest

# 2. 实例化加载对象并添加实例
# unittest.TestLoader().discover("用例所在的路径", "用例的代码文件名")
# 用例的代码文件名 支持通配符
suite = unittest.TestLoader().discover("./case", "*")

# 3. 实例化运行对象,并执行
unittest.TextTestRunner().run(suite)

5. Fixture

Fixture(测试夹具),书写在TestCase代码中的,是一个代码结构,

5.1 方法级别

可以在每个方法执行前后都会执行的内容

# 方法执行之前

def setUp(self):

        每个测试方法执行之前都会执行

# 方法执行之后

def tearDown(self):

        每个测试方法执行之后都会执行

5.2 类级别

可以在每个测试类中所有方法执行前后都会执行的内容,在整个类中,执行前后各一次

类级别的Fixture方法,是一个类方法

#类中所有方法之前

@classmethod

def setUpClass(cls):

        pass

@classmethod

def tearDownClass(clas):

        pass

import unittest


class TestLogin(unittest.TestCase):
    def setUp(self):
        print("输入网址......")

    def tearDown(self):
        print("关闭网页")

    @classmethod
    def setUpClass(cls):
        print("打开浏览器")

    @classmethod
    def tearDownClass(cls):
        print("关闭浏览器")

    def test_login(self):
        print("输入正确的账户密码")

    def test_login_error(self):
        print("输入错误的账户密码")

四、UnitTest的断言

1. 断言的结果

断言的结果有两种

  • True,用例通过
  • False,代码抛出异常,用例不通过

1. 常用的UnitTest断言方法

断言方法断言描述优先级
assertTrue(expr,msg=None)验证expr是true,如果是false,则为fail
assertFalse(expr,msg=None)验证expr是flase,如果为true,则fail
assertEqual(expected,actual,msg=None)验证expected==actual,不等则fail重点
assertIn(member,container,msg=None)验证是否member in container重点

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Python编写一个App自动化测试框架,首先你需要熟悉Python的基础知识,并且要熟悉基本的测试框架,比如Selenium、Appium等。你可以使用一些测试框架,如Pytest或Unittest,来编写测试用例,然后可以使用Python代码来执行这些测试用例,并且自动生成测试报告。 ### 回答2: 使用Python编写一个App测试自动化测试框架可以具有以下几个步骤: 1. 安装所需依赖:首先,我们需要安装Python以及所需的第三方库,如Appium和Pytest。可以使用pip工具在命令行中执行"pip install appium pytest"来安装这些库。 2. 配置测试环境:接下来,我们需要配置Appium测试环境。可以下载Appium Server并安装,然后启动Appium Server。 3. 编写测试脚本:使用Python编写测试脚本。可以使用Appium提供的API来控制App,并使用Pytest来编写测试用例。例如,可以使用Appium API来启动App、点击按钮、输入文本等操作,然后使用Pytest来编写断言语句,验证App的行为是否符合预期。 4. 执行测试脚本:使用命令行工具进入测试脚本所在的目录,并执行测试脚本。可以使用pytest工具来执行测试脚本,例如"pytest test_script.py"。执行过程中,Appium会连接到App并执行定义的操作,然后检查断言是否通过。 5. 生成测试报告:执行完测试脚本后,可以生成测试报告来查看测试结果。可以使用pytest提供的报告插件,如pytest-html,来生成HTML格式的测试报告。执行完测试脚本后,运行"pytest --html=report.html"命令即可生成测试报告。 以上就是使用Python编写一个简单的App测试自动化测试框架的步骤。通过编写测试脚本、执行测试脚本并生成测试报告,可以实现对App的自动化测试,并方便查看测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值