# -- coding: utf-8 --
# @Time : 2022/7/11 17:32
# @Author : siyu.yang
import os
from selenium import webdriver
from config.config_utils import config_obj
from logs.log_utils import logs_obj
from selenium.webdriver.chrome.service import Service
driver_path = os.path.join(os.path.dirname(__file__), '../webdriver/chromedriver.exe')
def set_driver():
driver_server = Service(driver_path)
driver = webdriver.Chrome(service=driver_server)
logs_obj.info('加载浏览器驱动')
driver.get(config_obj.get_zentao_url)
logs_obj.info('加载 ZenTao url:{}'.format(config_obj.get_zentao_url))
driver.maximize_window()
logs_obj.info('浏览器网页最大化')
driver.implicitly_wait(30)
logs_obj.info('隐式等待30s')
return driver
# -- coding: utf-8 --
# @Time : 2022/7/11 17:40
# @Author : siyu.yang
from selenium import webdriver
from selenium.webdriver.common.by import By
from config.config_utils import config_obj
import time
from logs.log_utils import logs_obj
from common import set_driver
def login_success(driver):
driver.find_element(By.NAME, 'account').send_keys(config_obj.get_name_02)
time.sleep(1)
logs_obj.info('----用户名输入:{}------'.format(config_obj.get_name_02))
driver.find_element(By.NAME, 'password').send_keys(config_obj.get_password_02)
time.sleep(1)
logs_obj.info('----密码输入------'.format(config_obj.get_password_02))
driver.find_element(By.ID, 'submit').click()
time.sleep(1)
logs_obj.info('----点击登录按钮------')
login_success(set_driver.set_driver())
def login_fail(driver):
driver.find_element(By.NAME, 'account').send_keys(config_obj.get_name_03)
time.sleep(1)
logs_obj.info('----用户名输入------'.format(config_obj.get_name_03))
driver.find_element(By.NAME, 'password').send_keys('123456')
time.sleep(1)
logs_obj.info('----密码输入------'.format('123456'))
driver.find_element(By.ID, 'submit').click()
time.sleep(1)
logs_obj.info('----点击登录按钮------')
登录、驱动分离后,仅仅测试用例发生变化,变化如下
login_fail_case.py
import unittest, os, time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from common import set_driver
from common import login
from logs.log_utils import logs_obj
driver_path = os.path.join(os.path.dirname(__file__), '../../webdriver/chromedriver.exe')
class LoginFailCase(unittest.TestCase):
def setUp(self):
self.driver = set_driver.set_driver()
def tearDown(self):
time.sleep(3)
self.driver.quit()
logs_obj.info('----关闭驱动------')
def test_login_fail_case_03(self):
login.login_fail(self.driver)
# 断言span.user-name
logs_obj.info('---- 运行test_login_fail_case_03------')
self.assertTrue(WebDriverWait(self.driver,10).until(EC.alert_is_present()))
logs_obj.info('----对 test_login_fail_case_03 开始进行断言------')
def test_login_fail_case_04(self):
login.login_fail(self.driver)
logs_obj.info('---- 运行test_login_fail_case_04------')
# 断言
self.assertTrue(WebDriverWait(self.driver,10).until(EC.alert_is_present()))
logs_obj.info('---- 对 test_login_fail_case_04 进行断言------')
if __name__ == '__main__':
unittest.main()login_success_case.py
import unittest, os, time
from selenium.webdriver.common.by import By
from logs.log_utils import logs_obj
from common import set_driver
from common import login
class LoginSuccessCase(unittest.TestCase):
def setUp(self):
self.driver = set_driver.set_driver()
def tearDown(self):
self.driver.find_element(By.CSS_SELECTOR, 'span.user-name').click()
self.driver.find_element(By.LINK_TEXT, '退出').click()
time.sleep(3)
logs_obj.info('等待3秒钟')
self.driver.quit()
logs_obj.info('关闭驱动')
def test_login_case_01(self):
login.login_success(self.driver)
# 断言span.user-name
actual_result = self.driver.find_element(By.CSS_SELECTOR, 'span.user-name').text
self.assertEqual(actual_result, '开发人员1', '开发人员1 登录失败')
def test_login_case_02(self):
login.login_success(self.driver)
# 断言
actual_result = self.driver.find_element(By.CSS_SELECTOR, 'span.user-name').text
self.assertEqual(actual_result, '开发人员1', '开发人员1 登录失败')
if __name__ == '__main__':
unittest.main()
menu_link_case.py
# -- coding: utf-8 --
# @Time : 2022/7/11 17:06
# @Author : siyu.yang
import unittest, time, os
from selenium.webdriver.common.by import By
from logs.log_utils import logs_obj
from common import set_driver
from common import login
driver_path = os.path.join(os.path.dirname(__file__), '../../webdriver/chromedriver.exe')
class MenuLinkCase(unittest.TestCase):
def setUp(self):
self.driver = set_driver.set_driver()
def tearDown(self):
time.sleep(3)
self.driver.quit()
logs_obj.info('----关闭驱动------')
def test_my_link(self):
'''测试打开我的地盘'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="my"]').click()
logs_obj.info('打开我的地盘')
title = self.driver.title
self.assertEqual(title,'我的地盘 - 禅道','进入我的地盘失败')
def test_product_link(self):
'''测试打开产品菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="product"]').click()
logs_obj.info('打开产品主页菜单')
title = self.driver.title
self.assertEqual(title, '产品主页 - 禅道', '进入产品主页失败')
def test_project_link(self):
'''测试打开项目菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="project"]').click()
logs_obj.info('打开项目主页菜单')
title = self.driver.title
self.assertEqual(title, '项目主页 - 禅道', '进入项目主页失败')
def test_qa_link(self):
'''测试打开测试菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="qa"]').click()
logs_obj.info('打开测试主页菜单')
title = self.driver.title
self.assertEqual(title, '测试主页 - 禅道', '进入测试主页失败')
def test_doc_link(self):
'''测试打开文档菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="doc"]').click()
logs_obj.info('打开文档主页菜单')
title = self.driver.title
self.assertEqual(title, '文档::文档主页 - 禅道', '进入我的地盘失败')
def test_report_link(self):
'''测试产品汇总表菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="report"]').click()
logs_obj.info('打开产品汇总表菜单')
title = self.driver.title
self.assertEqual(title, '产品汇总表 - 禅道', '进入产品汇总表失败')
def test_company_link(self):
'''测试组织视图首页菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="company"]').click()
logs_obj.info('打开组织视图首页菜单')
title = self.driver.title
self.assertEqual(title, '组织视图首页::部门结构 - 禅道', '进入组织视图首页失败')
if __name__ == '__main__':
unittest.main()
my_success_case.py
# -- coding: utf-8 --
# @Time : 2022/7/8 16:37
import unittest, os, time
from selenium.webdriver.common.by import By
from common import set_driver
from common import login
driver_path = os.path.join(os.path.dirname(__file__), '../../webdriver/chromedriver.exe')
class MySuccessCase(unittest.TestCase):
def setUp(self):
self.driver = set_driver.set_driver()
def tearDown(self):
time.sleep(3)
self.driver.quit()
def test_my_case_05(self):
login.login_success(self.driver)
self.driver.find_element(By.CSS_SELECTOR,'a.active span').click()
actual_result = self.driver.find_element(By.CSS_SELECTOR,'a.active span').text
self.assertEqual(actual_result,'我的地盘','进入我的地盘失败')
if __name__ == '__main__':
unittest.main()
product_success_case.py
# -- coding: utf-8 --
# @Time : 2022/7/8 16:47
# -- coding: utf-8 --
# @Time : 2022/7/8 16:37
import unittest, os, time
from selenium.webdriver.common.by import By
from common import set_driver
from common import login
from logs.log_utils import logs_obj
driver_path = os.path.join(os.path.dirname(__file__), '../../webdriver/chromedriver.exe')
class ProductSuccessSuit(unittest.TestCase):
def setUp(self):
self.driver = set_driver.set_driver()
def tearDown(self):
time.sleep(3)
self.driver.quit()
logs_obj.info('----关闭驱动------')
def test_goto_product(self):
'''测试进入产品汇总表菜单'''
login.login_success(self.driver)
self.driver.find_element(By.XPATH, '//li[@data-id="product"]').click()
logs_obj.info('打开产品主页表菜单')
title = self.driver.title
self.assertEqual(title, '产品主页 - 禅道', '进入产品主页失败')
if __name__ == '__main__':
unittest.main()
最后运行run_all_cases.py,生成测试报告并发送邮件
运行结果:
发送的测试报告详情:
| 留言与评论(共有 0 条评论) “” |