【测开工程师基础】——python自动化测试(三)常用断言与简单例子

    在前两篇博客中,我们对python自动化初步进行了学习,在其中我们发现测试用例有别于正式开发。对于检测输出结果,一般以断言这种形式进行检验,断言按照定义来可以分为三个部分,下面进行总结。

往期/后续:

python自动化测试(一)环境配置与元素定位

python自动化测试(二)单元测试框架初步


目录

往期/后续:

常用断言汇总

0.准备函数

1.用来判断被测试的方法

2.用来判断在某种情况下是否会抛出特定的异常 

 3.判断日志是否包含应有信息

常用断言汇总

0.准备函数

   在java中的单元测试中,相比大家很熟悉那几个经典的测试函数,没错就是加减乘除,在这里使用python语言对其进行重新编写作为测试函数。

import logging

mylogger = logging.Logger("TestToBeTest")


class ToBeTest(object):
    @classmethod
    def sum(cls, a, b):
        return a + b

    @classmethod
    def div(cls, a, b):
        return a / b

    @classmethod
    def return_none(cls):
        return None

1.用来判断被测试的方法

class TestToBeTest(unittest.TestCase):
    def test_assertequal(self):
        try:
            a, b = 100, 200
            sum = 300
            self.assertEqual(a+b, sum, '断言失败, %s+%s != %s'%(a, b, sum))

        except AssertionError as e:
            print(e)

    def test_assertnotequal(self):
        try:
            a, b = 100, 200
            res = -1000
            self.assertNotEqual(a-b, res, '断言失败, %s+%s != %s' % (a, b, res))

        except AssertionError as e:
            print(e)


if __name__ == '__main__':
    unittest.main()

    这里用到的断言方法是表格中的前两个,我们可以看见如下图所示的运行结果,测试结果都是正确的。

 

2.用来判断在某种情况下是否会抛出特定的异常 

    值得注意的,抛出特定的异常是判断成功。

class TestToBeTest(unittest.TestCase):
    def test_assertraises(self):
        with self.assertRaises(TypeError) as exc:
            random.sample([1, 2, 3, 4, 5, 6])
            print(exc.exception)

            try:
                self.assertRaises(ZeroDivisionError, ToBeTest.div, 3, 0)
            except ZeroDivisionError as e:
                print(e)


if __name__ == '__main__':
    unittest.main()

 

3.判断日志是否包含应有信息

    def test_assertlogs(self):
        with self.assertLogs(mylogger) as log:
            mylogger.error("打开浏览器")
            mylogger.error("关闭浏览器")
            self.assertEqual(log.output, ['ERROR:TestToBeTest:打开浏览', 'ERROR:TestToBeTest:关闭浏览器'])

    这里我们可以清晰的看见,上述函数在定义的时候,将待检测的日志信息写为“打开浏览”与真实的记录少一个值,所以报错。(额,这个在工程中是后面检测前面哈)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物理系的计算机选手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值