#第1步:新建项目day10 |
#第2步:在项目day10中 1)新建文件夹base 基类 package 2)新建文件夹page 封装 package 3)新建文件夹scripts 测试⽤例 package 4)新建文件夹data 数据⽂件 Directory 5)新建文件夹report 测试报告 Directory 6)新建文件夹log ⽇志⽂件 Directory 7)新建文件夹screenshot 截图⽂件 Directory |
#第3步:在项目day10中新建项⽬配置信息⽂件config.py import logging.handlers import os#定义绝对路径 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) SERVER = "http://127.0.0.1:4723/wd/hub" DESIRED_CAPS = {#参数数据 "platformName": "Android",# 系统型号 "deviceName": "xxx",#设备号 "appPackage": "com.tpshop.malls",#APP的包名 #app打开的第一个界面 "appActivity": "com.tpshop.malls.SPMainActivity", "autoGrantPermissions": True#是否自动授权 } # 日志收集配置 def init_log_config(): # 创建日志器对象 logger = logging.getLogger() #定义日志类型INFO logger.setLevel(logging.INFO) # 创建处理器(控制台、文件) sh = logging.StreamHandler() #定义日志生成路径和文件名 filename = BASE_DIR + "/log/tpshop.log" # 配置信息 fh = logging.handlers.TimedRotatingFileHandler(filename, when='midnight', interval=1, backupCount=15, encoding="UTF-8") # 创建格式化器 fmt = "%(asctime)s %(levelname)s [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s" formatter = logging.Formatter(fmt) # 为处理器设置格式 sh.setFormatter(formatter) fh.setFormatter(formatter) # 把处理器添加到日志器中 logger.addHandler(sh) logger.addHandler(fh) |
#第4步:在项目day10中新建项⽬配置信息⽂件utils.py import json import time from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from selenium.webdriver.support.wait import WebDriverWait import config # 封装跳转指定activity的方法 def switch_to_activity(activity_name, package_name='com.tpshop.malls'): DriverUtil.get_app_driver().start_activity(package_name, activity_name) # 封装获取toast消息方法 def get_toast_msg(message): loc = (MobileBy.XPATH, f"//*[contains(@text,'{message}')]") try: el = WebDriverWait(DriverUtil.get_app_driver(), 10).until( lambda x: x.find_element(*loc) ) return el.text except Exception as e: print(f"没有找到toast元素{loc}") raise e # 封装数据处理函数可读取json文件 def build_data(filename): filepath = config.BASE_DIR + "/data/" + filename test_data = [] with open(filepath, encoding='utf-8') as f: data = json.load(f) for case_data in data: test_data.append(tuple(case_data.values())) return test_data # 封装获取屏幕截图方法 def get_screenshot(func_str="test"): filename = time.strftime("%Y%m%d-%H%M%S") + '.png' path = config.BASE_DIR + "/screenshot/" + func_str + filename DriverUtil.get_app_driver().get_screenshot_as_file(path) #封装驱动工具 class DriverUtil: __driver = None @classmethod # 封装启动驱动 def get_app_driver(cls): if cls.__drive |
python中app移动端参数化测试
于 2022-06-03 19:48:57 首次发布