web自动化笔记十二:断言
自动化脚本在执行的时候一般都是无人值守状态,我们不知道执行结果是否符合预期结果,所以我们需要让 程序代替人 为检测程序执行的结果是否符合预期结果,这就需要使用断言。注意:自动化脚本不写断言,相当于没有执行测试一个效果1、assertTrue(result):如果结果为True通过,否则失败【掌握】2、assertFalse(result):如果结果为False通过,否则失败。
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,里面有各种测试开发资料和技术可以一起交流哦。
更多推荐


所有评论(0)