selenium in openqa
play

Selenium in OpenQA testing web pages and more Ondrej Holecek - PowerPoint PPT Presentation

Selenium in OpenQA testing web pages and more Ondrej Holecek me@aaannz.eu OpenQA system Release management tool .. with included acceptance/integration testing 2 OpenQA tests UX focus Multi-Machine - parallel, serial, results


  1. Selenium in OpenQA testing web pages and more Ondrej Holecek me@aaannz.eu

  2. OpenQA system • Release management tool .. with included acceptance/integration testing 2

  3. OpenQA tests • UX focus • Multi-Machine - parallel, serial, results reuse • Advanced networking – open vSwitch support • Multiple architecture support • Scalable – remote workers, asset caching • Infrastructure integration – RabbitMQ, fedmsg, GRU 3

  4. testing web - OpenQA x11_start_program('firefox'); assert_screen('firefox_started'); assert_and_click('url_bar'); type_string("www.opensuse.org\n"); assert_screen('opensuse.org-looks-fine'); assert_and_click('link_to_portal'); ... 4

  5. testing web - Selenium $driver->find_element('#user-action a')->click(); $driver->find_element_by_link_text('Audit log')->click(); wait_for_data_table; like($driver->get_title(), qr/Audit log/, 'on audit log'); my $table = $driver- >find_element_by_id('audit_log_table'); ok($table, 'audit table found'); my $search = $driver->find_element('input.form-control'); ok($search, 'search box found'); my @entries = $driver->find_child_elements($table, 'tbody/tr', 'xpath'); is(scalar @entries, 3, 'three elements without filter'); 5

  6. OpenQA tests architecture • ~/main.pm • ~/tests/ • ~/needles/ • ~/lib/ • ~/data/ • ~/products/ 6

  7. OpenQA tests architecture • ~/main.pm ➔ test loader mandatory • ~/tests/ ➔ test directory • ~/needles/ ➔ matching templates • ~/lib/ ➔ support libraries • ~/data/ ➔ static test data • ~/products/ ➔ product specific data 7

  8. lib/ • Automatically added to @INC • Base test modules and libraries • No ABI specified for libraries 8

  9. selenium.pm • Install phase ‒ selenium-server on SUT ‒ chrome and chromedriver • Run phase ‒ obtain IP of SUT ‒ start server and connect driver (Selenium::Remote::Driver) • Helper subroutines ‒ wait_for_xpath, wait_for_link, ... 9

  10. Better of both worlds my $driver = selenium_driver(); $self->register_barriers('suma_minion_ready'); wait_for_link("Pending Minions", -tries => 10, -wait => 15, -reload_after_tries => 1)->click(); wait_for_xpath("//button[\@title='accept']")->click(); wait_for_link(".openqa.suse.de", -tries => 10, -wait => 15, -reload_after_tries => 1)->click(); save_screenshot; $self->apply_highstate(); $self->registered_barrier_wait('suma_minion_ready'); 10

  11. Demo 11

  12. Future • new helpers • openSUSE distri split into individual libraries • support for WinAppDriver as an exercise 12

  13. Questions?

  14. Have a Lot of Fun, and Join Us At: www.opensuse.org 17

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend