Skip to content

Commit 20d119f

Browse files
authored
Merge pull request #29 from chkware/release/M.2022-03
Release for milestone `M.2022 03`
2 parents d6173f6 + 8baf489 commit 20d119f

10 files changed

Lines changed: 458 additions & 383 deletions

README.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This repository holds source code and publishable website for [**`chkware`**](https://github.com/chkware/cli#readme). Please access using https://chkware.github.io.
44

5-
## Installation
5+
### Installation
66

77
Clone the repo:
88

@@ -17,31 +17,33 @@ Install dependencies:
1717
npm install
1818
```
1919

20-
## Local Development
20+
### Local Development
2121

2222
```
2323
$ npm start
2424
```
2525

26-
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
26+
This command starts a local development server and opens up a browser window. You can also follow `http://localhost:3000/` URL in any browser.
2727

28-
## Build
28+
Most changes are reflected live reload without having to restart the server.
29+
30+
### Build
2931

3032
```
3133
$ npm run build
3234
```
3335

3436
This command generates static content into the `build` directory and can be served using any static contents hosting service.
3537

36-
## Guides
38+
### Guides
3739

3840
Learn how to contribute to this website.
3941

4042
### Configs
4143

4244
All the configs can be found in `docusaurus.config.js`.
4345

44-
### Create a doc page
46+
#### Create a doc page
4547

4648
Create a Markdown file, `example.md`, and place it under the `docs` directory. Any markdown file will render into the site without needing any extra configuration. It will be displayed alphabetically on the sidebar.
4749

@@ -55,7 +57,7 @@ root
5557

5658
Markdown documents can use the Markdown front matter metadata fields, enclosed by a line `---` on either side. At the top of the file, you can optionally specify attributes in the front matter, so that Docusaurus will pick them up correctly when generating the site. Accepted fields can be found [here](https://docusaurus.io/docs/next/api/plugins/@docusaurus/plugin-content-docs#markdown-front-matter).
5759

58-
### Create a doc category
60+
#### Create a doc category
5961

6062
Creating a `example.md` in a sub folder will create a category in the sidebar.
6163

@@ -74,41 +76,41 @@ To change the category name or other category meta data, an optional file `_cate
7476
}
7577
```
7678

77-
### Static Assets
79+
#### Static Assets
7880

7981
The Static Assets can be found in the `static` folder. More [here](https://docusaurus.io/docs/next/static-assets).
8082

81-
### Change theme color
83+
#### Change theme color
8284

8385
Generate the variables from [here](https://docusaurus.io/docs/next/styling-layout#styling-your-site-with-infima). Then replace the variables in `src/css/custom.css` with these new variables. Don't forget variables for dark mode.
8486

85-
### Change codeBlock theme
87+
#### Change codeBlock theme
8688

8789
Docusaurus uses [Prism React Renderer](https://github.com/FormidableLabs/prism-react-renderer) to highlight code blocks. All configuration are in the `prism` object of `docusaurus.config.js`. You can specify a custom theme from the [list of available themes](https://github.com/FormidableLabs/prism-react-renderer/tree/master/src/themes).
8890

89-
### Syntax highlighting
91+
#### Syntax highlighting
9092

9193
To add syntax highlighting for any of the other [Prism-supported languages](https://prismjs.com/#supported-languages), define it in an array of additional languages. More [here](https://docusaurus.io/docs/next/markdown-features/code-blocks#supported-languages).
9294

93-
### Change footer
95+
#### Change footer
9496

9597
You can add logo and a copyright to the footer via `themeConfig.footer`. More [here](https://docusaurus.io/docs/next/api/themes/configuration#footer-1).
9698

97-
### Blog
99+
#### Blog
98100

99101
To set up blog, start by creating a `blog` directory. More [here](https://docusaurus.io/docs/next/blog).
100102

101-
### Admonitions
103+
#### Admonitions
102104

103105
In addition to the basic Markdown syntax, Docusaurus use [remark-admonitions](https://github.com/elviswolcott/remark-admonitions) alongside MDX to add support for admonitions. Admonitions are wrapped by a set of 3 colons. More [here](https://docusaurus.io/docs/next/markdown-features/admonitions).
104106

105-
### Update Docusaurus version
107+
#### Update Docusaurus version
106108

107109
To update Docusaurus version, manually change the version number in `package.json` to the desired version. Then run `npm run install`.
108110

109111
Any required change/depricated message will be shown on the terminal when running the command `npm run start`. More [here](https://docusaurus.io/docs/next/installation#updating-your-docusaurus-version).
110112

111-
## Status
113+
### Status
112114

113115
The current status of the website is **under construction**. Please follow us on Twitter [@chkware](https://twitter.com/chkware) for update. Thank you for your patience.
114116

docs/00-home.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
slug: /
3+
title: Home
4+
hide_title: true
5+
---
6+
7+
![chkware | Test management for api era](./assets/github-readme-01.png)
8+
9+
[![PyPI version](https://badge.fury.io/py/chk.svg)](https://badge.fury.io/py/chk)
10+
[![Python 3.8](https://img.shields.io/badge/python-3.10-red.svg)](https://www.python.org/downloads/release/python-3102/)
11+
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/chkware.svg?style=social&label=Follow%20%40chkware)](https://twitter.com/chkware)
12+
> Test management for API era.
13+
14+
### Introduction
15+
16+
API tests management is not easy to develop, and maintain. It requires multitude of knowledge of programming libraries, business scenarios, infrastructure details, etc - unless you use ***chkware***.
17+
18+
***chkware*** (pronounced as */check:ware/*) helps you write accurate, robust, and expressive feature tests for your API in less time.
19+
20+
Read [more value propositions](introduction) here. Find [changelog](https://github.com/chkware/cli/blob/971e7400848f26f9f8d2be5fa9eef5fa80a6ded0/docs/CHANGELOG.md) here.
21+
22+
### Setup
23+
24+
With [**Python 3.10**](https://www.python.org/downloads/) and [**Pipx**](https://pypa.github.io/pipx/installation/#install-pipx) preinstalled, run following in your terminal to get ***chkware*** installed.
25+
26+
```bash
27+
$ python -m pipx install chk
28+
```
29+
30+
Jump to the [setup guide](setup) for different ways to install ***chkware***.
31+
32+
### Usage
33+
34+
[Get started](quick-start) quickly here.
35+
Find [More examples](examples) here
36+
37+
### Contribute
38+
39+
Read [contribution guide](https://github.com/chkware/cli/blob/971e7400848f26f9f8d2be5fa9eef5fa80a6ded0/docs/CONTRIBUTING.md) and [code of conduct](https://github.com/chkware/cli/blob/971e7400848f26f9f8d2be5fa9eef5fa80a6ded0/docs/CODE_OF_CONDUCT.md) to start contributions.
40+
41+
---
42+
Licensed under [MPL v2.0](https://www.mozilla.org/en-US/MPL/2.0/) | Follow [@chkware](https://twitter.com/chkware) on Twitter | [`chk` project](https://pypi.org/project/chk/) on PyPi
Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,62 @@
11
---
2-
slug: /
32
title: Introduction
4-
hide_title: true
53
---
64

7-
![Chkware | Test management for api era](./assets/github-hero-01.png)
5+
![chkware | Test management for api era](./assets/github-hero-01.png)
86

9-
**Chkware** is an API testing tool, a scriptable HTTP client, and a test specification management tool for the API era.
7+
**chkware** (pronounced as */check:ware/*) is an API testing tool, a scriptable HTTP client, and a test specification management tool for the API era.
108

119
It is available as a command-line application. You write test specification files in a [YAML](https://yaml.org/)-based [DSL](https://en.wikipedia.org/wiki/Domain-specific_language). In that specification file you will define some structured configurations to be used for the following purpose:
1210

13-
- Create reusable offline http request specification. [pre-released]
11+
- Create reusable http request specification. [alpha]
1412
- Create reusable test specifications. [TBD]
15-
- Create reusable test flows. [TBD]
16-
- Create reusable variable files to manage global and scoped data. [TBD]
1713

1814
Afterward, you run those test specification files with **chkware**, and get test results or even reuse them.
1915

2016
---
2117

2218
### Motivation
2319

24-
In today's world, API is one of the key fuels that drive business. It is the way web applications consume services from self-hosted or 3rd-party vendors. Recent technology movements are going to a fluid internet direction, where _vendor_A_ have one API, _vendor_B_ is another API provider, while we are the consumers (e-commerce, fin-tech) of those vendor APIs. We use those APIs to host our contents based on those APIs. Maybe we are _vendor_U_ hosting more complex APIs on top of those. So, with the upcoming complexity of integration we need better tooling for API testing. Testing tools for modularize api testing.
20+
In today's world, API is one of the key fuels that drive business. It is the way web applications consume services from self-hosted or 3rd-party vendors. Recent technology movements are going to a fluid internet direction, where *vendor_A* have one API, *vendor_B* is another API provider, while we are the consumers (e-commerce, fin-tech) of those vendor APIs. We use those APIs to host our contents based on those APIs. Maybe we are *vendor_U* hosting more complex APIs on top of those. So, with the upcoming complexity of integration we need better tooling for API testing. Testing tools for modularize api testing.
2521

2622
API automation is playing a key role in this era. The benefits of API automation are clearly visible. There are plenty of tools to support all kinds of test automation. However, the complexity to create and maintain automated test cases using available tools is inescapable. No way it's quick to get started, or pick up without further education on the corresponding tools ecosystem. Furthermore, knowledge of the programming language that was used to develop the tools is also needed for advanced customization of test cases.
2723

28-
API testing tools are costly as well, in-term of licensing, setup and maintenance. Some of the tools you are available for free for simple use-cases, have complex licensing for increased usage, most of the time that aren't worth user usage. Also, commercial applications have limited community support, and knowledge exchange medium. Above that, of course, there are less and less open-source tools to cover these scenarios.
24+
API testing tools are costly as well, in-term of licensing, setup and maintenance. Some tools are available for free for simple use-cases, but have complex licensing for increased usage, most of the time that aren't worthwhile. Also, commercial applications have limited community support, and knowledge exchange medium. Above that, of course, there are less and less open-source tools to cover these scenarios.
2925

30-
For these reasons, the solutions are less scaling for actual use-cases. With additional business knowledge (that is ever growing) required to start and maintain tests, you also need:
26+
For these reasons, the solutions are less scaling for actual use-cases. With additional business knowledge (that is evergrowing) required to start and maintain tests, you also need:
3127

32-
1. specific programming language knowledge, so it is not easy to jump-in quick
33-
2. added complexity of maintaining supporting software stack, so there are side-effects
28+
1. Specific programming language knowledge, so it is not easy to jump-in quick
29+
2. Added complexity of maintaining supporting software stack, so there are side effects
3430
3. Above all, maintaining test cases based on code is more complex if you don't design your test code architecture well in the early days.
3531

36-
So, clearly enough I think this situation needs to be improved. This is the motivation for **Chkware**.
32+
So, clearly enough I think this situation needs to be improved. This is the motivation for **chkware**.
3733

3834
---
3935

4036
### Audiences
4137

42-
The focused users of chkware are everyone involved in an API project, given they have some testing basics.
38+
The focused users of **chkware** are everyone involved in an API project, given they have some testing basics.
4339

44-
- People with zero programming knowledge need a tool that does not get in their way.
45-
- We need a tool that is relatively easy to write specifications, expressive, and customizable to the very core.
40+
- People with zero programming knowledge need a tool that does not get in their way.
41+
- We need a tool that is relatively easy to write specifications, expressive, and customizable to the very core.
4642
- We need a tool that is very easy to learn, and fun to use.
4743

4844
In practical cases, software testers / QAs, developers, PM/POs, are the people who should be able to use it rigorously.
4945

5046
- This project is particularly helpful if you are developing an API oriented project.
5147
- Test websites or web interfaces are not in the project focus for now.
5248
- Also, seeding data, validating data in DB is out of this project scope for now.
49+
50+
---
51+
52+
### Platform support
53+
54+
This tool is tested to run on **Linux**, **Windows**, and **macOS** platform.
55+
56+
There is no native binary dependency, therefore it is expected on all the platform where supported Python version works. Please create an issue, if you need additional platform support.
57+
58+
---
59+
60+
### Stability
61+
62+
Current stability for this tool is _Alpha_.

docs/2.-setup.md renamed to docs/02-setup.md

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
---
22
title: Setup
3-
hide_title: true
43
---
54

65
### Installation
76

8-
The currently supported python version is **\*Python 3.8.\*\*** You need to have this version of python in your OS to continue any of the following steps.
7+
8+
The currently supported python version is **_Python 3.10.x_** You need to have this version of python in your OS to continue any of the following steps.
9+
910

1011
**Method 1: with pipx**
1112

@@ -17,6 +18,12 @@ First, [Install pipx](https://pypa.github.io/pipx/installation/). Then run
1718
$ pipx install chk
1819
```
1920

21+
Then use as following
22+
23+
```bash
24+
$ chk http SomeFile.chk
25+
```
26+
2027
**Method 2: with pip (globally)**
2128

2229
Alternatively you can install with `pip` like other regular python package following these step. However, it will install the package globally.
@@ -26,6 +33,12 @@ $ python3 -m pip install -U pip # upgrade pip
2633
$ python3 -m pip install -U chk
2734
```
2835

36+
Then use as following
37+
38+
```bash
39+
$ python3 -m chk http SomeFile.chk
40+
```
41+
2942
**Method 3: with pip (locally)**
3043

3144
To install under a seperate environment, that don't change your global package space. Install under a virtual env.
@@ -37,6 +50,13 @@ $ pip install -U pip # upgrade pip
3750
$ pip install -U chk
3851
```
3952

53+
Then use as following
54+
55+
```bash
56+
$ source .venv/bin/activate
57+
$ python -m chk http SomeFile.chk
58+
```
59+
4060
---
4161

4262
### Upgrade
@@ -48,15 +68,3 @@ $ pipx upgrade chk
4868
```
4969

5070
Otherwise, if **pip** was used to install then same process given above should work for upgrade as well.
51-
52-
---
53-
54-
### Platform support
55-
56-
For now this tool is developed and tested on **macOS** only. We are working hard to make it available on Linux platform.
57-
58-
---
59-
60-
### Stability
61-
62-
Current stability for this tool is _Pre - Alpha_
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
---
22
title: Quick Start
3-
hide_title: true
43
---
54

65
To quickly start, let's try something live online.. [REQ|RES](https://reqres.in) is a hosted demo REST api service. Let's call a simple API endpoint from here.
76

8-
> First [setup chkware](setup).
7+
> First [setup **chkware**](setup).
98
109
Go to https://reqres.in, and find there is an endpoint like **_GET_ SINGLE USER** we'll call this API with Chkware. So, follow these steps:
1110

@@ -22,7 +21,7 @@ request:
2221
3. from terminal run following
2322
2423
```bash
25-
$ chk User.chk
24+
$ chk http User.chk
2625
```
2726

2827
See the output like
@@ -66,7 +65,7 @@ request:
6665
6766
```bash
6867
$ cd ~/project
69-
$ chk covid-19.chk
68+
$ chk http covid-19.chk
7069
```
7170

7271
1. You'll get output like this

0 commit comments

Comments
 (0)