目标 1. 掌握方法级别和类级别的Fixture 2. 了解模块级别的Fixture 1. Fixture 小需求:在一个测试类中定义多个测试方法,查看每个测试方法执行完所花费的时长。 说明:Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture
Fixture控制级别: 1. 方法级别 2. 类级别 模块级别 1.1 方法级别
1.2 类级别 1.3模块级别 [了解] 2. 案例
需求:使用UnitTest框架对tpshop项目测试 1). 点击登录,进入登录页面 2). 输入用户名和密码,不输入验证码,直接点击登录按钮 3). 获取错误提示信息 2.1 示例代码
[AppleScript] 纯文本查看 复制代码 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) [AppleScript] 纯文本查看 复制代码 def tearDown(self): time.sleep(3) self.driver.quit()
2.2 总结 1. 必须继承unittest.TestCase类,setUp、tearDown才是一个Fixture 2. setUp:一般做初始化工作,比如:实例化浏览器驱动对象、浏览器最大化、设置隐式等待等 3. tearDown:一般做结束工作,比如:关闭浏览器驱动对象、退出登录等 3. 总结 1. 什么是Fixture? 2. Fixture控制级别有哪些? 如何定义Fixture? |