unittest设置断言

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

unittest设置断言

COURSE ARRANGEMENT

断言

unittest单元测试框架中也提供断言的方式用来判断用例是否执行成功。

unittest常用断言   

unittest框架的TestCase类提供如下方法用于测试结果的判断

方法检查
assertEqual(a,b)a == b
assertNotEqual(a,b)a != b
assertTrue(x)bool(x) is True
assertFalse(x)bool(x) is False
assertIs(a,b)a is b
assertIsNot(a,b)a is not b
assertIsNone(x)x is None
assertIsNotNone(x)x is not None
assertIn(a,b)a in b
assertNotIn(a,b)a not in b

用法

在用例执行之后设置断言检查用例是否执行通过如

import unittestclass Test(unittest.TestCase):    def test01(self):        '''        判断 a = b        '''        a = '111'        b = '1112'        self.assertEqual(a,b)if __name__ == '__main__':    unittest.main()

执行成功返回的结果返回“.”

若断言失败页面直接返回对应的报错信息用例执行不通过状态为“F”

也可以自定义报错信息

import unittestclass Test(unittest.TestCase):    def test01(self):        '''        判断 a = b        '''        a = '111'        b = '1112'        self.assertEqual(b,a,msg='报错原因{}没有包含{}'.format(a,b))if __name__ == '__main__':    unittest.main()

执行报错信息如下可以按照自己设置的报错信息打印更有利于问题定位

结合百度的搜索页面设置断言如下

#导入WebdriverUI自动化主要靠Webdriver实现from selenium import webdriver#导入时间模块import time#导入unittest单元测试模块import unittest#定义百度网页登录的测试用例集class BaiduLogin(unittest.TestCase):  #定义Setup用于初始化测试固件。本次设置的含义为在执行每个测试用例之前打开浏览器设置url为https://www.baidu.com    def setUp(self):        self.url = 'https://www.baidu.com/'        self.browser = webdriver.Chrome()    #定义teardown用于销毁测试固件。本次设置的含义为在执行每个测试用例之后关闭浏览器    #所以当前脚本的执行顺序为    ##setup-->test_query_001-->teardown-->setup-->test_login_002-->teardown    def tearDown(self):      self.browser.quit()
    def test_001_query(self):      #创建一个名称为test_query_001的测试用例在浏览器中打开百度首页           self.browser.get(self.url)      #将窗口最大化           self.browser.maximize_window()      #在搜索框中输入关键词“123”      self.browser.find_element_by_id('kw').send_keys('123')      #点击“百度一下”按钮      self.browser.find_element_by_id('su').click()      #print("查询成功")      #等待3S查看页面返回结果      time.sleep(3)      #添加断言搜索成功后页面会返回“百度为您找到相关结果约100,000,000个”      #定位后将该元素中包含的文字提取出来      a = self.browser.find_element_by_class_name('nums_text').text      #定义一个变量b使它的内容包含部分页面搜索成功后返回的文字      b = "找到相关结果"      #断言若a包含b则用例执行成功在结果中打印“搜索成功”      self.assertIn(b,a,msg='报错原因{}没有包含{}'.format(a,b)')      print("搜索成功")        if __name__ == '__main__':    unittest.main()

用例通过的执行结果

通过前面的内容可以发现加入了断言后我们可以通过设置用例的预期结果来判断用例是否执行成功让屏幕输入的结果更可控也能够使我们更清晰地明白用例执行不通过的原因。相对比来说未添加断言的用例简直不完整呢

那么百度登录的断言要怎么写呢

我知道你已经跃跃欲试了那么赶快练习起来吧~~

如果我的博客对你有帮助、如果你喜欢我的博客内容请 “点赞” “评论” “收藏” 一键三连哦

最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源【免费】。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6