login.py
# coding:utf-8
"""
Created on 2024-8-30
description: 定义登录界面的测试用例
@author: xxx
"""
import time,os.path,unittest
from framework.BasePage import BasePage
from framework.Driver_Configure import Driver_Configure
from framework.readExcel import TestExcel
from framework.ImageCompare import ImageCompare
from framework.retry import Retry
from Page.LoginPage import LoginPage
from Page.FirstPage import FirstPage
from Page.HomePage import HomePage
from Page.MerchantPage import MerchantPage
@Retry(max_n=2)#失败或报错后重试2次
class TestLoginPage(unittest.TestCase):
#声明获取excel文件第1个表
Sheet = TestExcel().get_sheetnames()[0]
test_data = (TestExcel().get_xlsx(Sheet))
# 初始化必要的设备信息与业务页面
@classmethod
def setUpClass(self):
configure = Driver_Configure()
#print(u"系统启动")
self.driver = configure.get_driver()
self.base_page = BasePage(self.driver)
self.Login_page = LoginPage(self.driver)
self.First_page = FirstPage(self.driver)
self.Home_page = HomePage(self.driver)
self.Merchant_page = MerchantPage(self.driver)
# 测试用例1---登录页面UI验证
def test_login_001(self):
'''登录页面UI验证'''
print('登录页面')
# 获取图片地址
screen_path = (os.path.abspath('.') + '/UI/screenshot/').replace('\\', '/')
shot_path = (os.path.abspath('.') + '/UI/shot/').replace('\\', '/')
self.IC = ImageCompare()
# 获取当前界面的截图
self.driver.save_screenshot(screen_path + 'login_screenshot.png')
# 加载截图和参考图片
ele = self.IC.calc_similar_by_path(screen_path + 'login_screenshot.png',
shot_path + 'login.png') * 100
# 验证
try:
self.assertEquals(ele, 100)
except BaseException as f:
print('UI:登录页面和原型页面不一致')
raise
else:
print('UI:登录页面和原型页面一致')
# 测试用例2 ---手机号格式不正确,密码正确
def test_login_002(self):
'''手机号格式不正确,密码正确'''
print('登录页面')
# 登录业务
self.Login_page.do_login_customer(self.test_data[2]['手机号'], self.test_data[2]['密码'])
# 验证
try:
self.assertEquals(self.base_page.show_text(self.Login_page.tip_button), self.test_data[2]['预期结果1'])
except BaseException as f:
self.base_page.get_img()
raise
else:
print('测试ok')
finally:
# 去掉勾选
self.base_page.click(self.Login_page.agreement_button)
@classmethod
def tearDownClass(self):
print(u"关闭进程")
self.driver.quit()
if __name__ == "__main__":
unittest.main()