软件测试框架之——unittest

通过unittest创建测试
1必须继承与unittest.TestCase类
2可以定义setUp和tearDown方法,也可以定义setUpClass、tearDownClass的类方法
3所有的测试方法必须以test开头。测试方法会在运行时自动被调用
4可用pycharm自带的unittest框架运行,也可以以普通方式运行

Python复制代码

import unittest


class Demo(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        print("setUpClass方法只运行一次")

    @classmethod
    def tearDownClass(cls):
        print("tearDownClass方法只运行一次")

    def setUp(self):
        print("setUp在每个test方法执行之前执行")

    def tearDown(self):
        print("tearDown在每个test方法执行之后执行")

    def testFunc(self):
        print("这是一个测试方法")

    def testLogin(self):
        print("这是一个测试登录的方法")


if __name__ == '__main__':
    print("普通的测试入口")
    unittest.main()

运行方式的设置
●pycharm自带的unittest框架测试
●从main方法的入口开启的unittest测试

Python复制代码

if __name__ == '__main__':
    print("普通的测试入口")
    # main方法的入口开启测试
    unittest.main()

Run/DebugConfigurations

Name:

Allowparallelrun

unittest-demo-01

Storeasprojectfile

mAN方法作为入口开启测试的配置

Python

Configuration

Logs

时STPythondocs

E:python-studylautotestunittest-demopy

Docutilstask

Scriptpath.:

ASTSphinxtask

Parameters

Pythontests

Autodetect

Environment

-demo.py

Doctests

st-demo.D

PYTHONUNBUFFERED-1

Environmentvariables

Nosetests

pytest

不走main方法,使用自带的unittest进行测试

Twisted

Unittests

lnterpreteroptions

ShellScript

的配置,默认是这种配置

SpaceTask

cipython-studyautotest

tOx

AddcontentrootstoPYTHONPATH

AddsourcerootstoPYTHONPATH

Execution

Emulateterminalinoutputconsole

RunwithPythonConsole

Redirectinputfrom:

Editconfigurationtemplates..

OK

Apply

Cancel

1631018738(1).png


pycharm自带的unittest框架测试
这种运行测试,main方法就不会生效。
上面的代码输出结果为:

Plain Text复制代码

setUpClass方法只运行一次
setUp在每个test方法执行之前执行
这是一个测试方法
tearDown在每个test方法执行之后执行
setUp在每个test方法执行之前执行
这是一个测试登录的方法
tearDown在每个test方法执行之后执行
tearDownClass方法只运行一次
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

设置从main方法的入口开启unittest测试
上面的输出结果为,这个就会走if __name__ == '__main__':中的代码

Plain Text复制代码

普通的测试入口
setUpClass方法只运行一次
setUp在每个test方法执行之前执行
这是一个测试方法
tearDown在每个test方法执行之后执行
setUp在每个test方法执行之前执行
这是一个测试登录的方法
tearDown在每个test方法执行之后执行
tearDownClass方法只运行一次
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK


断言
断言一旦失败了,后面的代码就不会执行
常用的断言有:
●self.assertEqual()
●self.assertNotEqual()
●self.assertIn()
●self.assertNotIn()
●self.assertTrue()
●self.assertFalse()
断言的结果表示
●点.代表断言正确
●F代表断言失败
●E代表代码有错误

实现断言失败后再截图功能
●通过异常处理的方式实现
●通过装饰器的方式实现

通过异常处理的方式

Python复制代码

import time
import unittest
from selenium import webdriver

from ddt import ddt, data, unpack
from util import Util


@ddt
class
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值