Module: Appom
- Extended by:
- Logging
- Includes:
- Logging
- Defined in:
- lib/appom.rb,
lib/appom/logging.rb,
lib/appom/version.rb,
lib/appom/exceptions.rb,
lib/appom/element_cache.rb
Overview
Configuration for element caching
Defined Under Namespace
Modules: Configuration, ElementCache, ElementContainer, ElementFinder, ElementState, ElementValidation, Helpers, Logging, Performance, Retry, Screenshot, SmartWait, Visual Classes: AppomError, ArgumentError, ConfigurationError, DriverError, DriverNotInitializedError, DriverOperationError, ElementError, ElementNotFoundError, ElementStateError, InvalidElementError, InvalidSectionError, Page, Section, SectionError, TimeoutError, UnsupportedBlockError, Wait, WaitError
Constant Summary collapse
- VERSION =
Current version of the Appom gem
'2.0.0'
Class Attribute Summary collapse
-
.cache_config ⇒ Object
Returns the value of attribute cache_config.
-
.driver ⇒ Object
Returns the value of attribute driver.
-
.max_wait_time ⇒ Object
Returns the value of attribute max_wait_time.
Class Method Summary collapse
-
.configure {|config| ... } ⇒ Object
Configure appom global settings.
- .configure_cache(max_size: 50, ttl: 30, enabled: true) ⇒ Object
-
.configure_logging(level: :info, output: nil, custom_logger: nil) ⇒ Object
Configure logging.
-
.element_tracking_summary ⇒ Object
Element state tracking convenience methods.
- .export_element_tracking ⇒ Object
- .export_performance_metrics ⇒ Object
- .generate_visual_report ⇒ Object
-
.performance_stats ⇒ Object
Performance monitoring convenience methods.
-
.register_driver { ... } ⇒ Appium::Driver
Register a new Appium driver for Appom.
-
.reset_driver ⇒ Object
Reset the device, relaunching the application.
-
.setup_exit_handler ⇒ Object
After run all scenario and exit we will quit driver to close application under test.
-
.start_driver ⇒ Object
Start the registered Appium driver.
-
.visual_regression_test(name) ⇒ Object
Visual testing convenience methods.
Methods included from Logging
level, level=, log_debug, log_element_action, log_error, log_info, log_wait_end, log_wait_start, log_warn, logger
Class Attribute Details
.cache_config ⇒ Object
Returns the value of attribute cache_config.
355 356 357 |
# File 'lib/appom/element_cache.rb', line 355 def cache_config @cache_config end |
.driver ⇒ Object
Returns the value of attribute driver.
78 79 80 |
# File 'lib/appom.rb', line 78 def driver @driver end |
.max_wait_time ⇒ Object
Returns the value of attribute max_wait_time.
78 79 80 |
# File 'lib/appom.rb', line 78 def max_wait_time @max_wait_time end |
Class Method Details
.configure {|config| ... } ⇒ Object
Configure appom global settings
87 88 89 |
# File 'lib/appom.rb', line 87 def configure yield self end |
.configure_cache(max_size: 50, ttl: 30, enabled: true) ⇒ Object
357 358 359 360 361 362 363 |
# File 'lib/appom/element_cache.rb', line 357 def configure_cache(max_size: 50, ttl: 30, enabled: true) @cache_config = { max_size: max_size, ttl: ttl, enabled: enabled, } end |
.configure_logging(level: :info, output: nil, custom_logger: nil) ⇒ Object
Configure logging
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/appom/logging.rb', line 86 def self.configure_logging(level: :info, output: nil, custom_logger: nil) if custom_logger Logging.logger = custom_logger else logger = Logger.new(output || $stdout) logger.level = case level.to_s.downcase when 'debug' then Logger::DEBUG when 'warn' then Logger::WARN when 'error' then Logger::ERROR when 'fatal' then Logger::FATAL else Logger::INFO # This covers both 'info' and any invalid values end logger.formatter = proc do |severity, datetime, _progname, msg| # Handle the case where datetime might be mocked as an integer in tests = datetime.respond_to?(:strftime) ? datetime.strftime('%Y-%m-%d %H:%M:%S') : datetime.to_s "[#{timestamp}] #{severity.ljust(5)} [Appom] #{msg}\n" end Logging.logger = logger end end |
.element_tracking_summary ⇒ Object
Element state tracking convenience methods
219 220 221 |
# File 'lib/appom.rb', line 219 def element_tracking_summary ElementState.tracking_summary end |
.export_element_tracking ⇒ Object
223 224 225 |
# File 'lib/appom.rb', line 223 def export_element_tracking(**) ElementState.export_data(**) end |
.export_performance_metrics ⇒ Object
205 206 207 |
# File 'lib/appom.rb', line 205 def export_performance_metrics(**) Performance.export_metrics(**) end |
.generate_visual_report ⇒ Object
214 215 216 |
# File 'lib/appom.rb', line 214 def generate_visual_report(**) Visual.generate_report(**) end |
.performance_stats ⇒ Object
Performance monitoring convenience methods
201 202 203 |
# File 'lib/appom.rb', line 201 def performance_stats Performance.summary end |
.register_driver { ... } ⇒ Appium::Driver
Register a new Appium driver for Appom
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/appom.rb', line 105 def register_driver(&) log_info('Registering Appium driver') # Register driver with performance monitoring @driver = Performance.time_operation('driver_registration', &) setup_exit_handler # Initialize element state tracking if enabled if Configuration.get('element_state.tracking_enabled', false) ElementState.tracker log_info('Element state tracking initialized') end log_info('Appium driver registered successfully') @driver rescue StandardError => e log_error('Failed to register driver', { error: e. }) raise DriverError, "Failed to register driver: #{e.message}" end |
.reset_driver ⇒ Object
Reset the device, relaunching the application
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/appom.rb', line 152 def reset_driver raise DriverNotInitializedError unless @driver log_info('Resetting Appium driver') # Reset driver with performance monitoring Performance.time_operation('driver_reset') do @driver.reset end log_info('Appium driver reset successfully') rescue DriverNotInitializedError raise rescue StandardError => e log_error('Failed to reset driver', { error: e. }) raise DriverOperationError.new('reset', e.) end |
.setup_exit_handler ⇒ Object
After run all scenario and exit we will quit driver to close application under test
171 172 173 174 175 176 |
# File 'lib/appom.rb', line 171 def setup_exit_handler main = Process.pid at_exit do cleanup_on_exit(main) end end |
.start_driver ⇒ Object
Start the registered Appium driver
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/appom.rb', line 130 def start_driver raise DriverNotInitializedError unless @driver log_info('Starting Appium driver') # Start driver with performance monitoring Performance.time_operation('driver_start') do @driver.start_driver end log_info('Appium driver started successfully') rescue DriverNotInitializedError raise rescue StandardError => e log_error('Failed to start driver', { error: e. }) raise DriverOperationError.new('start_driver', e.) end |
.visual_regression_test(name) ⇒ Object
Visual testing convenience methods
210 211 212 |
# File 'lib/appom.rb', line 210 def visual_regression_test(name, **) Visual.regression_test(name, **) end |