openqa - state of the project 2015 - linuxdays state of the union project ondrej holecek /aaannz/...
TRANSCRIPT
![Page 2: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/2.jpg)
4
openQA
• automated testing tool‒ full stack testing (from installation to applications)
‒ tests “human codepath” (VNC I/O)
‒ virtual and real SUTs (QEMU VMs, IPMI, s390)
‒ powerful reporting (logs, screenshots, video)
• https://os-autoinst.github.io/openQA/• https://openqa.opensuse.org/• https://build.opensuse.org/project/show/devel:openQA
![Page 3: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/3.jpg)
5
architecture
![Page 4: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/4.jpg)
6
tests
• test code ‒ testapi (openQA DSL /perl/ )
‒ https://github.com/os-autoinst/os-autoinst-distri-opensuse
• needles‒ reference images + metadata
‒ https://github.com/os-autoinst/os-autoinst-needles-opensuse
• nothing is installed on SUT
![Page 5: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/5.jpg)
What's new - frontend
![Page 6: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/6.jpg)
8
landing page
![Page 7: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/7.jpg)
9
landing page
![Page 8: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/8.jpg)
What's new - backend
![Page 9: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/9.jpg)
11
networking
• QEMU user mode network
![Page 10: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/10.jpg)
12
networking
• QEMU user mode network• TAP devices• VDE (Virtual Distributed Ethernet)• Open vSwitch
![Page 11: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/11.jpg)
13
test dependencies
• chained dependency /serial/‒ test suite run time optimization
‒ asset reuse
![Page 12: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/12.jpg)
14
test dependencies
• chained dependency /serial/
• parallel dependency‒ HA, client-server services
‒ beware minimal worker count!
![Page 13: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/13.jpg)
15
test dependencies
• chained dependency /serial/
• parallel dependency• combination of both
![Page 14: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/14.jpg)
16
test dependencies
• chained dependency /serial/
• parallel dependency• combination of both• concept of child and parent job
![Page 15: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/15.jpg)
17
multi-machine tests
• mmapi‒ querying child/parent job state
• lockapi‒ synchronization primitive
![Page 16: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/16.jpg)
18
asset creation
• assets = test resources‒ ISO, HDD image, REPO, files
![Page 17: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/17.jpg)
19
asset creation
• assets = test resources‒ ISO, HDD image, REPO, files
• successful test job can generate new HDD asset‒ using test variables:
PUBLISH_HDD_$i
STORE_HDD_$i
![Page 18: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/18.jpg)
20
asset creation
• assets = test resources‒ ISO, HDD image, REPO, files
• successful test job can generate new HDD asset• manual upload of file assets
‒ using testapi
upload_asset()
![Page 19: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/19.jpg)
21
remote workers
• scaling out• s390, ppc, x86 workers under one OpenQA• REST & WebSockets communication• shared storage (r/o)
‒ tests assets
‒ outsource integrity assurance
![Page 20: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/20.jpg)
22
worker classes
• differentiating workers‒ worker class (worker property) needs to match
worker class (test variable)
• describes HW capabilities‒ CPU arch, available memory, …
• custom configuration‒ network
![Page 21: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/21.jpg)
23
worker classes – for test development
• using common openQA admin node• use local worker
‒ custom worker class (e.g. “my_worker”)
‒ don't use shared storage or you will break tests for others
‒ manually sync assets
• run developing tests with custom worker class
![Page 22: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/22.jpg)
24
preforking – going multiprocess
• scaling up• WebUI/API• standalone WebSockets server• standalone Scheduler• DBus IPC
‒ org.opensuse.openqa.Scheduler
‒ org.opensuse.openqa.WebSockets
![Page 23: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/23.jpg)
25
extensions (WIP)
• enable/disable various codepaths‒ configured in openqa.ini
‒ out-of-tree extension support
• interface‒ register($reactor)
‒ listen for Mojolicious events for callbacks
• DBus IPC as first (in-tree) openQA extension
![Page 24: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/24.jpg)
26
database support
• SQlite• PostgreSQL• MySQL/MariaDB
![Page 25: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/25.jpg)
27
authentication plugins
• build-in‒ openID 2.0
‒ iChain
‒ Fake‒ for development and demo purposes only!
• plugin interface‒ auth_login, auth_logout, auth_configure
![Page 26: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/26.jpg)
28
background tasks /GRU/
• results maintenance‒ compacting screenshots
‒ erasing old results and assets
• “source service” for ISO images‒ tests with ISOURL test variable
![Page 27: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/27.jpg)
29
future
• libvirt• real HW testing without IPMI• integration with other tools• better scheduler
![Page 28: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/28.jpg)
30
contacts
• IRCfreenode #opensuse-factory
• issueshttps://progress.opensuse.org/projects/openqav3/
• codehttps://github.com/os-autoinst/openQAhttps://github.com/os-autoinst/os-autoinst
![Page 29: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/29.jpg)
Questions?
![Page 30: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/30.jpg)
36
Have a Lot of Fun, and Join Us At:www.opensuse.org
![Page 31: openQA - state of the project 2015 - LinuxDays state of the union project Ondrej Holecek /aaannz/ oholecek@suse.com](https://reader034.vdocument.in/reader034/viewer/2022052609/5b0627717f8b9ac33f8c6922/html5/thumbnails/31.jpg)
General DisclaimerThis document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners.
LicenseThis slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license.
Details can be found at https://creativecommons.org/licenses/by-sa/4.0/
Credits
TemplateRichard Brown [email protected]
Design & InspirationopenSUSE Design Teamhttp://opensuse.github.io/branding-guidelines/