Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
de937ea
docs(webhooks): create webhooks API spec (#308)
syncush May 24, 2020
53f9290
implement GET /webhooks (#318)
syncush Jun 15, 2020
c8ea4e2
feat(webhooks): implement POST /webhooks (#319)
syncush Jun 22, 2020
65cb792
implement GET /webhooks/:webhook_id (#320)
syncush Jun 22, 2020
c057cb1
feat(webhooks): implement DELETE /webhooks/:webhook_id (#325)
syncush Jun 29, 2020
5213efb
feat(webhooks): implement PUT /webhooks/:webhook_id
syncush Jul 5, 2020
fce3568
Merge branch 'master' into webhooks
syncush Jul 25, 2020
d30f736
feat(webhooks): implement webhooks and jobs integrations
syncush Jul 25, 2020
d2eaf7d
fix(readme): fixed broken link for LICENSE.md
syncush Jul 25, 2020
1db59e5
Merge remote-tracking branch 'origin/master'
syncush Jul 27, 2020
c2f88ca
feat(webhooks): integrating the reports for webhooks
syncush Aug 8, 2020
1cc80c7
chore(dependencies): npm audit fix
syncush Aug 9, 2020
4ee1eae
feat(webhooks): reports fire webhooks by event
syncush Aug 10, 2020
63998bb
docs(webhooks): create webhooks API spec (#308)
syncush May 24, 2020
f8534a1
implement GET /webhooks (#318)
syncush Jun 15, 2020
0e831af
feat(webhooks): implement POST /webhooks (#319)
syncush Jun 22, 2020
e40f4de
implement GET /webhooks/:webhook_id (#320)
syncush Jun 22, 2020
2a3d855
feat(webhooks): implement DELETE /webhooks/:webhook_id (#325)
syncush Jun 29, 2020
0ab8d47
feat(webhooks): implement PUT /webhooks/:webhook_id
syncush Jul 5, 2020
36a862e
feat(webhooks): implement webhooks and jobs integrations
syncush Jul 25, 2020
b19fa0b
feat(webhooks): integrating the reports for webhooks
syncush Aug 8, 2020
086ac7c
chore(dependencies): npm audit fix
syncush Aug 9, 2020
a0b4189
feat(webhooks): reports fire webhooks by event
syncush Aug 10, 2020
847f064
docs(webhooks): create webhooks API spec (#308)
syncush May 24, 2020
47c3df7
implement GET /webhooks (#318)
syncush Jun 15, 2020
ee138aa
feat(webhooks): implement POST /webhooks (#319)
syncush Jun 22, 2020
a2f765a
implement GET /webhooks/:webhook_id (#320)
syncush Jun 22, 2020
a26ed09
feat(webhooks): implement DELETE /webhooks/:webhook_id (#325)
syncush Jun 29, 2020
692aee6
feat(webhooks): implement PUT /webhooks/:webhook_id
syncush Jul 5, 2020
08ddd77
Merge remote-tracking branch 'syncush/webhooks-jobs-integration' into…
syncush Aug 17, 2020
b454835
feat(webhooks): added support for api_failure
syncush Aug 19, 2020
0b901ce
feat(jobs): forbid user from assigning global webhook to a job
syncush Aug 20, 2020
19099f8
feat(webhooks): benchmarks
syncush Aug 21, 2020
d171440
tests(jobs): checking global webhook assignment for a job is failing
syncush Aug 21, 2020
4f8c223
Merge branch 'webhooks' into webhooks-jobs-integration
syncush Aug 21, 2020
836b4fc
feat(webhooks): resolved PR comments
syncush Aug 22, 2020
d93b278
test(webhooks): adding unit tests
syncush Aug 25, 2020
56374b7
test(webhooks): fix and add unit tests for notifier
syncush Aug 27, 2020
e3470fc
refactor!(server): drop Cassandra support
syncush Aug 28, 2020
6e9a20d
refactor!(server): drop Cassandra support
syncush Aug 29, 2020
63d24a4
Merge remote-tracking branch 'origin/master'
syncush Sep 4, 2020
ebdd46a
refactor!(server): drop Cassandra support
syncush Sep 4, 2020
c29c8aa
Merge branch 'master' into drop-cassandra-support
syncush Sep 13, 2020
8ee405e
Merge branch 'drop-cassandra-support'
syncush Sep 13, 2020
510acd1
Merge branch 'master' into drop-cassandra-support
syncush Sep 13, 2020
7b84737
Merge branch 'drop-cassandra-support'
syncush Sep 13, 2020
5a635fc
fix(tests): resolved comments
syncush Sep 13, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ If applicable, add screenshots to help explain your problem.
**Version:**
- Predator: [e.g. 1.0.8]
- Predator-runner [e.g. 1.0.5]
- Database [e.g. cassandra]
- Database [e.g. sqlite]

**Additional context**
Add any other context about the problem here.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ It has a simple, one-click installation, built with support for Kubernetes, DC/O
|-------------------------------- |:------------------:|:---------|
| Distributed Load | :sparkle: |Predator supports an unlimited number of load generators that produce multiple load runners concurrently.
| Rich UI | :sparkle: |Predator offers a rich UI where you can write tests, run them and compare results.
| Reports && Tests Persistence | :sparkle: |Predator provides out-of-the box functionality for persisting data in Cassandra, Postgres, MySQL, MSSQL and SQLITE.
| Reports && Tests Persistence | :sparkle: |Predator provides out-of-the box functionality for persisting data in Postgres, MySQL, MSSQL and SQLITE.
| Real time reports | :sparkle: |Predator aggregates all concurrent runs into a single beautiful report in real time (latency, rps, status codes and more).
| CSV Datasets | :sparkle: |Predator support uploading files like csv to provide dataset for test inputs
| Scheduled runs | :sparkle: |Predator can run recurring tests using cron expressions.
Expand Down
4 changes: 1 addition & 3 deletions docs/devguide/docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Predator is a performance platform that can be configured to automatically load

- **One click installation**: Predator can be installed with just one click in Kubernetes and DC/OS, or on any other machine running Docker.

- **Supports 5 Different databases**: Predator provides out-of-the box functionality for persisting data in Cassandra, Postgres, MySQL, MSSQL and SQLITE.
- **Supports 5 Different databases**: Predator provides out-of-the box functionality for persisting data in Postgres, MySQL, MSSQL and SQLITE.

- **Scheduled jobs**: Predator can run recurring tests using cron expressions.

Expand All @@ -37,5 +37,3 @@ load engine to fire the requests. The schema for creating tests via the Predator

## Feature Comparison
![Screenshot](images/features.png)


12 changes: 2 additions & 10 deletions docs/devguide/docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,14 @@ Below are variables Predator can be configured with.
## Database
| Environment Variable | Description | Configurable from UI/API | Default value |
|---------------------- |--------------------------------------------------------------------------------- |-------------------------- |--------------- |
| DATABASE_TYPE | Database to integrate Predator with [Cassandra, Postgres, MySQL, MSSQL, SQLITE] | x | SQLITE |
| DATABASE_TYPE | Database to integrate Predator with [Postgres, MySQL, MSSQL, SQLITE] | x | SQLITE |
| DATABASE_NAME | Database/Keyspace name | x | |
| DATABASE_ADDRESS | Database address | x | |
| DATABASE_USERNAME | Database username | x | |
| DATABASE_PASSWORD | Database password | x | |

Additional parameters for the following chosen databases:

#### Cassandra
| Environment Variable | Configurable from UI/API | Default value |
|------------------------------ |-------------------------- |---------------- |
| CASSANDRA_REPLICATION_FACTOR | x | 1 |
| CASSANDRA_CONSISTENCY | x | localQuorum |
| CASSANDRA_KEY_SPACE_STRATEGY | x | SimpleStrategy |
| CASSANDRA_LOCAL_DATA_CENTER | x | |

#### SQLITE
| Environment Variable | Description | Configurable from UI/API | Default value |
|---------------------- |------------------ |-------------------------- |--------------- |
Expand Down Expand Up @@ -109,4 +101,4 @@ Additional parameters for the following chosen databases:
| SMTP_PASSWORD | smtp_server.password | SMTP password | ✓ | |
| SMTP_TIMEOUT | smtp_server.timeout | How many milliseconds to wait for the connection to establish to SMTP server | ✓ | 200 |
| SMTP_SECURE | smtp_server.secure | if true the connection will use TLS when connecting to server. [Nodemailer SMTP options](https://nodemailer.com/smtp/) | ✓ | false |
| SMTP_REJECT_UNAUTH_CERTS | smtp_server.rejectUnauthCerts | should fail or succeed on unauthorized certificate | ✓ | false |
| SMTP_REJECT_UNAUTH_CERTS | smtp_server.rejectUnauthCerts | should fail or succeed on unauthorized certificate | ✓ | false |
48 changes: 24 additions & 24 deletions docs/devguide/docs/index.html.bk
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,28 @@
<body>

<!-- Google Analytics -->
<script>
window.ga = window.ga || function() {
(ga.q = ga.q || []).push(arguments)
}
ga.l = +new Date
/* Setup integration and send page view */
ga("create", "UA-40865650-2", "predator-ng.com")
ga("set", "anonymizeIp", true)
ga("send", "pageview")
/* Register handler to log search on blur */
document.addEventListener("DOMContentLoaded", () => {
if (document.forms.search) {
var query = document.forms.search.query
query.addEventListener("blur", function() {
if (this.value) {
var path = document.location.pathname;
ga("send", "pageview", path + "?q=" + this.value)
}
})
}
})
</script>
<script>
window.ga = window.ga || function() {
(ga.q = ga.q || []).push(arguments)
}
ga.l = +new Date
/* Setup integration and send page view */
ga("create", "UA-40865650-2", "predator-ng.com")
ga("set", "anonymizeIp", true)
ga("send", "pageview")
/* Register handler to log search on blur */
document.addEventListener("DOMContentLoaded", () => {
if (document.forms.search) {
var query = document.forms.search.query
query.addEventListener("blur", function() {
if (this.value) {
var path = document.location.pathname;
ga("send", "pageview", path + "?q=" + this.value)
}
})
}
})
</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<!-- /Google Analytics -->

Expand Down Expand Up @@ -162,7 +162,7 @@
</div>
<div class="card-box mbr-fonts-style">
<h4 class="card-title py-3 display-7">Supports 5 storage backends</h4>
<p class="mbr-text mbr-fonts-style display-7">Predator provides out-of-the box functionality for persisting data in Cassandra, Postgres, MySQL, MSSQL and SQLITE.</p>
<p class="mbr-text mbr-fonts-style display-7">Predator provides out-of-the box functionality for persisting data in Postgres, MySQL, MSSQL and SQLITE.</p>
</div>
</div>
</div>
Expand Down Expand Up @@ -273,4 +273,4 @@


</body>
</html>
</html>
4 changes: 2 additions & 2 deletions docs/devguide/docs/project.mobirise
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@
}
},
"_name": "features5",
"_customHTML": "<section class=\"features5\" group=\"Features\" data-bg-video=\"{{bg.type == 'video' && bg.value.url}}\" mbr-class=\"{'mbr-parallax-background': bg.parallax}\">\n \n <mbr-parameters>\n <!-- Block parameters controls (Blue \"Gear\" panel) -->\n <input type=\"range\" inline title=\"Top\" name=\"paddingTop\" min=\"0\" max=\"9\" step=\"1\" value=\"1\">\n <input type=\"range\" inline title=\"Bottom\" name=\"paddingBottom\" min=\"0\" max=\"9\" step=\"1\" value=\"0\">\n \n <input type=\"checkbox\" title=\"Show Title\" name=\"showTitle\" checked>\n <input type=\"checkbox\" title=\"Show Text\" name=\"showText\" checked>\n <select title=\"Cards\" name=\"cardsAmount\">\n <option value=\"1\">1</option>\n <option value=\"2\">2</option>\n <option value=\"3\">3</option>\n <option value=\"4\" selected>4</option>\n </select>\n\n <fieldset type=\"background\" name=\"bg\" parallax>\n <input type=\"image\" title=\"Background Image\" value=\"../_images/background5.jpg\" parallax>\n <input type=\"color\" title=\"Background Color\" value=\"#ffffff\" selected>\n <input type=\"video\" title=\"Background Video\" value=\"https://www.youtube.com/watch?v=36YgDDJ7XSc\">\n </fieldset>\n <input type=\"checkbox\" title=\"Overlay\" name=\"overlay\" checked condition=\"bg.type !== 'color'\">\n <input type=\"color\" title=\"Overlay Color\" name=\"overlayColor\" value=\"#ffffff\" condition=\"overlay && bg.type !== 'color'\">\n <input type=\"range\" inline title=\"Opacity\" name=\"overlayOpacity\" min=\"0\" max=\"1\" step=\"0.1\" value=\"0.7\" condition=\"overlay && bg.type !== 'color'\">\n <!-- End block parameters -->\n </mbr-parameters>\n\n <div class=\"mbr-overlay\" mbr-if=\"overlay && bg.type!== 'color'\" mbr-style=\"{'opacity': overlayOpacity, 'background-color': overlayColor}\">\n </div>\n <div class=\"container\">\n <div class=\"media-container-row\">\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-cloud\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n Built for the cloud</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator is built to take advantage of Kubernetes and DC/OS. It’s integrated with those platforms and is able to manage the load generator lifecycles by itself.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 1\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-globe\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n Distributed load</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator supports an unlimited number of load generators that produce multiple load runners concurrently. Predator will aggregate the result of those runners in real-time into a beautiful report.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 2\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-touch\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n One click installation</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator can be installed with just one click in Kubernetes and DC/OS, or on any other machine running Docker.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 3\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mobi-mbri-database mobi-mbri\"></span>\n </div>\n <div class=\"card-box mbr-fonts-style\">\n <h4 class=\"card-title py-3\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">Supports 5 storage backends</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator provides out-of-the box functionality for persisting data in Cassandra, Postgres, MySQL, MSSQL and SQLITE.</p>\n </div>\n </div>\n </div>\n </div>\n</section>",
"_customHTML": "<section class=\"features5\" group=\"Features\" data-bg-video=\"{{bg.type == 'video' && bg.value.url}}\" mbr-class=\"{'mbr-parallax-background': bg.parallax}\">\n \n <mbr-parameters>\n <!-- Block parameters controls (Blue \"Gear\" panel) -->\n <input type=\"range\" inline title=\"Top\" name=\"paddingTop\" min=\"0\" max=\"9\" step=\"1\" value=\"1\">\n <input type=\"range\" inline title=\"Bottom\" name=\"paddingBottom\" min=\"0\" max=\"9\" step=\"1\" value=\"0\">\n \n <input type=\"checkbox\" title=\"Show Title\" name=\"showTitle\" checked>\n <input type=\"checkbox\" title=\"Show Text\" name=\"showText\" checked>\n <select title=\"Cards\" name=\"cardsAmount\">\n <option value=\"1\">1</option>\n <option value=\"2\">2</option>\n <option value=\"3\">3</option>\n <option value=\"4\" selected>4</option>\n </select>\n\n <fieldset type=\"background\" name=\"bg\" parallax>\n <input type=\"image\" title=\"Background Image\" value=\"../_images/background5.jpg\" parallax>\n <input type=\"color\" title=\"Background Color\" value=\"#ffffff\" selected>\n <input type=\"video\" title=\"Background Video\" value=\"https://www.youtube.com/watch?v=36YgDDJ7XSc\">\n </fieldset>\n <input type=\"checkbox\" title=\"Overlay\" name=\"overlay\" checked condition=\"bg.type !== 'color'\">\n <input type=\"color\" title=\"Overlay Color\" name=\"overlayColor\" value=\"#ffffff\" condition=\"overlay && bg.type !== 'color'\">\n <input type=\"range\" inline title=\"Opacity\" name=\"overlayOpacity\" min=\"0\" max=\"1\" step=\"0.1\" value=\"0.7\" condition=\"overlay && bg.type !== 'color'\">\n <!-- End block parameters -->\n </mbr-parameters>\n\n <div class=\"mbr-overlay\" mbr-if=\"overlay && bg.type!== 'color'\" mbr-style=\"{'opacity': overlayOpacity, 'background-color': overlayColor}\">\n </div>\n <div class=\"container\">\n <div class=\"media-container-row\">\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-cloud\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n Built for the cloud</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator is built to take advantage of Kubernetes and DC/OS. It’s integrated with those platforms and is able to manage the load generator lifecycles by itself.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 1\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-globe\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n Distributed load</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator supports an unlimited number of load generators that produce multiple load runners concurrently. Predator will aggregate the result of those runners in real-time into a beautiful report.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 2\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mbri-touch\"></span>\n </div>\n <div class=\"card-box\">\n <h4 class=\"card-title py-3 mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">\n One click installation</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator can be installed with just one click in Kubernetes and DC/OS, or on any other machine running Docker.</p>\n </div>\n </div>\n\n <div class=\"card p-3 col-12 col-md-6\" mbr-if=\"cardsAmount > 3\" mbr-class=\"{'col-lg-3': cardsAmount == '4',\n 'col-lg-4': cardsAmount == '3'}\">\n <div class=\"card-img pb-3\">\n <span mbr-icon class=\"mbr-iconfont mobi-mbri-database mobi-mbri\"></span>\n </div>\n <div class=\"card-box mbr-fonts-style\">\n <h4 class=\"card-title py-3\" mbr-theme-style=\"display-7\" mbr-if=\"showTitle\" data-app-selector=\".card-title, .card-img\">Supports 5 storage backends</h4>\n <p class=\"mbr-text mbr-fonts-style\" mbr-theme-style=\"display-7\" mbr-if=\"showText\">Predator provides out-of-the box functionality for persisting data in Postgres, MySQL, MSSQL and SQLITE.</p>\n </div>\n </div>\n </div>\n </div>\n</section>",
"_cid": "rqyVDU3s7P",
"_anchor": "features5-7",
"_protectedParams": [],
Expand Down Expand Up @@ -1309,4 +1309,4 @@
]
}
}
}
}
Loading