python中app移动端参数化测试

#第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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值