コード例 #1
0
    def __init__(self, emulator: Emulator, apk: Apk, seed: int,
                 number_of_events: int):

        api_commands.adb_start_server_safe()
        if seed > 500 or seed < 0:
            raise ValueError("seed must be within the range of 0 to 500")
        if number_of_events > 4200 or number_of_events < 10:
            raise ValueError(
                "number of events must be at least 10 seconds and at most 4200"
            )
        # adb shell pm list packages | grep com.ebooks.ebookreader
        self.number_of_events = number_of_events
        self.seed = seed
        # output = subprocess.check_output(
        #     [self.adb, 'shell', 'pm', 'list', 'packages', '|', 'grep',
        #      app_package_name]).decode().strip().split('\r\n')
        # util.debug_print(output, len(output), flag=PRINT_FLAG)
        output = api_commands.adb_is_package_present(emulator,
                                                     apk.package_name)
        if output < 1:
            raise ValueError("Provided {} not found.".format(apk.package_name))
        elif output > 1:
            raise ValueError(
                "Provided {} is too unspecific, multiple entries found.".
                format(apk.package_name))
        self.app_package_name = apk.package_name
コード例 #2
0
def run(apk: Apk, emulator_name: str, emulator_port: int):
    '''
        runs only monkey
    '''
    api_commands.adb_start_server_safe()
    mobile_monkey.start_emulator()
    emulator = emulator_manager.get_adb_instance_from_emulators(
        config.EMULATOR_NAME)
    # api_commands.adb_uninstall_apk(emulator, apk)
    # api_commands.adb_install_apk(emulator, apk)
    api_commands.adb_start_launcher_of_apk(emulator, apk)
    log = Logcat(emulator, apk, TestType.Monkey)
    log.start_logcat()
    telnet_connector = TelnetAdb(config.LOCALHOST, emulator.port)
    print("Monkey started at: {}".format(time.ctime()))
    subprocess.check_call([
        config.adb, 'shell', 'monkey',
        '-p', apk.package_name,
        '--throttle', config.MONKEY_INTERVAL,
        '-s', str(config.SEED),
        '-v', '-v', '-v',
        str(config.DURATION)])
    print("Monkey stopped at: {}".format(time.ctime()))
    api_commands.adb_stop_activity_of_apk(emulator, apk)
    log.stop_logcat()
    analyzer = Analyzer(log.file_address)
    print(analyzer)
    api_commands.adb_uninstall_apk(emulator, apk)
コード例 #3
0
def adb_instances_manager() -> List[Emulator]:
    '''
    returns the List of emulators.

    :returns `List[Emulator]`:

    '''
    emulators = []
    api_commands.adb_start_server_safe()
    adb_ports = api_commands.adb_list_avd_ports()
    for adb_port in adb_ports:
        pid = util.pid_from_emulator_port(adb_port)
        model = api_commands.avd_model_from_pid(pid)
        current_emulator = Emulator(adb_port, pid, model)
        emulators.append(current_emulator)
    util.detail_print(emulators)
    return emulators
コード例 #4
0
def start_emulator() -> bool:
    '''
        starts emulator
    '''
    command = config.EMULATOR
    global emulator_model
    if emulator_manager.adb_instances_manager():
        util.debug_print('already emulators are running.', flag=PRINT_FLAG)
        return True
    else:
        util.debug_print(
            str.format("No emulator instance running. starting {} at port {}",
                       emulator_model, emulator_port), flag=PRINT_FLAG)
        api_commands.adb_start_server_safe()
        emulator_manager.emulator_start_avd(emulator_port, emulator_model)
        # subprocess.Popen([command,
        #                   '-port', str(emulator_port), '-avd',
        #                   emulator_name, '-use-system-libs'],
        #                  stdout=subprocess.PIPE)
        emulator_manager.check_avd_booted_completely(emulator_port)
        return True