|
# 导入unittest模块
import unittest
from selenium import webdriver
from time import sleep
from config import info
from login import Login
# 创建Test_XXX类,继承unittest的TestCase类
class Test_Login(unittest.TestCase):
# setUP方法用于每一个测试用例执行前的初始化工作,这里设置从配置文件中获取浏览器类型并启动对应webdriver,配置浏览器窗口大小,设置隐式等待时间,加载测试网址
def setUp(self):
if info().browser == "Firefox":
self.driver = webdriver.Firefox()
elif info().browser == "Chrome":
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(5)
self.driver.get(info().url)
sleep(1)
# 定义具体的测试用例,这里为登录测试
def test_login(self):
Login(self.driver).login()
flag = self.driver.find_element_by_xpath("//span[contains(.,'首页')]")
# 断言方法,判断期望元素是否显示
self.assertTrue(flag.is_displayed())
# 定义具体的测试用例,这里为登出测试
def test_logout(self):
Login(self.driver).logout()
flag = self.driver.find_element_by_xpath("//h6[contains(.,'欢迎登陆')]")
断言方法,判断期望元素是否显示
self.assertTrue(flag.is_displayed())
# 继续添加测试用例
def test_XXX(self):
pass
# 相对于setUP,这里的tearDown作为收尾工作,即每一个测试case执行结束后需要执行的工作,这里设置为关闭窗口
def tearDown(self):
sleep(1)
self.driver.quit()
if __name__ == "__main__":
# unittest提供的全局main()方法,可以将每个测试用例变成直接运行的测试脚本
unittest.main()
import unittest
# 导入HTML报表模块
from HTMLTestRunner import HTMLTestRunner
# 导入测试用例
import test_login
import test_index
# 初始化TestSuite实例,构建测试套件
suite = unittest.TestSuite()
# 按照执行顺序将测试用例添加到测试套件中
# 登录登出验证
suite.addTest(test_login.Test_Login("test_login"))
suite.addTest(test_login.Test_Login("test_logout"))
# 首页 数据抓取
suite.addTest(test_index.TestIndex("test_index"))
# 语言切换
suite.addTest(test_index.TestIndex("test_language"))
# 产品信息
suite.addTest(test_index.TestIndex("test_product"))
# 切换主题
suite.addTest(test_index.TestIndex("test_theme"))
if __name__ == "__main__":
now = time.strftime("%Y-%m-%d" + "-" + "%H_%M_%S")
# 定义报表文件
filename = "reports/" + now + "_user.html"
fp = open(filename, 'wb')
# 通过HTMLTestRunner类定义定义测试报告
runner = HTMLTestRunner(stream=fp, title='测试报告', description='用例执行情况:')
# 运行测试套件
runner.run(suite)
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。