SlideShare a Scribd company logo
1 of 76
Download to read offline
#MM23NL
FASTER MAGENTO
INTEGRATION TESTS
if you wait too long,
you are going to do something else
#MM23NL
Jisse Reitsma
- Founder of Yireo
- Training Magento developers
- Maintaining open source extensions
- Board member of Mage-OS Nederland
- Organizer of MageUnconf NL
- Dad of currently 1 but soon 2
#MM23NL
ASSUMPTIONS
- You are familiar with Magento backend development
- You know what integration tests are
- You have tried running (any) tests at least once
#MM23NL
#MM23NL
QUESTION: WHO
IN THIS ROOM
WRITES
INTEGRATION
TESTS?
#MM23NL
42
#MM23NL
#MM23NL
QUESTION: HOW
LONG DO YOU
USUALLY WAIT FOR
INTEGRATION
TESTS TO BE
FINISHED?
#MM23NL
1m 20s
#MM23NL
WHY FASTER INTEGRATION TESTS
- Faster feedback loop
#MM23NL
WHY FASTER INTEGRATION TESTS
- Faster feedback loop
- Less barriere to get started with testing
#MM23NL
WHY FASTER INTEGRATION TESTS
- Faster feedback loop
- Less barriere to get started with testing
- Less energy consumption
#MM23NL
LESS POWER NEEDED
#MM23NL
REDUCE CLIMATE CHANGE
#MM23NL
PREVENTING THE RISE OF THE SEA LEVEL
#MM23NL
SAVE THE DUTCH
#MM23NL
SAVE THE DUTCH!
FASTER TESTS!
#MM23NL
#MM23NL
#MM23NL
GETTING THE FILES
#MM23NL
GETTING MAGENTO
$ composer create-project 
--repository-url=https://repo.magento.com/ 
magento/project-community-edition .
#MM23NL
GETTING MAGENTO MAGE-OS
$ composer create-project 
--repository-url=https://repo.mage-os.org/ 
mage-os/project-community-edition .
#MM23NL
FASTER COMPOSER DOWNLOADS
- Use a Mage-OS repository nearby
- Create your own mirror
- mage-os/generate-mirror-repo-js
- Private Packagist
- Satis
#MM23NL
TUNING COMPOSER CACHE
- Folder $COMPOSER_HOME/cache
- Try to reuse the cache amongst various installations
- S3 bucket
- Docker volume
- ZIP artifact to unzip before install
#MM23NL
#MM23NL
SETTING UP
INTEGRATION TESTS
#MM23NL
SETTING UP INTEGRATION TESTS (1)
- Navigate to dev/tests/integration/
#MM23NL
SETTING UP INTEGRATION TESTS (2)
- Navigate to dev/tests/integration/
- Copy phpunit.xml.dist to phpunit.xml
#MM23NL
FILE phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/9.6/phpunit.xsd" colors="true"
beStrictAboutTestsThatDoNotTestAnything="false" bootstrap="./framework/bootstrap.php" stderr="true">
<php>
….
<const name="TESTS_CLEANUP" value="enabled"/>
<const name="TESTS_MEM_USAGE_LIMIT" value="8192M"/>
…
<const name="TESTS_MAGENTO_MODE" value="developer"/>
</php>
<listeners>
<listener class="MagentoTestFrameworkEventPhpUnit"/>
<listener class="MagentoTestFrameworkErrorLogListener"/>
</listeners>
</phpunit>
#MM23NL
FILE phpunit.xml
- TESTS_CLEANUP=enabled at first run, disabled at subsequent runs
- TESTS_MEM_USAGE_LIMIT=4092M (PHP memory limit)
- TESTS_PARALLEL_RUN=1
- Remove Yandex listener if it is there
#MM23NL
SETTING UP INTEGRATION TESTS (3)
- Navigate to dev/tests/integration/
- Copy phpunit.xml.dist to phpunit.xml
- Copy etc/install-config-mysql.php.dist to etc/install-
config-mysql.php
#MM23NL
FILE etc/install-config-mysql.php
return [
'db-host' => 'localhost',
'db-user' => 'root',
'db-password' => '123123q',
'db-name' => 'magento_integration_tests',
'db-prefix' => '',
'backend-frontname' => 'backend',
'search-engine' => 'opensearch',
'opensearch-host' => 'localhost',
'opensearch-port' => 9200,
'admin-user' => MagentoTestFrameworkBootstrap::ADMIN_NAME,
'admin-password' => MagentoTestFrameworkBootstrap::ADMIN_PASSWORD,
'admin-email' => MagentoTestFrameworkBootstrap::ADMIN_EMAIL,
'admin-firstname' => MagentoTestFrameworkBootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => MagentoTestFrameworkBootstrap::ADMIN_LASTNAME,
'amqp-host' => 'localhost',
'amqp-port' => '5672',
'amqp-user' => 'guest',
'amqp-password' => 'guest',
'consumers-wait-for-messages' => '0',
];
#MM23NL
FILE etc/install-config-mysql.php
- Modify MySQL database
- Modify OpenSearch / ElasticSearch
- ...
#MM23NL
SETTING UP INTEGRATION TESTS (4)
- Navigate to dev/tests/integration/
- Copy phpunit.xml.dist to phpunit.xml
- Copy etc/install-config-mysql.php.dist to etc/install-
config-mysql.php
- Run ../../../vendor/bin/phpunit with your tests
#MM23NL
SETTING UP INTEGRATION TESTS (4)
- Navigate to dev/tests/integration/
- Copy phpunit.xml.dist to phpunit.xml
- Copy etc/install-config-mysql.php.dist to etc/install-
config-mysql.php
- Run ../../../vendor/bin/phpunit with your tests
Don't use bin/magento dev:tests:run integration because it's slower
#MM23NL
MY COMMAND
docker-compose exec -T php-fpm bash <<EOF
cd dev/tests/integration;
php -d memory_limit=-1 ../../../vendor/bin/phpunit 
-c ../quick-integration/phpunit.xml 
app/code/Yireo/Example/Test/Integration/
EOF
#MM23NL
1m 20s
#MM23NL
DISCLAIMER
If TESTS_CLEANUP is disabled (so the setup is skipped), the total time
goes down to 4-8s (unoptimized) or even 1-3s (optimized). This talk is
not necessarily about that, even though all of the following tips do
apply.
#MM23NL
1m 20s
Let’s get this number down
#MM23NL
TEST RUN BENCHMARK
- PHP 8.2
- MySQL 8
- Magento default install (of 1419 modules)
- Yireo GoogleTagManager (27 tests, 127 assertions)
- Reset of entire Docker stack, tmp/, file cache, generated/
This is run on some computer with some CPU and some RAM: Exact
numbers are not important, relative comparison is important
#MM23NL
HOW ARE INTEGRATION TESTS RUN
- PHPUnit calls bootstrap file
- Bootstrap kickstarts Magento application
- Magento database setup is run (setup:install)
- Or a restore from existing dump is done
- Various test events are triggered (startTest, endTest, ...)
- Tests are run
#MM23NL
#MM23NL
REACHDIGITAL
TEST FRAMEWORK
#MM23NL
REACHDIGITAL TESTFRAMEWORK
- Drop-in replacement of Magento TestFramework
- Disable memory cleanup scripts
- Fix overzealous app reinitialisation
- Disable config-global.php by default
- Disabled sequence table generation
$ composer require --dev reach-digital/magento2-test-framework
See https://github.com/ho-nl/magento2-ReachDigital_TestFramework
#MM23NL
1m 10s
Let’s get this number down
Before: 1m 20s
#MM23NL
#MM23NL
MODIFYING
INSTALLER
ARGUMENTS
#MM23NL
YIREO INTEGRATION TESTING HELPER
- Traits for usage in tests
- Command to toggle TESTS_CLEANUP
- Command for test setup validation
- InstallConfig and DisableModules classes
$ composer require --dev yireo/magento2-integration-test-helper
See https://github.com/yireo/Yireo_IntegrationTestHelper
#MM23NL
RUNNING THE MAGENTO INSTALLER
$ bin/magento setup:install –help
- Database is validated (unless --skip-db-validation is used)
- Database setup scripts are run (Setup/, db_schema.xml)
- Configuration files are created (app/etc/*.php)
- Search engine is validated
- ...
#MM23NL
FILE etc/install-config-mysql.php
return [
'db-host' => 'localhost',
'db-user' => 'root',
'db-password' => '123123q',
'db-name' => 'magento_integration_tests',
'db-prefix' => '',
'backend-frontname' => 'backend',
'search-engine' => 'opensearch',
'opensearch-host' => 'localhost',
'opensearch-port' => 9200,
'admin-user' => MagentoTestFrameworkBootstrap::ADMIN_NAME,
'admin-password' => MagentoTestFrameworkBootstrap::ADMIN_PASSWORD,
'admin-email' => MagentoTestFrameworkBootstrap::ADMIN_EMAIL,
'admin-firstname' => MagentoTestFrameworkBootstrap::ADMIN_FIRSTNAME,
'admin-lastname' => MagentoTestFrameworkBootstrap::ADMIN_LASTNAME,
'amqp-host' => 'localhost',
'amqp-port' => '5672',
'amqp-user' => 'guest',
'amqp-password' => 'guest',
'consumers-wait-for-messages' => '0',
];
#MM23NL
FILE etc/install-config-mysql.php (YIREO)
<?php
use YireoIntegrationTestHelperUtilitiesInstallConfig;
return (new InstallConfig())
->addDb('mysql', 'magento2', 'magento2', 'magento2')
->get();
#MM23NL
#MM23NL
OPTIMIZING
THE STACK
#MM23NL
OPTIMIZE TEMPORARY FOLDERS
- Mount /tmp as tmpfs
- Mount dev/tests/integration/tmp/ as tmpfs
- Possibly mount vendor/ as tmpfs
- Run MySQL in tmpfs
#MM23NL
#MM23NL
OPTIMIZING
MYSQL
#MM23NL
MY OWN docker-compose.yaml
services:
mysqltmpfs:
image: mysql:8.0
ports:
- 3306
volumes:
- ./mysqld_test.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
tmpfs:
- /tmp
- /var/lib/mysql
#MM23NL
MY OWN mysqld_test.cnf
[mysqld]
innodb_buffer_pool_size=512M
innodb_buffer_pool_instances=1
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_lock_wait_timeout=50
innodb_doublewrite=0
innodb_flush_log_at_trx_commit=0 # or 2
innodb_flush_log_at_timeout=360
innodb_flush_method=nosync
#MM23NL
#MM23NL
OPTIMIZING
PHP
#MM23NL
OPTIMIZE PHP
- Enable opcache
- Disable xdebug
- Set realpath_cache_size=4M
#MM23NL
#MM23NL
ADD
REDIS
#MM23NL
ADD REDIS TO etc/install-config-mysql.php
--session-save-redis-host=redis
--session-save-redis-db=0
--cache-backend-redis-server=redis
--cache-backend-redis-db=0
--page-cache-redis-server=redis
--page-cache-redis-db=1
#MM23NL
ADD REDIS TO etc/install-config-mysql.php (YIREO)
$installConfig->addRedis('redis')
#MM23NL
#MM23NL
OPTIMIZING
ELASTICSEARCH
#MM23NL
SEARCH ENGINE VALIDATION
Could not validate a connection to Elasticsearch. Verify
that the Elasticsearch host and port are configured
correctly.
#MM23NL
OPTION 1: USE MYSQL LEGACY SEARCH
Use https://github.com/swissup/module-search-mysql-legacy
--search-engine=mysql
#MM23NL
OPTION 2: FAKE VALIDATION
HEAD request to http://localhost:9200/ should return HTTP/1.1 200 OK
Create a simple HTML page, configure webserver to listen to port 9200
#MM23NL
OPTION 3: HACK THE CORE
Create a composer patch for MagentoElasticsearchSetup
Validator::validate() and always return true
Note: A DI plugin does not work. We don't have a working application yet.
#MM23NL
OPTION 4: FACE IT
Just use OpenSearch / ElasticSearch anyway and deal with it.
#MM23NL
ADD ELASTICSEARCH TO etc/install-config-mysql.php
--search-engine=opensearch
--opensearch-host=localhost
--opensearch-port=9200
Or:
--search-engine=elasticsearch7
--elasticsearch-host=localhost
--elasticsearch-port=9200
#MM23NL
TUNE ELASTICSEARCH
- Set discovery.type=single-node
- Set data folder to tmpfs
- When OpenSearch, disable optional plugins
- Tune Xms and Xmx
#MM23NL
0m 45s
Let’s get this number down
Before: 1m 10s
#MM23NL
#MM23NL
SKIPPING
MODULES
#MM23NL
SKIPPING MODULES
- Adding the flag –disable-modules to the installer
- Or use Yireo Integration Helper DisableModules class
- Or use composer replace
#MM23NL
YIREO COMPOSER REPLACE TOOLS
Use yireo/magento2-replace-tools to manage replacements via the CLI (including bulk
replacements and validation)
$ composer require yireo/magento2-replace-tools
$ composer replace:bulk:add yireo/magento2-replace-bundled
$ composer replace:bulk:add yireo/magento2-replace-graphql
$ composer replace:build
$ rm -rf vendor/ composer.lock
$ composer install
#MM23NL
USING –disable-modules
--disable-modules= 
Magento_InventoryInStorePickupGraphQl,Magento_InventoryInStorePickupQuo
teGraphQl,Magento_InventoryQuoteGraphQl,Magento_CatalogInventoryGraphQl
,Magento_LoginAsCustomerGraphQl,Magento_NewsletterGraphQl,Magento_Graph
QlCache,Magento_PaymentGraphQl,Magento_ReCaptchaWebapiGraphQl,Magento_R
elatedProductGraphQl,Magento_ReviewGraphQl,Magento_SalesGraphQl,Magento
_UrlRewriteGraphQl,Magento_SendFriendGraphQl,Magento_InventoryGraphQl,M
agento_CatalogCmsGraphQl,Magento_SwatchesGraphQl,Magento_TaxGraphQl,Mag
ento_ThemeGraphQl,Magento_CatalogUrlRewriteGraphQl,Magento_PaypalGraphQ
l,Magento_VaultGraphQl,Magento_WeeeGraphQl,Magento_WishlistGraphQl
#MM23NL
USING –disable-modules (YIREO)
$disableModules = (new DisableModules(__DIR__.'/../../../../'))
->disableAll()
->enableMagento()
->disableMagentoInventory()
->disableGraphQl()
->enableByName('Yireo_GoogleTagManager2');
return (new InstallConfig())
->setDisableModules($disableModules)
->get();
#MM23NL
MY OWN etc/install-config-mysql.php
use YireoIntegrationTestHelperUtilities{DisableModules, InstallConfig};
$disableModules = (new DisableModules(__DIR__.'/../../../../'))
->disableAll()
->enableMagento()
->disableMagentoInventory()
->disableGraphQl()
->enableByMagentoModuleEnv();
return (new InstallConfig())
->setDisableModules($disableModules)
->addDb('mysqltmpfs', 'magento2', 'magento2', 'magento2')
->addRedis('redis')
->addElasticSearch('opensearch', 'elasticsearch')
->get();
#MM23NL
0m 38s
Before: 0m 45s
#MM23NL
0m 38s
Let’s get this number down?
#MM23NL
SAVE THE DUTCH!
FASTER TESTS!
#MM23NL
Yireo upcoming
video courses:
- Magento 2 Testing
- Hyvä Checkout Development
expected end of 2023 / early 2024
#MM23NL
#MM23NL
Thanks
#MM23NL

More Related Content

Similar to Faster Magento Integration Tests

JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleGeoffrey De Smet
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101Angus Li
 
Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Valeriy Kravchuk
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patienceJacek Gebal
 
GTLAB Overview
GTLAB OverviewGTLAB Overview
GTLAB Overviewmarpierc
 
Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Valerii Kravchuk
 
Buildout - Alles im Griff
Buildout - Alles im GriffBuildout - Alles im Griff
Buildout - Alles im Grifffrisi
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in DjangoKevin Harvey
 
Introduction to Mangento
Introduction to Mangento Introduction to Mangento
Introduction to Mangento Ravi Mehrotra
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 DevelopmentDuke Dao
 
Zero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleZero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleStein Inge Morisbak
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)Soshi Nemoto
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the CloudWesley Beary
 
Sap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit SetupSap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit Setupwlacaze
 
Continously delivering
Continously deliveringContinously delivering
Continously deliveringJames Cowie
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Wim Godden
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youJacek Gebal
 
MySQL Scaling Presentation
MySQL Scaling PresentationMySQL Scaling Presentation
MySQL Scaling PresentationTommy Falgout
 

Similar to Faster Magento Integration Tests (20)

JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
Magento Performance Optimization 101
Magento Performance Optimization 101Magento Performance Optimization 101
Magento Performance Optimization 101
 
Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patience
 
GTLAB Overview
GTLAB OverviewGTLAB Overview
GTLAB Overview
 
Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)Gdb basics for my sql db as (percona live europe 2019)
Gdb basics for my sql db as (percona live europe 2019)
 
Buildout - Alles im Griff
Buildout - Alles im GriffBuildout - Alles im Griff
Buildout - Alles im Griff
 
Azure from scratch part 4
Azure from scratch part 4Azure from scratch part 4
Azure from scratch part 4
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
 
Mangento
MangentoMangento
Mangento
 
Introduction to Mangento
Introduction to Mangento Introduction to Mangento
Introduction to Mangento
 
Magento 2 Development
Magento 2 DevelopmentMagento 2 Development
Magento 2 Development
 
Zero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleZero Downtime Deployment with Ansible
Zero Downtime Deployment with Ansible
 
DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)DevOps(3) : Ansible - (MOSG)
DevOps(3) : Ansible - (MOSG)
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Sap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit SetupSap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit Setup
 
Continously delivering
Continously deliveringContinously delivering
Continously delivering
 
Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012Caching and tuning fun for high scalability @ FOSDEM 2012
Caching and tuning fun for high scalability @ FOSDEM 2012
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love you
 
MySQL Scaling Presentation
MySQL Scaling PresentationMySQL Scaling Presentation
MySQL Scaling Presentation
 

More from Yireo

Mage-OS Nederland
Mage-OS NederlandMage-OS Nederland
Mage-OS NederlandYireo
 
Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Yireo
 
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopMagento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopYireo
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Yireo
 
Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Yireo
 
Magento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningMagento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningYireo
 
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishMagento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishYireo
 
Magento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyMagento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyYireo
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenYireo
 
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Yireo
 
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationMagento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationYireo
 
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaMagento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaYireo
 
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 ShopsMagento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 ShopsYireo
 
Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Yireo
 
Magento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryMagento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryYireo
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksYireo
 
Magento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteMagento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteYireo
 
Magento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaMagento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaYireo
 
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningMagento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningYireo
 
Magento 2 Seminar - Welkom
Magento 2 Seminar - WelkomMagento 2 Seminar - Welkom
Magento 2 Seminar - WelkomYireo
 

More from Yireo (20)

Mage-OS Nederland
Mage-OS NederlandMage-OS Nederland
Mage-OS Nederland
 
Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Modernizing Vue Storefront 1
Modernizing Vue Storefront 1
 
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopMagento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
 
Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2
 
Magento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningMagento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learning
 
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishMagento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
 
Magento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyMagento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App Economy
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
 
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
 
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationMagento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
 
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaMagento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
 
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 ShopsMagento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
 
Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2
 
Magento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryMagento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 Summary
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
 
Magento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteMagento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - Keynote
 
Magento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaMagento 2 Seminar - Community agenda
Magento 2 Seminar - Community agenda
 
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningMagento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
 
Magento 2 Seminar - Welkom
Magento 2 Seminar - WelkomMagento 2 Seminar - Welkom
Magento 2 Seminar - Welkom
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

Faster Magento Integration Tests