用例生成
test
case
testLogin.py
登录功能测试用例
# -*-coding:utf-8-*-
import unittest
from test.pages.loginPage import LoginPage
class TestLogin(unittest.TestCase):
"""登录测试"""
@classmethod
def setUpClass(cls):
cls.login = LoginPage()
@classmethod
def tearDownClass(cls):
cls.login.quit_driver()
def test_login01(self):
"""登录成功"""
self.login.login()
if __name__ == '__main__':
unittest.main()
test
case
testHome.py
主页页面测试用例
# -*-coding:utf-8-*-
import unittest
from test.pages.homePage import HomePage
class TestHome(unittest.TestCase):
"""测试主页功能"""
@classmethod
def setUpClass(cls):
cls.home = HomePage()
cls.home.login()
@classmethod
def tearDownClass(cls):
cls.home.quit_driver()
def setUp(self) -> None:
pass
def tearDown(self) -> None:
pass
def test_home01_add_data_cancel(self):
"""测试添加数据时取消"""
self.home.add_data(code='302010', name="测试数据", sex="女", grader="六年级一班", button="取消")
def test_home02_add_data_confirm(self):
"""测试添加数据成功"""
self.home.add_data(code='302010', name="测试数据", sex="女", grader="六年级一班", button="确定")
def test_home03_edit_data_cancel(self):
"""测试编辑数据时取消"""
self.home.edit_data(header_text="姓 名", row_text="测试数据", code='302011', sex="男", button="取消")
def test_home04_edit_data_confirm(self):
"""测试编辑数据成功"""
self.home.edit_data(header_text="姓 名", row_text="测试数据", code='302011', sex="男", button="确定")
def test_home05_search(self):
"""测试搜索功能"""
self.home.search("测试数据")
def test_home06_delete_data_cancel(self):
"""测试删除数据取消"""
self.home.delete_data(header_text="姓 名", row_text="测试数据", button="取消")
def test_home07_delete_data_confirm(self):
"""测试删除数据成功"""
self.home.delete_data(header_text="姓 名", row_text="测试数据", button="确定")
if __name__ == '__main__':
unittest.main()
test
case
testAbout.py
关于我们页面测试用例
# -*-coding:utf-8-*-
import unittest
from test.pages.aboutPage import AboutPage
class TestAbout(unittest.TestCase):
"""测试关于我们页面"""
@classmethod
def setUpClass(cls):
cls.about = AboutPage()
cls.about.login()
@classmethod
def tearDownClass(cls):
cls.about.quit_driver()
def setUp(self):
pass
def tearDown(self):
pass
def test_about01(self):
"""进入关于我们页面测试"""
self.about.select_menu("关于我们")
about = self.about.about_element()
self.assertEqual("关于我们", about.text)
if __name__ == '__main__':
unittest.main()
test
case
testLogout.py
退出登录测试用例
# -*-coding:utf-8-*-
import unittest
from test.pages.loginPage import LoginPage
class TestLogout(unittest.TestCase):
"""测试退出登录功能"""
@classmethod
def setUpClass(cls):
cls.login = LoginPage()
cls.login.login()
@classmethod
def tearDownClass(cls):
cls.login.quit_driver()
def test_logout01(self):
"""测试退出登录"""
self.login.log_out()
if __name__ == '__main__':
unittest.main()
测试用例执行
test
runner
main.py
获取所有用例、执行、输出报告
# -*-coding:utf-8-*-
import os, time
import unittest
from utils.HTMLTestRunner import HTMLTestRunner
class Main:
def get_all_case(self):
"""导入所有的用例"""
current_path = os.path.abspath(os.path.dirname(__file__))
case_path = current_path + '/../case/'
discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py")
print(discover)
return discover
def set_report(self, all_case, report_path=None):
"""设置生成报告"""
if report_path is None:
current_path = os.path.abspath(os.path.dirname(__file__))
report_path = current_path + '/../../report/'
else:
report_path = report_path
# 获取当前时间
now = time.strftime('%Y{y}%m{m}%d{d}%H{h}%M{M}%S{s}').format(y="年", m="月", d="日", h="时", M="分", s="秒")
# 标题
title = u"后台管理系统"
# 设置报告存放路径和命名
report_abspath = os.path.join(report_path, title + now + ".html")
# 测试报告写入
fp = open(report_abspath, "wb")
runner = HTMLTestRunner(stream=fp, title=title)
runner.run(all_case)
fp.close()
return
def run_case(self, report_path=None):
all_case = self.get_all_case()
self.set_report(all_case, report_path)
if __name__ == '__main__':
Main().run_case()
最后的入口文件
run.py
# -*-coding:utf-8-*-
import sys
sys.path.append('./../../')
from test.runner.main import Main
if __name__ == '__main__':
Main().run_case()
最后执行效果
项目存放地址:
https://gitee.com/heyubo9541/AutoTestExample-Heyb-Project.git
前端地址待补充: