Exemple #1
0
class InitDriver(object):
    def __init__(self):
        self.log4py = LoggingController()
        self.run_config = InitConfiger()
        self.cmd = Cmd()
        self.service_path = FilePathUtil().get_service_path()
        self.config = ConfigController(self.service_path)

    def init_driver(self):

        desired_caps_dict = self.run_config.get_desired_caps_dict()
        sno_list = self.cmd.get_device_list()
        port = 4723
        print(sno_list)

        if not len(sno_list):
            return None
        for sno in sno_list:
            # self.cmd.set_serialno(sno)
            os.system('appium -p %d' % port)
            self.cmd.serialno = sno
            desired_caps = desired_caps_dict[sno]

            url = 'http://127.0.0.1:%d/wd/hub' % port

            num = 0
            while num <= 5:
                try:
                    driver = webdriver.Remote(url, desired_caps)
                except Exception as e:
                    self.log4py.error(
                        "连接appium服务,实例化driver时出错,尝试重连...({})".format(num))
                    num = num + 1
                    continue
                self.log4py.info("webdriver连接信息:{}:{}".format(
                    url, str(desired_caps)))

                while True:
                    if self.cmd.port_is_used(port):
                        port = port + 1
                    else:
                        break
                print(port)

                return driver
Exemple #2
0
class InitConfiger(object):
    def __init__(self):
        self.cmd = Cmd()
        self.path = FilePathUtil().get_config_run_path()
        self.config = ConfigController(self.path)
        self.log4py = LoggingController()
        self.dev_info = DeviceInfo().get_infos_as_dict()

    def get_desired_caps_dict(self):
        section = "desired_caps"
        desired_caps_dict = {}
        sno_list = self.cmd.get_device_list()
        if not len(sno_list):
            return None
        for sno in sno_list:
            # self.cmd.set_serialno(sno)
            self.cmd.serialno = sno
            if int(float(self.dev_info[sno]["os_version"][0])) < 5:
                desired_caps_dict[sno] = {
                    "platformName": "Android",
                    "platformVersion": self.dev_info[sno]["os_version"],
                    "deviceName": sno,
                    "appPackage": self.config.get(section, "appPackage"),
                    "appActivity": self.config.get(section, "appActivity"),
                    "unicodeKeyboard": True,
                    "resetKeyboard": True,
                    "noReset": True,
                    "automationName": "Uiautomator1"
                }
            else:
                desired_caps_dict[sno] = {
                    "platformName": "Android",
                    "platformVersion": self.dev_info[sno]["os_version"],
                    "deviceName": sno,
                    "appPackage": self.config.get(section, "appPackage"),
                    "appActivity": self.config.get(section, "appActivity"),
                    "unicodeKeyboard": True,
                    "resetKeyboard": True,
                    "noReset": True,
                    "automationName": "Uiautomator2"
                }

        return desired_caps_dict

    def get_host_port(self):
        host_port_list = ['127.0.0.1:4723', '127.0.0.1:4724']
        return host_port_list
Exemple #3
0
 def __init__(self):
     self.log4py = LoggingController()
     self.run_config = InitConfiger()
     self.cmd = Cmd()
     self.service_path = FilePathUtil().get_service_path()
     self.config = ConfigController(self.service_path)
Exemple #4
0
 def __init__(self):
     self.cmd = Cmd()
     self.path = FilePathUtil().get_config_run_path()
     self.config = ConfigController(self.path)
     self.log4py = LoggingController()
     self.dev_info = DeviceInfo().get_infos_as_dict()
from common.base.Command import Cmd
from common.utils.FileClearUtil import FileClearUtil
from common.utils.FilePathUtil import FilePathUtil
from page.page_obj import page_obj
from page_intel.share_page_obj import share_page_obj
from page_ddox.set_ll_obj import set_ll_page_obj
from common.utils.LoggingUtil import LoggingController
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
from common.utils.DateTimeUtil import DateTimeManager
from common.baseapi.BaseAppiumApi import BaseAppiumApi
from common.base.BroadcastCommand import BroadcastCommand

DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
driver = None

cmd = Cmd()
bccmd = BroadcastCommand()
fc = FileClearUtil()
fp = FilePathUtil()
dt = DateTimeManager()
log = LoggingController()


def pytest_addoption(parser):
    parser.addoption("--cmdopt",
                     action="store",
                     default="device_info",
                     help=None)


@pytest.fixture
 def __init__(self, driver):
     self.adb = Cmd()
     self.driver = driver
     self.log4py = LoggingController()
     self.ta = TouchAction()
     self.pauseTime = 5
 def __init__(self):
     self.cmd = Cmd()
     self.log4py = LoggingController()
class DeviceInfo(object):
    def __init__(self):
        self.cmd = Cmd()
        self.log4py = LoggingController()

    def get_infos_as_dict(self):

        try:
            info = {}
            lists = self.cmd.get_device_list()
            if not len(lists):
                self.log4py.info("无任何设备处于连接状态")
                return None
            self.log4py.info("开始获取设备信息.....")
            i = 1
            for sno in lists:
                # self.cmd.set_serialno(sno)
                self.cmd.serialno = sno
                brand, model, os_version, dpi, screen_size, name = \
                    self.get_device_info()
                info[sno] = {
                    "brand": brand,
                    "model": model,
                    "os_version": os_version,
                    "dpi": dpi,
                    "screen_size": screen_size,
                    "name": name
                }

                self.log4py.info("%d.设备连接信息:%s-%s" % (i, sno, info[sno]))
                # print(info[sno])
                i += 1
            self.log4py.info("设备信息获取完毕,设备总数量:%s" % len(lists))
            # print(info)
            # print(len(lists))

            return info
        except Exception as e:
            print(e)
            self.log4py.error("获取设备信息时发生错误")
            return None

    def get_device_info(self):
        """
        获取设备信息
        """
        try:
            name = self.cmd.get_device_sno()
            brand = self.cmd.get_device_brand()
            model = self.cmd.get_device_model()
            os_version = self.cmd.get_android_os_version()
            ram = self.cmd.get_device_ram()
            dpi = self.cmd.get_device_dpi()
            # ip = self.cmd.get_device_ip()
            screen_size = self.cmd.get_screen_size()

            return brand, model, os_version, dpi, screen_size, name

        except Exception as e:
            self.log4py.error("Get device info happen ERROR :" + str(e))
            return None