序号 | 断言方法 | 断言描述 |
1 | assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
2 | assertFalse(expr, msg=None) | 验证expr是false,如果为true,则fail |
3 | assertEqual(expected, actual, msg=None) | 验证expected==actual,不等则fail 【掌握】 |
4 | assertNotEqual(first, second, msg=None) | 验证first != second, 相等则fail |
5 | assertIsNone(obj, msg=None) | 验证obj是None,不是则fail |
6 | assertIsNotNone(obj, msg=None) | 验证obj不是None,是则fail |
7 | assertIn(member, container, msg=None) | 验证是否member in container【掌握】 |
8 | assertNotIn(member, container, msg=None) | 验证是否member not in container |
import unittest
def add(x, y): return x + y
class TestAssert(unittest.TestCase):
def test01(self): num = add(1, 2)
self.assertEqual(3, num)
def test02(self): num = add(1, 2) is_ok = num == 3
self.assertTrue(is_ok)
需求:使用UnitTest框架对tpshop项目测试
1).点击登录,进入登录页面
2).输入用户名和密码,不输入验证码,直接点击登录按钮
3).获取错误提示信息
4).断言错误提示信息是否为“验证码不能为空!”,如果断言失败则保存截图
扩展:
1.图片名称为动态-时间
# 获取错误提示信息
msg = self.driver.find_element_by_css_selector(".layui-layer-content").text print("msg=", msg)
try:
# 断 言
self.assertIn("验证码不能为空", msg)
except AssertionError as e:
# 保存截图
img_path = "./imgs/img{}.png".format(time.strftime("%Y%m%d-%H%M%S")) self.driver.get_screenshot_as_file(img_path)
raise e
import time import unittest
from selenium import webdriver class TestLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox() self.driver.get("http://localhost") self.driver.implicitly_wait(10) self.driver.maximize_window()
def test_login(self):
# 点击登录按钮
self.driver.find_element_by_link_text("登录").click()
# 输入用户名
self.driver.find_element_by_id("username").send_keys("13012345678") # 输入密码self.driver.find_element_by_id("password").send_keys("123456")
# 点击登录按钮
self.driver.find_element_by_css_selector("[name='sbtbutton']").click()
# 获取错误提示信息
msg = self.driver.find_element_by_css_selector(".layui-layer-content").text print("msg=", msg)
try:
# 断 言
self.assertIn("验证码不能为空", msg)
except AssertionError as e: # 保存截图
img_path = "./imgs/img{}.png".format(time.strftime("%Y%m%d-%H%M%S")) self.driver.get_screenshot_as_file(img_path)
raise e
def tearDown(self): self.driver.quit()
if name == ' main ': unittest.main()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |