def initialize(self, context): self.revent_setup_file = context.resolver.get(wlauto.common.android.resources.ReventFile(self, 'setup')) self.revent_run_file = context.resolver.get(wlauto.common.android.resources.ReventFile(self, 'run')) devpath = self.device.path self.on_device_setup_revent = devpath.join(self.device.working_directory, os.path.split(self.revent_setup_file)[-1]) self.on_device_run_revent = devpath.join(self.device.working_directory, os.path.split(self.revent_run_file)[-1]) self._check_revent_files(context) default_setup_timeout = ceil(ReventParser.get_revent_duration(self.revent_setup_file)) + 30 default_run_timeout = ceil(ReventParser.get_revent_duration(self.revent_run_file)) + 30 self.setup_timeout = self.setup_timeout or default_setup_timeout self.run_timeout = self.run_timeout or default_run_timeout
def setup(self, context): self.revent_setup_file = context.resolver.get(ReventFile(self, 'setup')) self.revent_run_file = context.resolver.get(ReventFile(self, 'run')) devpath = self.device.path self.on_device_setup_revent = devpath.join(self.device.working_directory, os.path.split(self.revent_setup_file)[-1]) self.on_device_run_revent = devpath.join(self.device.working_directory, os.path.split(self.revent_run_file)[-1]) self._check_revent_files(context) default_setup_timeout = ceil(ReventParser.get_revent_duration(self.revent_setup_file)) + 30 default_run_timeout = ceil(ReventParser.get_revent_duration(self.revent_run_file)) + 30 self.setup_timeout = self.setup_timeout or default_setup_timeout self.run_timeout = self.run_timeout or default_run_timeout Workload.setup(self, context) self.device.killall('revent') command = '{} replay {}'.format(self.on_device_revent_binary, self.on_device_setup_revent) self.device.execute(command, timeout=self.setup_timeout)
def run(self, args): self.logger.info("Pushing file to device") self.device.push_file(args.revent, self.device.working_directory) revent_file = self.device.path.join(self.device.working_directory, os.path.split(args.revent)[1]) if args.clear: self.device.execute("pm clear {}".format(args.package)) if args.package: self.logger.info("Starting {}".format(args.package)) self.device.execute('monkey -p {} -c android.intent.category.LAUNCHER 1'.format(args.package)) self.logger.info("Replaying recording") command = "{} replay {}".format(self.target_binary, revent_file) timeout = ceil(ReventParser.get_revent_duration(args.revent)) + 30 self.device.execute(command, timeout=timeout) self.logger.info("Finished replay")