Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | It is important to correctly install your plugin, without throwing errors or notices
Installer ran successfully
Server metrics [RAM: ▼0.52MB] [CPU: ▼311.97ms] Passed 4 tests
This is a short check of server-side resources used by A/B Testing for WordPress
This plugin does not affect your website's performance
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 3.92 ▲0.41 | 55.60 ▲8.54 |
Dashboard /wp-admin | 3.75 ▲0.34 | 35.36 ▲0.93 |
Posts /wp-admin/edit.php | 4.04 ▲0.40 | 37.38 ▲0.23 |
Add New Post /wp-admin/post-new.php | 3.74 ▼3.23 | 32.02 ▼1,251.14 |
Media Library /wp-admin/upload.php | 3.70 ▲0.40 | 26.50 ▲2.09 |
How to Use /wp-admin/admin.php?page=ab-testing-for-wp_howto | 3.69 | 25.74 |
Add New A/B Test /wp-admin/post-new.php?post_type=abt4wp-test | 3.74 | 31.39 |
All A/B Tests /wp-admin/admin.php?page=ab-testing-for-wp | 3.67 | 25.03 |
Advanced Options /wp-admin/admin.php?page=ab-testing-for-wp_advanced | 3.68 | 24.18 |
Server storage [IO: ▲2.57MB] [DB: ▲0.00MB] Passed 3 tests
How much does this plugin use your filesystem and database?
The plugin installed successfully
Filesystem: 114 new files
Database: 4 new tables, 1 new option
New tables |
---|
wp_ab_testing_for_wp_ab_test |
wp_ab_testing_for_wp_variant_condition |
wp_ab_testing_for_wp_variant |
wp_ab_testing_for_wp_log |
New WordPress options |
---|
ab-testing-for-wp-options |
Browser metrics Passed 4 tests
A/B Testing for WordPress: an overview of browser usage
There were no issues detected in relation to browser resource usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 3,939 ▲185 | 18.03 ▲2.03 | 25.06 ▲18.81 | 2.29 ▼0.10 |
Dashboard /wp-admin | 2,966 ▲105 | 6.16 ▼0.09 | 118.48 ▼16.71 | 157.30 ▼4.88 |
Posts /wp-admin/edit.php | 2,765 ▲74 | 3.25 ▲0.00 | 63.34 ▼2.38 | 146.38 ▼9.82 |
Add New Post /wp-admin/post-new.php | 1,730 ▲19 | 15.89 ▼4.77 | 425.21 ▼8.19 | 155.94 ▼0.88 |
Media Library /wp-admin/upload.php | 1,776 ▲78 | 5.55 ▲0.03 | 137.99 ▼1.95 | 185.31 ▲0.75 |
How to Use /wp-admin/admin.php?page=ab-testing-for-wp_howto | 1,327 | 3.88 | 74.55 | 114.48 |
Add New A/B Test /wp-admin/post-new.php?post_type=abt4wp-test | 6,558 | 20.23 | 607.95 | 197.51 |
All A/B Tests /wp-admin/admin.php?page=ab-testing-for-wp | 1,034 | 3.93 | 67.27 | 95.62 |
Advanced Options /wp-admin/admin.php?page=ab-testing-for-wp_advanced | 1,110 | 3.87 | 62.19 | 97.22 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.01MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
These items require your attention
- The plugin did not uninstall successfully, leaving 4 tables in the database
- wp_ab_testing_for_wp_variant
- wp_ab_testing_for_wp_variant_condition
- wp_ab_testing_for_wp_log
- wp_ab_testing_for_wp_ab_test
- Zombie WordPress options were found after uninstall: 1 option
- ab-testing-for-wp-options
Smoke tests 25% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A smoke test targeting server-side errors
These server-side errors were triggered
- > GET request to /wp-admin/post-new.php?post_type=abt4wp-test
- > User notice in wp-includes/functions.php+5768
register_rest_route was called incorrectly. The REST API route definition for ab-testing-for-wp/v1/ab-test is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
- > GET request to /wp-admin/post-new.php?post_type=abt4wp-test
- > User notice in wp-includes/functions.php+5768
register_rest_route was called incorrectly. The REST API route definition for ab-testing-for-wp/v1/track is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
- > GET request to /wp-admin/post-new.php?post_type=abt4wp-test
- > User notice in wp-includes/functions.php+5768
register_rest_route was called incorrectly. The REST API route definition for ab-testing-for-wp/v1/outbound is missing the required permission_callback argument. For REST API routes that are intended to be public, use __return_true as the permission callback. Please see Debugging in WordPress for more information. (This message was added in version 5.5.0.)
SRP 50% from 2 tests
🔹 Tests weight: 20 | SRP (Single-Responsibility Principle) - PHP files must act as libraries and never output text or perform any action when accessed directly in a browser
Please fix the following
- 10× PHP files trigger errors when accessed directly with GET requests:
- > PHP Warning
Use of undefined constant ABSPATH - assumed 'ABSPATH' (this will throw an Error in a future version of PHP) in wp-content/plugins/ab-testing-for-wp/src/php/integrations/Integration.php on line 6
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/wpforms/WPForms.php:5
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/ninja-forms/NinjaForms.php:5
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/gravityforms/GravityForms.php:5
- > PHP Warning
require_once(ABSPATHwp-admin/includes/plugin.php): failed to open stream: No such file or directory in wp-content/plugins/ab-testing-for-wp/src/php/integrations/Integration.php on line 6
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/html-forms/HTMLForms.php:5
- > PHP Fatal error
require_once(): Failed opening required 'ABSPATHwp-admin/includes/plugin.php' (include_path='.:/usr/share/php') in wp-content/plugins/ab-testing-for-wp/src/php/integrations/Integration.php on line 6
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/contact-form-7/ContactForm7.php:5
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/mc4wp/MC4WP.php:5
- > PHP Fatal error
Uncaught Error: Class 'ABTestingForWP\\Integration' not found in wp-content/plugins/ab-testing-for-wp/src/php/integrations/formidable/Formidable.php:5
- > PHP Warning
User-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no browser errors were triggered
There are user-side issues you should fix
- > GET request to /wp-admin/post-new.php?post_type=abt4wp-test
- > Console-api (warning) in wp-includes/js/dist/deprecated.min.js?ver=8778985ac0dfb16f24f8ef86d0718f43+1:1537
wp.components.IconButton is deprecated since version 5.4. Please use wp.components.Button instead.
- > GET request to /wp-admin/admin.php?page=ab-testing-for-wp
- > Intervention (severe) in unknown
/wp-admin/post-new.php?post_type=abt4wp-test - Blocked attempt to show a 'beforeunload' confirmation panel for a frame that never had a user gesture since its load. https://www.chromestatus.com/feature/5082396709879808
Optimizations
Plugin configuration Passed 29 tests
readme.txt Passed 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
6 plugin tags: split test, ab test, optimise, measure, marketing...
ab-testing-for-wp/ab-testing-for-wp.php Passed 13 tests
This is the main PHP file of "A/B Testing for WordPress" version 1.18.2, providing information about the plugin in the header fields and serving as the principal entry point to the plugin's functions
89 characters long description:
Easiest way to create split tests on your WordPress sites, right from the content editor!
Code Analysis Passed 3 tests
File types Passed 1 test
🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
There were no executable files found in this plugin16,459 lines of code in 117 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
JSON | 5 | 0 | 0 | 10,819 |
TypeScript | 42 | 477 | 28 | 2,655 |
PHP | 39 | 664 | 262 | 2,337 |
CSS | 13 | 64 | 0 | 351 |
JavaScript | 10 | 4 | 16 | 127 |
YAML | 2 | 6 | 0 | 64 |
Markdown | 1 | 36 | 0 | 56 |
SVG | 3 | 0 | 0 | 31 |
Bourne Shell | 2 | 7 | 1 | 19 |
PHP code Passed 2 tests
Analyzing cyclomatic complexity and code structure
Great job! No cyclomatic complexity issues were detected in this plugin
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.25 |
Average class complexity | 7.00 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 44.00 |
Average method complexity | 2.10 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 18.00 |
Code structure | ||
---|---|---|
Namespaces | 2 | |
Interfaces | 0 | |
Traits | 0 | |
Classes | 32 | |
▷ Abstract classes | 0 | 0.00% |
▷ Concrete classes | 32 | 100.00% |
▷ Final classes | 0 | 0.00% |
Methods | 176 | |
▷ Static methods | 15 | 8.52% |
▷ Public methods | 125 | 71.02% |
▷ Protected methods | 18 | 10.23% |
▷ Private methods | 33 | 18.75% |
Functions | 23 | |
▷ Named functions | 3 | 13.04% |
▷ Anonymous functions | 20 | 86.96% |
Constants | 0 | |
▷ Global constants | 0 | 0.00% |
▷ Class constants | 0 | 0.00% |
▷ Public constants | 0 | 0.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Often times overlooked, PNG files can occupy unnecessary space in your plugin
4 PNG files occupy 0.28MB with 0.17MB in potential savings
Potential savings
Compression of 4 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
src/assets/how-to-2.png | 69.13KB | 34.70KB | ▼ 49.81% |
src/assets/how-to-4.png | 69.07KB | 20.45KB | ▼ 70.39% |
src/assets/how-to-1.png | 102.86KB | 43.91KB | ▼ 57.31% |
src/assets/how-to-3.png | 43.81KB | 13.01KB | ▼ 70.31% |