gesture.py
# coding:utf-8
'''
Created on 2024-8-30
description:手势操作
@author: xxx
'''
class gesture(object):
'''
基础操作
'''
def __init__(self, driver):
self.driver = driver
self.driver.implicitly_wait(10)
self.duration = 1000
@property
def width(self):
'''获取屏幕宽度'''
return self.driver.get_window_size()['width']
@property
def height(self):
'''获取屏幕高度'''
return self.driver.get_window_size()['height']
def swipe_to_left(self,highest, base=0.1):
'''从右向左滑动'''
return self.driver.swipe(self.width * (1 - base),
self.height * highest,
self.width * base,
self.height * highest,
self.duration
)
def swipe_to_right(self, highest,base=0.1):
'''从左向右滑动'''
return self.driver.swipe(self.width * base,
self.height * highest,
self.width * (1 - base),
self.height * highest,
self.duration
)
def swipe_to_top(self, base=0.9):
'''从下向上滑动'''
return self.driver.swipe(self.width * 0.5,
self.height * base,
self.width * 0.5,
self.height * (1 - base),
self.duration
)
def swipe_to_bottom(self, base=0.9):
'''从上向下滑动'''
return self.driver.swipe(self.width * 0.5,
self.height * (1 - base),
self.width * 0.5,
self.height * base,
self.duration
)
case调用
# coding:utf-8
"""
Created on 2024-8-30
description: 定义财务管理界面的测试用例
@author: xxx
"""
import unittest,time,os.path
from framework.BasePage import BasePage
from framework.gesture import gesture
from framework.Driver_Configure import Driver_Configure
from framework.ImageCompare import ImageCompare
from framework.retry import Retry
from Page.FinancePage import FinancePage
@Retry(max_n=3)
class TestFinancePage(unittest.TestCase):
# 初始化必要的设备信息与业务页面
@classmethod
def setUpClass(self):
configure = Driver_Configure()
print(u"系统启动")
self.driver = configure.get_driver()
self.base_page = BasePage(self.driver)
self.gesture_page = gesture(self.driver)
self.Finance_page = FinancePage(self.driver)
# 测试用例1 --- 财务管理页面UI验证
def test_finance_001(self):
'''财务管理首页:文案对比'''
# 左滑找到财务管理
self.gesture_page.swipe_to_left(1/3)
# 进入财务管理首页
self.base_page.click(self.First_page.finance_button)
time.sleep(2)
# 获取图片地址
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 + 'finance_screenshot.png')
# 加载截图和参考图片
ele = self.IC.calc_similar_by_path(screen_path + 'finance_screenshot.png',
shot_path + 'finance.png') * 100
# 验证
try:
self.assertEquals(ele, 100)
except BaseException as f:
print('UI:财务管理页面和原型页面不一致')
raise
else:
print('UI:财务管理页面和原型页面一致')
@classmethod
def tearDownClass(self):
print(u"关闭进程")
self.driver.quit()
if __name__ == "__main__":
unittest.main()