当前位置: 首页 > article >正文

python接口自动化——unittest断言

前言:

  在测试用例中,执行完测试用例后,最后一步是判断测试结果是 pass 还是 fail,自动化测试脚本里面一般把这种生成测试结果的方法称为断言(assert)。用 unittest 组件测试用例的时候,断言的方法还是很多的,下面介绍几种常用的断言方法:assertEqual、assertIn、assertTrue。想了解更多可以点击 传送门 看一下最后的小结有大致介绍。unittest断言计划是分上、中、下三篇有简单到复杂的给小伙伴们介绍一下,填补一下这部分的空白。

基本断言方法

基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。

import unittest
class TestStringMethods(unittest.TestCase):
    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')
    def test_isupper(self):
        self.assertTrue('FOO'.isupper())#验证字符串是否为大写,如果是返回True
        self.assertFalse('Foo'.isupper())#验证字符串是否为大写,如果不是返回False
    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)
#4.copy 和运行测试
class IntegerArithmeticTestCase(unittest.TestCase):
     def testSubtract(self):  # test method names begin with 'test'
         result = 6-5   #实际结果
         hope = 1       #期望结果
         self.assertEqual(result, hope)

     def testDivide(self):
         result = 7 / 2  # 实际结果
         hope = 3.5  # 期望结果
         self.assertEqual(result, hope)

if __name__ == '__main__':
    unittest.main(["-v"])

案例2

import unittest
#4.copy 和运行测试
class IntegerArithmeticTestCase(unittest.TestCase):
    def setUp(self):  #每个测试方法执行之前都会执行setUp方法
        print("我已经进入到IntegerArithmeticTestCase类的setUp方法中")
        print("setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件。")

    def tearDown(self):
        print("我已经进入到IntegerArithmeticTestCase类的tearDown方法中")
        print("tearDown:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的后置条件。")

    def testSubtract(self):  # test method names begin with 'test'
         print("我已经进入到IntegerArithmeticTestCase类的testSubtract方法中")
         result = 6-5   #实际结果
         hope = 1       #期望结果
         print("result=%s,hope=%s"%(result,hope))
         self.assertEqual(result, hope)
    def testDivide(self):
         print("我已经进入到IntegerArithmeticTestCase类的testDivide方法中")
         result = 7 / 2  # 实际结果
         hope = 3.6  # 期望结果
         print("result=%s,hope=%s" % (result, hope))
         self.assertEqual(result, hope)
if __name__ == '__main__':
    unittest.main(["-v"])

 案例3

import unittest
#4.copy 和运行测试
class IntegerArithmeticTestCase(unittest.TestCase):
    def setUp(self):  #每个测试方法执行之前都会执行setUp方法
        print("我已经进入到IntegerArithmeticTestCase类的setUp方法中")
        print("setUp:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的前置条件。")

    def tearDown(self):
        print("我已经进入到IntegerArithmeticTestCase类的tearDown方法中")
        print("tearDown:在写测试用例的时候,每次操作其实都是基于打开浏览器输入对应网址这些操作,这个就是执行用例的后置条件。")

    def testSubtract(self):  # test method names begin with 'test'
         print("我已经进入到IntegerArithmeticTestCase类的testSubtract方法中")
         result = 6-5   #实际结果
         hope = 1       #期望结果
         print("result=%s,hope=%s"%(result,hope))
         self.assertEqual(result, hope)
    def testDivide(self):
         print("我已经进入到IntegerArithmeticTestCase类的testDivide方法中")
         result = 7 / 2  # 实际结果
         hope = 3.6  # 期望结果
         print("result=%s,hope=%s" % (result, hope))
         self.assertEqual(result, hope)
if __name__ == '__main__':
    suite1 = unittest.TestSuite()
    suite2 = unittest.TestSuite()
    # 添加测试用例
    suite1.addTest(IntegerArithmeticTestCase("testSubtract"))
    # 实例化TextTestRunner类
    runner = unittest.TextTestRunner()
    # 运行测试用例
    runner.run(suite1)

参考文献

python接口自动化(二十三)--unittest断言——上(详解) - 北京-宏哥 - 博客园

python接口自动化(二十四)--unittest断言——中(详解) - 北京-宏哥 - 博客园

python接口自动化(二十五)--unittest断言——下(详解) - 北京-宏哥 - 博客园


http://www.kler.cn/a/320890.html

相关文章:

  • python-文件内容操作
  • GitLab 如何降级?
  • 概率论公式整理
  • GitHub Copilot使用指南:助力开发者加速编程创新
  • FPGA使用Verilog实现CAN通信
  • 云计算复习文档
  • leetcode 2024.9.26
  • 观《中国数据库前世今生》有感:从历史中汲取未来的力量
  • 常见排序(C语言版)
  • C# lambda表达式的几个案例
  • keepalived实战演练
  • Sealos 快速创建k8s 集群
  • 代码随想录算法训练营DAY09之动态规划(一)基础题目
  • 稀土功能化合物
  • HTML中的列表、表格、媒体元素和内联框架
  • 【C++习题】2.双指针_移动零
  • Rapid品牌SSL证书通配符单域名申请窍门
  • [笔记]数据结构
  • selenium模块的基本使用
  • 【Elasticsearch系列廿二】特殊参数
  • 【openwrt-21.02】openwrt PPTP Passthrough 不生效问题解决方案
  • Delphi5利用DLL实现窗体的重用
  • Vue 响应式监听 Watch 最佳实践
  • C++:STL详解(二)string类的模拟实现
  • 《python语言程序设计》2018版第8章18题几何circle2D类(下部)
  • 2024准备去面试软件测试岗,高频面试题预测?