Code Monkey home page Code Monkey logo

wunderql's Introduction


Logo

WunderQL

Performance Testing with WunderQL

WunderQL.com

Table of Contents
  1. About The Project
  2. Features
  3. Getting Started
  4. Contributors
  5. Looking Ahead

About The Project

WunderQL is a cross-platform desktop application used for testing a GraphQL server's performance. Developed under tech accelerator OSLabs, WunderQL was created with the developer in mind.

We wanted a simple, no fuss developer tool that allows the user to measure the performance of their GraphQL server throughout the development life cycle. You can measure the response time of your GraphQL queries, simulate a production environment with load testing, and search your past queries to see if there was any degradation in performance over time.

Built With

Features

  1. To measure the response time of your GraphQL server, please select the 'Test Query' option from the nav bar. You can enter in a new query or select a previous query you ran on the top right hand drop down. This will auto fill the query select form. Clicking the Send Query button will get you the response and the average response time of your query. Test Query

  2. To perform a load test, select Load Test in the nav bar. Enter in your GraphQL Query, nickname for your query (to be saved for future reference) and then the number of requests per second. Click on the 'Send Query' button to get your results! Load test

Getting Started

To get a local copy up and running, follow these steps:

  1. Clone the repo.
  2. Run npm install.
  3. Run npm run prod to start the application.
  4. Create or login to your ElephantSQL account.
  5. Run the following script to create your local database:
CREATE TABLE public.response_times (
  "_id" serial PRIMARY KEY,
  "date" varchar NOT NULL,
  "response_time" float NOT NULL,
  "query_id" bigint NOT NULL,
  FOREIGN KEY (query_id) REFERENCES queries (_id)
) WITH (
  OIDS=FALSE
);
CREATE TABLE public.load_test_response_times (
  "_id" serial PRIMARY KEY,
  "date" varchar NOT NULL,
  "number_of_child_processes" bigint NOT NULL,
  "average_response_time" float NOT NULL,
  "result" varchar NOT NULL,
  "query_id" bigint NOT NULL,
  FOREIGN KEY (query_id) REFERENCES queries (_id)
) WITH (
  OIDS=FALSE
);

CREATE TABLE public.users (
  "_id" serial PRIMARY KEY,
  "name" varchar NOT NULL,
  "email" varchar UNIQUE NOT NULL,
  "username" varchar UNIQUE NOT NULL,
  "password" varchar NOT NULL
) WITH (
  OIDS=FALSE
);
CREATE TABLE public.graphqlurls (
  "_id" serial PRIMARY KEY,
  "nickname" varchar NOT NULL,
  "url" varchar NOT NULL,
  "user_id" bigint NOT NULL,
  UNIQUE (url, user_id),
  FOREIGN KEY (user_id) REFERENCES users (_id)
) WITH (
  OIDS=FALSE
);
CREATE TABLE public.queries (
  "_id" serial PRIMARY KEY,
  "query_name" varchar NOT NULL,
  "query_string" varchar NOT NULL,
  "url_id" bigint NOT NULL,
  UNIQUE (query_string, url_id),
  FOREIGN KEY (url_id) REFERENCES graphqlurls (_id)
) WITH (
  OIDS=FALSE
);
CREATE TABLE public.response_times (
  "_id" serial PRIMARY KEY,
  "date" varchar NOT NULL,
  "response_time" float NOT NULL,
  "query_id" bigint NOT NULL,
  FOREIGN KEY (query_id) REFERENCES queries (_id)
) WITH (
  OIDS=FALSE
);
CREATE TABLE public.load_test_response_times (
  "_id" serial PRIMARY KEY,
  "date" varchar NOT NULL,
  "number_of_child_processes" bigint NOT NULL,
  "average_response_time" float NOT NULL,
  "result" varchar NOT NULL,
  "query_id" bigint NOT NULL,
  FOREIGN KEY (query_id) REFERENCES queries (_id)
) WITH (
  OIDS=FALSE
);

Prerequisites

Contributors

Frank Lin - GitHub - LinkedIn

Raubern Totanes - GitHub - LinkedIn

Patrick Ziegler - GitHub - LinkedIn

Laura Llano - GitHub - LinkedIn

Looking Ahead

Never look ahead. Only look at TODAY. #cheesy

Badges

wunderql's People

Contributors

airplanes23 avatar nexus1618 avatar ldllano avatar flin1105 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.