summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-08Release gorankusu v0.5.0v0.5.0Shulhan
This release rename the project from "trunks" to "gorankusu". The original idea of "trunks" is because the core library that we use for load testing is named vegeta (from Dragon Ball), and Vegeta has a son named Trunks. In English, trunks also have multiple meanings. In order to have a unique name, we rename the project to "gorankusu", which is a combination of "go" (the main programming language that built the application) and "torankusu" the Hepburn of "Trunks". === New features * all: allow submit free form request body in HTTPTarget * all: implement form input file * all: add type to customize how to dump HTTP request and response * all: support parameter binding in HTTP Path === Enhancements * _www: check HTTP response status greater or equal 400
2024-02-08all: rename left over constant EnvDelopment that still have "trunks"Shulhan
2024-02-08all: allow submit free form request body in HTTPTargetShulhan
In HTTPTarget the field RawBody can be filled by anything by user. Those field can be activated by setting WithRawBody. Implements: https://todo.sr.ht/~shulhan/gorankusu/3
2024-02-07all: rename the project to gorankusuShulhan
The original idea of "trunks" is because the core library that we use for load testing is named "vegeta" (from Dragon Ball) [1][2], and Vegeta has a son named Trunks. In English, trunks also have multiple meanings. In order to have a unique name, we rename the project to "gorankusu", which is a combination of "go" (the main programming language that built the application) and "torankusu" the Hepburn of "Trunks". [1]: https://github.com/tsenart/vegeta/ [2]: https://en.wikipedia.org/wiki/Vegeta Implements: https://todo.sr.ht/~shulhan/gorankusu/2
2024-02-05all: implement form input fileShulhan
The FormInput now can be set to FormInputKindFile that will rendered as "<input type='file' ...>" on the web user interface. Once submitted, the file name, type, size, and lastModification will be stored under FormInput Filename, Filetype, Filesize, and Filemodms. Implements: https://todo.sr.ht/~shulhan/trunks/1
2024-02-05_www/wui: update to tipShulhan
2024-02-05all: add type to customize how to dump HTTP request and responseShulhan
The HTTPRequestDumper define an handler to convert [http.Request] into [RunResponse] DumpRequest. The HTTPResponseDumper define an handler to convert [http.Response] into [RunResponse] DumpResponse.
2024-02-04http_server: group HTTP paths API into constantsShulhan
2024-02-04example: split registering HTTP and WebSocket target into separate methodsShulhan
2024-02-04go.mod: update all dependenciesShulhan
2024-02-04make: generate test coverageShulhan
2024-01-25internal/cmd/trunks: fix command to run TypeScript compilerShulhan
The correct options to run tsc on specific directory is "--project" not "-b".
2024-01-25_www: check HTTP response status greater or equal 400Shulhan
Any HTTP status code below 400 are still processable and not an error.
2024-01-25all: fix warnings recommended by linter reviveShulhan
Most of the fixes related to naming variables with acronyms, for example HTTP, JSON, URL, and so on.
2024-01-25all: support parameter binding in HTTP PathShulhan
If HTTP Path contains key, for example "/:book", and the Params contains the same key, the Path will be filled with value from Params. The same key in Params will be deleted and not send on query parameter or body.
2024-01-25go.mod: update all dependenciesShulhan
2023-11-11Release trunks v0.4.1 (2023-11-11)v0.4.1Shulhan
This release only have chores, it should not break anything. * go.mod: update all dependencies This changes set minimum Go version to version 1.20. The vegeta module finally has some update to v12.11.1. * gitmodules: use https instead of git scheme Using git scheme require private key to clone the remote repository. * _www: update wui module * _www: setup eslint for linting TypeScript files This changes also apply all eslint recommendations. * Makefile: replace the Go linter and apply all their recommendations Previously, we use golangci-lint as linter. This linter does not provides any useful recommendation lately and the development is quite a mess, sometimes its break when using Go tip. In this changes we replace it with revive, fieldalignment, and shadow; and fix all of their recommendations.
2023-11-11Makefile: replace the Go linter and apply all their recommendationsShulhan
Previously, we use golangci-lint as linter. This linter does not provides any useful recommendation lately and the development is quite a mess, sometimes its break when using Go tip. In this changes we replace it with revive, fieldalignment, and shadow; and fix all of their recommendations.
2023-11-11_www: apply all eslint recommendationsShulhan
2023-11-11_www: setup eslint for linting TypeScript filesShulhan
2023-11-11_www: update wui moduleShulhan
While at it reformat all files using default prettier.
2023-11-11gitmodules: use https instead of git schemeShulhan
Using git scheme require private key to clone to remote repository.
2023-11-11go.mod: update all dependenciesShulhan
This changes set minimum Go version to version 1.20.
2023-05-16Release trunks v0.4.0 (2023-05-16)v0.4.0Shulhan
=== Bug fixes * all: fix panic when attacking HTTP due to nil Attack handler === Enhancements * _www: replace WebSocket handlers with HTTP endpoints * all: add boolean Kind for FormInput, FormInputKindBoolean * all: check and call ConvertParams when running HttpTarget === Chores * all: move the _doc directory under _www * all: convert the README from asciidoc to markdown * all: remove WebSocket server * go.mod: set Go version to 1.19 and update all dependencies
2023-05-16all: move the _doc directory under _wwwShulhan
This is to minimize symlinks in the repository.
2023-05-16all: convert the README from asciidoc to markdownShulhan
I use two remote repositories: GitHub and SourceHut. GitHub support rendering README using asciidoc while SourceHut not. This cause the repository that use README.adoc rendered as text in SourceHut which make the repository page less readable. Also, the pkg.go.dev now render README but only support Markdown. Since we cannot control the SourceHut and go.dev, the only option is to support converting Markdown in ciigo so I can write README using Markdown and the rest of documentation using Asciidoc.
2023-05-16all: remove WebSocket serverShulhan
Using WebSocket for communication in client require additional setup, especially if its behind proxy. For example, if we server the trunks server under domain testing.local behind proxy, we need to setup route for the WebSocket too.
2023-05-16_www: replace WebSocket handlers with HTTP endpointsShulhan
The Attack and attack Cancel now call the HTTP endpoints.
2023-05-16all: implement HTTP API to run and cancel attack on HTTP targetShulhan
This endpoints similar that we have in the WebSocket. The idea is to replace the WebSocket endpoints with this one.
2023-05-16go.mod: update all dependenciesShulhan
2023-05-16all: fix panic when attacking HTTP due to nil Attack handlerShulhan
In attack endpoint, check if the Attack is nil before we push the request to attack queue.
2023-05-05all: add boolean Kind for FormInput, FormInputKindBooleanShulhan
The FormInputKindBoolean only used for convertion, for example ToJsonObject. In the WUI, it still rendered as string, not as checkbox. FormInput with this Kind will be converted to true in ToJsonObject if the Value is either "true", "yes", or "1".
2023-05-05all: set the request ConvertParams before calling runHttpTargetShulhan
The req, RunRequest instance, is from request so the HttpTarget.ConvertParams need to be set from the original HttpTarget. This fix the conditional rr.HttpTarget.ConvertParams == nil always true when calling runHttpTarget.
2023-05-05go.mod: set Go version to 1.19 and update all dependenciesShulhan
2023-05-05all: check and call ConvertParams when running HttpTargetShulhan
If the ConvertParams field is set, use it to convert the parameters into desired type.
2022-08-25Release trunks v0.3.0 (2022-08-25)v0.3.0Shulhan
This release set the minimum Go version to 1.18 and update all modules. == Chores * all: group all documentations under directory _doc * example: fix the HTTP POST handler * all: remove unused field Locker in RunRequest * all: fix all linter warnings
2022-08-25all: group all documentations under directory _docShulhan
The _doc directory provides an entry point for all documentation. While at it we reformat the README to use AsciiDoc markup.
2022-08-21example: fix the HTTP POST handlerShulhan
Remove call to ParseMultipartform since the request type is x-www-form-urlencoded not multipart/form-data.
2022-08-21all: remove trailing new line on each mlog formatShulhan
The mlog functions automatically add new line to each format, so we did not need to add it manually.
2022-08-21all: remove unused field Locker in RunRequestShulhan
2022-08-21all: fix all linter warningsShulhan
Some linter, govet, warns about possible copied Mutex on HttpRequest. To fix this we implement method clone and Stringer on HttpRequest.
2022-08-21all: reformat with Go 1.19 gofmtShulhan
2022-08-21go.mod: set minimum Go to 1.18 and update all dependenciesShulhan
This changes replace any usage of ioutil with os and io package.
2022-04-20_www: set the WebSocket address schema based on URL protocolShulhan
If the address is using "https:" protocol, the WebSocket address will use the "wss://" schema. This changes require latest update on wui repository.
2022-03-14Release trunks v0.2.0 (2022-03-13)v0.2.0Shulhan
Release trunks under GPL 3.0 or later license. See https://kilabit.info/journal/2022/gpl for more information.
2022-03-14all: changes the license of trunks software to GPL 3.0 or laterShulhan
See https://kilabit.info/journal/2022/gpl for more information.
2022-03-13all: update dependenciesShulhan
2022-02-05Release trunks v0.1.0 (2022-02-05)v0.1.0Shulhan
Module trunks is a library and HTTP service that provide web user interface to test HTTP service, similar to Postman, and for load testing. For the load testing we use vegeta [1] as the backend.
2022-02-05go.mod: update share module to v0.34.0Shulhan
2022-02-05Makefile: run the test with CGO_ENABLED=1Shulhan
In case user set CGO_ENABLED=0, the task for "all" will fail. This commit fix this by setting CGO_ENABLED to 1 when running test with -race option.