1、为什么要学习断言?
    自动化脚本在执行的时候一般都是无人值守状态,我们不知道执行结果是否符合预期结果,所以我们需要让 程序代替人 为检测程序执行的结果是否符合预期结果,这就需要使用断言。
注意:自动化脚本不写断言,相当于没有执行测试一个效果

2、常用断言方法
1、assertTrue(result):如果结果为True通过,否则失败【掌握】
2、assertFalse(result):如果结果为False通过,否则失败
3、assertEqual(expected, actual,msg=None):验证expected == actual,不等则fail,两个字符串是否相等【掌握】
4、assertIn(member, container, msg = None):验证member in container,后面的字符串是否包含前面的字符串【掌握】
5、assertIsNone(obj, msg=None):验证obj是None,不是则fail,判断是否为None
6、assertIsNotNone(obj, msg=None):验证obj不是None,是则fail,判断是否为None
7、assertNotIn(member, container, msg = None):验证member not in container,后面的字符串是否不包含前面的字符串

3、案例演示1

import unittest
 
class Test01(unittest.TestCase):
    def test001(self):
        flag = True
        isflag = False
        str1 = "你好,李焕英"
        str2 = "你好,李焕英"
        str3 = "hallo"
        str4 = "hallo,Miss.Dong"
        str5 = None
        # 1、断言flag是不是为True
        self.assertTrue(flag)
        # 2、断言isflag是不是为False
        self.assertFalse(isflag)
        # 3、断言str1和str2两个字符串是否相等
        self.assertEqual(str1,str2)
        # 4、断言str1和str2两个字符串是否不相等
        self.assertNotEqual(str1,str2)
        # 5、断言str4是否包含str3
        self.assertIn(str3,str4)
        # 6、断言str4是否不包含str3
        self.assertNotIn(str3,str4)
        # 7、断言str5是不是None
        self.assertIsNone(str5)
        # 8、断言str5不是None
        self.assertIsNotNone(str5)

执行结果:<需要一个一个执行>
12357为True
46为False

4、案例演示2
需求:使用UnitTest框架对百度登录页面测试
1). 点击登录,进入登录页面 
2). 输入用户名和密码,不输入验证码,直接点击登录按钮 
3). 获取错误提示信息 
4). 断言错误提示信息是否为“验证码不能为空!”,如果断言失败则保存截图 
扩展:1. 图片名称为动态-时间

执行代码:

# 导包
import time
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
 
"""
需求:使用UnitTest框架对百度登录页面测试
1). 点击登录,进入登录页面 
2). 输入用户名,不输入密码,直接点击登录按钮 
3). 获取错误提示信息 
4). 断言错误提示信息是否为“请您输入密码”,如果断言失败则保存截图
扩展:1. 图片名称为动态-时间
"""
# 创建测试类
class TestTpshop(unittest.TestCase):
    # 设置内置函数初始化对象和销毁对象
    # 实例化浏览器对象
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome()
        # 获取Tpshop网页
        cls.driver.get("https://wwww.baidu.com")
        cls.driver.maximize_window()
        cls.driver.implicitly_wait(30)
 
    @classmethod
    def tearDownClass(cls):
        time.sleep(5)
        cls.driver.quit()
    # 创建测试函数内容
    def testLanding(self):
        driver = self.driver
        # 点击登录,进入登录页面
        driver.find_element(By.XPATH,'//*[@id="s-top-loginbtn"]').click()
        # 输入用户名和密码,不输入验证码,直接点击登录按钮
        driver.find_element(By.CSS_SELECTOR,"#TANGRAM__PSP_11__userName").send_keys('18888888888')
        driver.find_element(By.CSS_SELECTOR,"#TANGRAM__PSP_11__submit").click()
        # 获取错误提示信息
        text = driver.find_element(By.CSS_SELECTOR,"#TANGRAM__PSP_11__error").text
        # 断言错误提示信息是否为“验证码不能为空!”
        try:
            self.assertEqual(text,"请您输入密码")
        except AssertionError:
 
        # 如果断言失败则保存截图
            self.driver.get_screenshot_as_file("../image/%s.png"%(time.strftime("%Y_%m_%d %H_%M_%S")))

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐