Benchmarks
Plugin footprint 65% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | All plugins must install correctly, without throwing any errors, warnings, or notices
Installer ran successfully
Server metrics [RAM: ▲0.65MB] [CPU: ▼271.83ms] 75% from 4 tests
An overview of server-side resources used by BadgeOS
Please fix the following
- CPU: Total CPU usage must kept under 500.00ms (currently 2,248.25ms on /wp-admin/admin.php?page=badgeos_sub_add_ons)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 4.25 ▲0.73 | 85.28 ▲38.60 |
Dashboard /wp-admin | 4.33 ▲0.92 | 58.20 ▲25.64 |
Posts /wp-admin/edit.php | 4.54 ▲0.90 | 65.21 ▲29.76 |
Add New Post /wp-admin/post-new.php | 7.02 ▲0.05 | 98.16 ▼1,159.99 |
Media Library /wp-admin/upload.php | 4.29 ▲0.99 | 46.97 ▲17.28 |
Point Types /wp-admin/edit.php?post_type=point_type | 4.34 | 61.43 |
Connection Types /wp-admin/tools.php?page=connection-types | 4.19 | 45.39 |
OB Integration /wp-admin/admin.php?page=badgeos-ob-integration | 4.26 | 49.45 |
Badges /wp-admin/edit.php?post_type=badges | 4.35 | 49.43 |
Add-Ons /wp-admin/admin.php?page=badgeos_sub_add_ons | 4.38 | 2,248.25 |
Help / Support /wp-admin/admin.php?page=badgeos_sub_help_support | 4.25 | 50.66 |
Tools /wp-admin/admin.php?page=badgeos_tools | 4.28 | 48.38 |
Settings /wp-admin/admin.php?page=badgeos_settings | 4.33 | 48.87 |
Rank Types /wp-admin/edit.php?post_type=rank_types | 4.34 | 54.83 |
Log Entries /wp-admin/edit.php?post_type=badgeos-log-entry | 4.35 | 52.05 |
Server storage [IO: ▲7.68MB] [DB: ▲0.06MB] Passed 3 tests
A short overview of filesystem and database impact
No storage issues were detected
Filesystem: 660 new files
Database: 5 new tables, 9 new options
New tables |
---|
wp_badgeos_points |
wp_p2p |
wp_badgeos_achievements |
wp_p2pmeta |
wp_badgeos_ranks |
New WordPress options |
---|
widget_earned_user_points_widget |
widget_p2p |
badgeos_admin_tools |
badgeos_db_update_v_338 |
widget_earned_user_ranks_widget |
widget_earned_user_achievements_widget |
p2p_storage |
badgeos_settings |
badgeos_rec_title_updated |
Browser metrics Passed 4 tests
A check of browser resources used by BadgeOS
Minimal impact on browser resources
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 6,442 ▲2,688 | 16.87 ▲1.27 | 6.80 ▲0.51 | 2.62 ▲0.18 |
Dashboard /wp-admin | 5,506 ▲2,645 | 7.05 ▲0.87 | 129.12 ▼6.75 | 186.30 ▲31.18 |
Posts /wp-admin/edit.php | 5,301 ▲2,610 | 3.63 ▲0.39 | 72.25 ▲10.78 | 176.90 ▲33.60 |
Add New Post /wp-admin/post-new.php | 4,214 ▲2,454 | 23.75 ▲6.81 | 472.60 ▲35.43 | 209.23 ▲49.59 |
Media Library /wp-admin/upload.php | 4,341 ▲2,643 | 6.22 ▲0.73 | 137.51 ▼3.67 | 186.47 ▼2.61 |
Point Types /wp-admin/edit.php?post_type=point_type | 3,942 | 3.38 | 70.02 | 125.34 |
Connection Types /wp-admin/tools.php?page=connection-types | 3,658 | 3.23 | 61.59 | 124.19 |
OB Integration /wp-admin/admin.php?page=badgeos-ob-integration | 3,799 | 3.39 | 69.33 | 129.39 |
Badges /wp-admin/edit.php?post_type=badges | 3,985 | 3.61 | 70.37 | 123.36 |
Add-Ons /wp-admin/admin.php?page=badgeos_sub_add_ons | 4,066 | 3.26 | 66.20 | 146.69 |
Help / Support /wp-admin/admin.php?page=badgeos_sub_help_support | 5,096 | 3.28 | 63.40 | 180.37 |
Tools /wp-admin/admin.php?page=badgeos_tools | 4,146 | 4.00 | 100.55 | 179.42 |
Settings /wp-admin/admin.php?page=badgeos_settings | 4,174 | 4.34 | 76.82 | 193.71 |
Rank Types /wp-admin/edit.php?post_type=rank_types | 3,942 | 3.41 | 69.43 | 126.69 |
Log Entries /wp-admin/edit.php?post_type=badgeos-log-entry | 4,010 | 3.54 | 70.93 | 129.12 |
Uninstaller [IO: ▲0.03MB] [DB: ▲0.06MB] 50% from 4 tests
🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
You still need to fix the following
- The plugin did not uninstall successfully, leaving 5 tables in the database
- wp_p2p
- wp_p2pmeta
- wp_badgeos_ranks
- wp_badgeos_achievements
- wp_badgeos_points
- Zombie WordPress options were found after uninstall: 9 options
- widget_earned_user_points_widget
- p2p_storage
- badgeos_db_update_v_338
- widget_earned_user_achievements_widget
- badgeos_rec_title_updated
- badgeos_admin_tools
- widget_earned_user_ranks_widget
- badgeos_settings
- widget_p2p
Smoke tests 50% from 4 tests
Server-side errors 0% from 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Please fix the following server-side errors
- > GET request to /wp-admin/tools.php?page=connection-types
- > User deprecated in wp-includes/functions.php+5326
screen_icon is deprecated since version 3.8.0 with no alternative available.
- > GET request to /wp-admin/tools.php?page=connection-types
- > User deprecated in wp-includes/functions.php+5326
get_screen_icon is deprecated since version 3.8.0 with no alternative available.
SRP 50% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle: PHP files have to remain inert when accessed directly, throwing no errors and performing no actions
Almost there! Just fix the following items
- 130× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Taxonomy_Base' not found in wp-content/plugins/badgeos/includes/cmb2/includes/types/CMB2_Type_Taxonomy_Select.php:13
- > PHP Fatal error
Uncaught Error: Class 'P2P_Field_Title' not found in wp-content/plugins/badgeos/includes/p2p/p2p-admin/field-title-user.php:3
- > PHP Fatal error
Uncaught Error: Call to undefined function add_filter() in wp-content/plugins/badgeos/includes/rules-engine.php:193
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/badgeos/includes/admin-settings.php:19
- > PHP Fatal error
Uncaught Error: Class 'badgeos_utilities' not found in wp-content/plugins/badgeos/includes/email_headers/footer.php:3
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/badgeos/includes/cmb2/includes/types/CMB2_Type_Radio.php:13
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Textarea' not found in wp-content/plugins/badgeos/includes/cmb2/includes/types/CMB2_Type_Textarea_Code.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/badgeos/includes/open_badge/install-default-pages.php:22
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Type_Multi_Base' not found in wp-content/plugins/badgeos/includes/cmb2/includes/types/CMB2_Type_Select.php:13
- > PHP Fatal error
Uncaught Error: Call to undefined function add_action() in wp-content/plugins/badgeos/includes/cmb2/example-functions.php:105
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser issues were found
Optimizations
Plugin configuration 90% from 29 tests
readme.txt 88% from 16 tests
It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
Please fix the following attributes:
- Tags: Please delete some tags, you are using 19 tag instead of maximum 10
- Screenshots: Please add descriptions for these screenshots #12, #13, #14, #15 in badgeos/assets to your readme.txt
badgeos/badgeos.php 92% from 13 tests
The entry point to "BadgeOS" version 3.7.0 is a PHP file that has certain tags in its header comment area
The following require your attention:
- Description: The description should be shorter than 140 characters (currently 309 characters long)
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
Good job! No executable or dangerous file extensions detected100,793 lines of code in 437 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PO File | 123 | 15,245 | 20,171 | 35,437 |
PHP | 195 | 7,689 | 13,248 | 30,125 |
JavaScript | 48 | 3,260 | 2,035 | 14,146 |
CSS | 39 | 1,771 | 1,504 | 10,714 |
JSON | 5 | 0 | 0 | 8,737 |
Markdown | 5 | 228 | 0 | 662 |
Sass | 7 | 48 | 6 | 386 |
CoffeeScript | 1 | 127 | 6 | 306 |
LESS | 1 | 11 | 5 | 152 |
HTML | 11 | 7 | 0 | 107 |
SVG | 1 | 1 | 0 | 13 |
Ruby | 1 | 2 | 0 | 8 |
PHP code Passed 2 tests
This is a short overview of cyclomatic complexity and code structure for this plugin
This plugin has no cyclomatic complexity issues
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.43 |
Average class complexity | 15.93 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 181.00 |
Average method complexity | 3.14 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 59.00 |
Code structure | ||
---|---|---|
Namespaces | 0 | |
Interfaces | 3 | |
Traits | 0 | |
Classes | 147 | |
▷ Abstract classes | 20 | 13.61% |
▷ Concrete classes | 127 | 86.39% |
▷ Final classes | 0 | 0.00% |
Methods | 1,082 | |
▷ Static methods | 198 | 18.30% |
▷ Public methods | 853 | 78.84% |
▷ Protected methods | 176 | 16.27% |
▷ Private methods | 53 | 4.90% |
Functions | 543 | |
▷ Named functions | 543 | 100.00% |
▷ Anonymous functions | 0 | 0.00% |
Constants | 23 | |
▷ Global constants | 6 | 26.09% |
▷ Class constants | 17 | 73.91% |
▷ Public constants | 17 | 100.00% |
Plugin size 50% from 2 tests
Image compression 50% from 2 tests
It is recommended to compress PNG files in your plugin to minimize bandwidth usage
62 PNG files occupy 0.66MB with 0.30MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/CMB2-Date-Range-Field/assets/images/ui-bg_highlight-soft_75_ffe45c_1x100.png | 0.32KB | 0.18KB | ▼ 42.38% |
includes/CMB2-Date-Range-Field/assets/images/ui-icons_ffffff_256x240.png | 6.15KB | 4.17KB | ▼ 32.13% |
includes/CMB2-Date-Range-Field/assets/images/ui-icons_222222_256x240.png | 6.76KB | 4.17KB | ▼ 38.24% |
assets/screenshot-3.png | 57.82KB | 19.96KB | ▼ 65.48% |
images/arrows.png | 1.71KB | 0.91KB | ▼ 46.81% |