|
1 | 1 | --- |
2 | | -slug: / |
3 | 2 | title: Introduction |
4 | | -hide_title: true |
5 | 3 | --- |
6 | 4 |
|
7 | | - |
| 5 | + |
8 | 6 |
|
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. |
10 | 8 |
|
11 | 9 | 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: |
12 | 10 |
|
13 | | -- Create reusable offline http request specification. [pre-released] |
| 11 | +- Create reusable http request specification. [alpha] |
14 | 12 | - Create reusable test specifications. [TBD] |
15 | | -- Create reusable test flows. [TBD] |
16 | | -- Create reusable variable files to manage global and scoped data. [TBD] |
17 | 13 |
|
18 | 14 | Afterward, you run those test specification files with **chkware**, and get test results or even reuse them. |
19 | 15 |
|
20 | 16 | --- |
21 | 17 |
|
22 | 18 | ### Motivation |
23 | 19 |
|
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. |
25 | 21 |
|
26 | 22 | 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. |
27 | 23 |
|
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. |
29 | 25 |
|
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: |
31 | 27 |
|
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 |
34 | 30 | 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. |
35 | 31 |
|
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**. |
37 | 33 |
|
38 | 34 | --- |
39 | 35 |
|
40 | 36 | ### Audiences |
41 | 37 |
|
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. |
43 | 39 |
|
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. |
46 | 42 | - We need a tool that is very easy to learn, and fun to use. |
47 | 43 |
|
48 | 44 | In practical cases, software testers / QAs, developers, PM/POs, are the people who should be able to use it rigorously. |
49 | 45 |
|
50 | 46 | - This project is particularly helpful if you are developing an API oriented project. |
51 | 47 | - Test websites or web interfaces are not in the project focus for now. |
52 | 48 | - 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_. |
0 commit comments