Skip to content

Commit 049a42f

Browse files
authored
Merge pull request #333 from oslabs-beta/master
Merge v.1.13.0 into Swell's OS Labs Main repo
2 parents 8f7b974 + 37ee5ab commit 049a42f

File tree

156 files changed

+4347
-7683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

156 files changed

+4347
-7683
lines changed

CONTRIBUTING.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ People _love_ thorough bug reports. I'm not even kidding.
5252
## Test early, test often!
5353

5454
- Run npm run test or npm run test-mocha for E2E testing with [Playwright](https://playwright.dev/docs/api/class-electron) and Mocha
55-
- Run npm run test-jest for unit and integration tests with Jest
55+
- Run npm run test-jest for unit and integration tests with Jest
5656
- Check code coverage!
5757
- In the 'test/coverage' directory, check jest-coverage and mocha-coverage directories
5858
- View each index.html in your browser for coverage reports generated with Istanbul that will show covered and uncovered lines in accessed modules
@@ -61,8 +61,10 @@ People _love_ thorough bug reports. I'm not even kidding.
6161
- Contribute to the testing suite
6262
- Add tests for uncovered lines, modules, functions. Leave no stone unturned!
6363

64-
## License
64+
## Considering iterating Swell in the future?
6565

66-
By contributing, you agree that your contributions will be licensed under its MIT License.
66+
Feel free to check out the `DEV-README.md` in the `docs` folder.
6767

68+
## License
6869

70+
By contributing, you agree that your contributions will be licensed under its MIT License.

README.md

Lines changed: 47 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
# Swell
44

55
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/open-source-labs/Swell/blob/master/LICENSE.txt)
6-
[![Build Status](https://travis-ci.org/open-source-labs/Swell.svg?branch=master)](https://travis-ci.org/open-source-labs/Swell)
76
![GitHub package.json version](https://img.shields.io/github/package-json/v/open-source-labs/Swell?color=blue)
87
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/getswell/getswell/issues)
98
[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Swell-%20For%20all%20your%20streaming%20API%20testing%20needs&url=https://www.getswell.io&hashtags=SSE,WebSocket,HTTP,API,developers)
109

11-
Swell is an API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, gRPC, WebRTC, and OpenAPI.
10+
Swell is an API development tool that enables developers to test HTTP2, GraphQL endpoints, as well as ones served over streaming technologies including Server-Sent Events (SSE), WebSockets, gRPC, WebRTC, and OpenAPI.
1211

1312
## Getting Started
1413

@@ -20,32 +19,52 @@ Swell is available for OSX, Linux, and Windows.
2019

2120
Swell is a one-stop shop for sending and monitoring your API requests:
2221

23-
- Send and monitor streams over HTTP2 / HTTP1 (including SSEs) and WebSockets
22+
- Send and monitor streams over HTTP/2 (including SSEs) and WebSockets
2423
- Create GraphQL queries, introspections, mutations, and subscriptions
25-
- Make API requests based on a range of provided options that conform to the specifications defined in OpenAPI documents.
26-
- Verify STUN and TURN server connectivity for WebRTC applications by generating an SDP (Session Description Protocol)
27-
- Diagnose and monitor your gRPC streaming connections
28-
- Make customizable requests to TypeScript Remote Procedure Call (tRPC) endpoints
29-
- View response timing information and history in an interactive chart for each request
24+
- Stress testing HTTP/2 and GraphQL endpoints
25+
- Create your own HTTP/2 mock server
3026
- Store workspaces of multiple requests for later use
31-
- Import, export, and share workspaces with other developers
27+
- Import and export workspaces locally
3228
- Compose test suites in JavaScript with Chai-style TDD/BDD assertion syntax
33-
- Execute a collection of requests in succession and receive clear visual feedback of each test's status
34-
- Schedule requests to be sent on a regular time interval to support endpoint functional validation tests
3529

36-
## Supported Technologies
30+
## Core features
3731

3832
- _HTTP2_: Swell supports full HTTP2 multiplexing of requests and responses. HTTP requests to the same host will be sent over the same connection. Swell will attempt to initiate an HTTP2 connection for all HTTPS requests by default, with the ability to revert to HTTP1.1 for legacy servers. Multiple concurrent streams are allowed for each connection.
3933
<img src="./ReadMeGifs/Gifs/HttpTesting.gif" style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
4034

35+
- _GraphQL_: Swell includes full support for all three root types of GraphQL - queries, mutations, and subscriptions – as well as Introspection. Variables are also supported, making creating queries easy.
36+
<img src="./ReadMeGifs/Gifs/GraphQL.gif" style="display: block; margin: 10px auto 30px;" />
37+
4138
- _Server-Sent Events (SSE)_: Initiated by a simple toggle box, Swell displays SSE events one by one as they come in. Similar to HTTP2 streams, multiple open connection streams are allowed for SSE.
42-
<img src="./ReadMeGifs/Gifs/SSE.gif" style="display: block; margin: 10px auto 30px;" />
39+
<img src="./ReadMeGifs/Gifs/ServerSideEvents.gif" style="display: block; margin: 10px auto 30px;" />
4340

4441
- _WebSockets (WS)_: Swell enables connecting directly to WebSocket servers with an HTTP handshake, with developers able to send messages to the connected WS server directly. All outgoing and incoming messages are displayed in real time.
4542
<img src="./ReadMeGifs/Gifs/Websockets.gif" style="display: block; margin: 10px auto 30px;" />
4643

47-
- _GraphQL_: Swell includes full support for all three root types of GraphQL - queries, mutations, and subscriptions – as well as Introspection. Variables are also supported, making creating queries easy.
48-
<img src="./ReadMeGifs/Gifs/GraphQL.gif" style="display: block; margin: 10px auto 30px;" />
44+
## Additional features
45+
46+
- _Stress testing for HTTP/2 and GraphQL_: Test your server backend with Swell's stress testing feature to ensure your server can manage expected and unexpected loads accordingly
47+
<img src="./ReadMeGifs/Gifs/HttpStressTest.gif"
48+
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
49+
<img src="./ReadMeGifs/Gifs/GraphQLTest.gif"
50+
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
51+
52+
- _Send Requests Directly to an Endpoint_: You are able to immediately send a request to an endpoint OR stage a request in your workspace for multi-level testing.
53+
54+
- _Scripting in Swell_: If you favor test-driven development, Swell allows you to write assertion tests to aid defining and testing backend API services.
55+
<img src="./ReadMeGifs/Gifs/Assertion-Testing.gif"
56+
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
57+
58+
- _Workspaces_: Swell allows you to save workspaces for easier testing of multiple requests.
59+
60+
- _Preview_: You can now view a rendered preview of certain API responses (HTML)
61+
62+
- _Collection Runner_: You can also stage requests in the workspace and automate the process of sending off each one. No need to manually press send on each one; instead each request will fire off in the order of staging.
63+
64+
## Experimental Features
65+
66+
- _Mock Server_: Swell allows you to create your own HTTP/2 mock server to facilitate front-end development without depending on a fully built backend server.
67+
<img src="./ReadMeGifs/Gifs/MockServer.gif" style="display: block; margin: 10px auto 30px;" />
4968

5069
- _gRPC_: Swell includes full support for all four streaming types of gRPC - unary, client stream, server stream, bidirectional stream.
5170
<img src="./ReadMeGifs/Gifs/gRPC-responses.gif" style="display: block; margin: 10px auto 30px;" />
@@ -64,13 +83,13 @@ Swell is a one-stop shop for sending and monitoring your API requests:
6483

6584
See [tRPC docs](https://trpc.io/docs/) for more information on sending tRPC requests or setting up a tRPC server.
6685

67-
- _OpenAPI_: Swell supports the enumeration and execution of REST and RPC API requests as defined in a user-provided OpenAPI document.
68-
<img src="./ReadMeGifs/Gifs/openapi.gif" style="display: block; margin: 10px auto 30px;" />
86+
- _Webhooks_: Swell includes user-defined HTTP callback connection testing designed to test other server's connection to the web and ability to send data. The test insures that when an event occurs, the source site makes an HTTP request to the URL configured for the webhook.
87+
<img src="./ReadMeGifs/Gifs/Webhook.gif" style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" />
6988

7089
- _WebRTC_: Swell makes it easy to test STUN and TURN ICE server connectivity for WebRTC applications.
7190
<img src="./ReadMeGifs/Gifs/webrtc.gif" style="display: block; margin: 10px auto 30px; " />
7291

73-
Once you enter ICE server details as an array of JavaScript objects (example code block below). An RTCPeerConnection will be instantiated, as an SDP is generated.
92+
Currently, it is a read-only feature. When the write feature for ICE server is enabled, ICE server details can be entered as an array of JavaScript objects (example code block below). An RTCPeerConnection will be instantiated, as an SDP is generated.
7493

7594
```js
7695
[
@@ -86,39 +105,8 @@ Swell is a one-stop shop for sending and monitoring your API requests:
86105
];
87106
```
88107

89-
## Additional Features
90-
91-
- _Send Requests Directly to an Endpoint_: You are able to immediately send a request to an endpoint OR stage a request in your workspace for multi-level testing.
92-
<img src="./ReadMeGifs/Gifs/DirectSendRequest.gif"
93-
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
94-
- _Scripting in Swell_: If your favors test-driven development, Swell allows you to write assertion tests to aid defining and testing backend API services.
95-
<img src="./ReadMeGifs/Gifs/SimpleResponseTest.gif"
96-
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
97-
- _Workspaces_: Swell allows you to save workspaces for easier testing of multiple requests.
98-
- _Preview_: You can now view a rendered preview of certain API responses (HTML)
99-
<img src="./ReadMeGifs/Gifs/AdditionalFeatures.gif"
100-
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
101-
- _Collection Runner_: You can also stage requests in the workspace and automate the process of sending off each one. No need to manually press send on each one; instead each request will fire off in the order of staging.
102-
<img src="./ReadMeGifs/Gifs/CollectionTest.gif"
103-
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
104-
- _Schedule Tests_: You can also automate sending requests cyclically.
105-
<img src="./ReadMeGifs/Gifs/ScheduleTest.gif"
106-
style="display: block; margin: 10px auto 30px; border: 1px solid black;" />
107-
108-
## WIP Features
109-
110-
**Clone this repo and check out dev mode for the latest and greatest!**
111-
112-
- _Webhooks_: Swell includes user-defined HTTP callback connection testing designed to test other server's connection to the web and ability to send data. The test insures that when an event occurs, the source site makes an HTTP request to the URL configured for the webhook.
113-
<img src="./ReadMeGifs/Gifs/Webhook.gif" style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" />
114-
115-
- _UI Updates_: Built with Material UI, a smoother, more intuitive interface for enhanced user experience.
116-
<img src="./ReadMeGifs/Gifs/NewUI.png" style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" />
117-
Added in version 1.12.0: resizable panels between composer, response, and workspace and visual feedbackfor when users is selecting different communication protocols.
118-
<img src="./ReadMeGifs/Gifs/tRPC-UI.gif" style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" />
119-
120-
- _Github Integration + Import/Export Workspaces_: Swell allows you to import and export workspaces, making it easy to share collections with your team. You can even register with Github to save your workspaces directly into your repository!
121-
<img src="./ReadMeGifs/Gifs/GithubIntegration.gif" style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" />
108+
- _OpenAPI_: Swell supports the enumeration and execution of REST and RPC API requests as defined in a user-provided OpenAPI document.
109+
<img src="./ReadMeGifs/Gifs/openapi.gif" style="display: block; margin: 10px auto 30px;" />
122110

123111
## Built With
124112

@@ -139,8 +127,16 @@ Swell is a one-stop shop for sending and monitoring your API requests:
139127
- Mocha
140128
- Playwright
141129

130+
## Considering iterating Swell in the future?
131+
132+
Feel free to check out the `DEV-README.md` in the `docs` folder.
133+
142134
## Authors
143135

136+
- **Chris Suzukida** - [csuzukida](https://github.com/csuzukida)
137+
- **Fred Kim** - [Fredkim21](https://https://github.com/Fredkim21)
138+
- **Jason Huang** - [jjhuang3](https://https://github.com/jjhuang3)
139+
- **Nattie Chan** - [nattiechan](https://https://github.com/nattiechan)
144140
- **Jack Sonoda** - [jackksono](https://github.com/jackksono)
145141
- **Jaden Nguyen** - [jaden-nguyen](https://github.com/jaden-nguyen)
146142
- **Taner Malmedal** - [tannermalmedal](https://github.com/tannermalmedal)

ReadMeGifs/Gifs/Assertion-Testing.gif

1.96 MB
Loading

ReadMeGifs/Gifs/GithubIntegration.gif

-4.05 MB
Binary file not shown.

ReadMeGifs/Gifs/GithubIntegration.gifZone.Identifier

Lines changed: 0 additions & 3 deletions
This file was deleted.

ReadMeGifs/Gifs/GraphQL.gif

-1.61 MB
Loading

ReadMeGifs/Gifs/GraphQLTest.gif

1.74 MB
Loading

ReadMeGifs/Gifs/Http2Streams.gif

-1.38 MB
Binary file not shown.

ReadMeGifs/Gifs/HttpStressTest.gif

5.07 MB
Loading

ReadMeGifs/Gifs/HttpTesting.gif

-1.7 MB
Loading

ReadMeGifs/Gifs/MockServer.gif

4.34 MB
Loading

ReadMeGifs/Gifs/NewUI.png

-767 KB
Binary file not shown.

ReadMeGifs/Gifs/RestRequests.gif

-1.85 MB
Binary file not shown.

ReadMeGifs/Gifs/SSE.gif

-992 KB
Binary file not shown.

ReadMeGifs/Gifs/SavedWorkspaces.gif

-1.13 MB
Binary file not shown.

ReadMeGifs/Gifs/ScheduleTest.gif

-5.65 MB
Binary file not shown.

ReadMeGifs/Gifs/ServerSideEvents.gif

416 KB
Loading

ReadMeGifs/Gifs/Websockets.gif

976 KB
Loading

ReadMeGifs/Gifs/gRPC.gif

810 KB
Loading

ReadMeGifs/Gifs/webrtc.gif

-2.95 MB
Loading

0 commit comments

Comments
 (0)