<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gorankusu, branch v0.6.0</title>
<subtitle>The Go library for load testing HTTP and WebSocket endpoints.</subtitle>
<id>http://git.kilabit.info/gorankusu/atom?h=v0.6.0</id>
<link rel='self' href='http://git.kilabit.info/gorankusu/atom?h=v0.6.0'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/'/>
<updated>2024-03-05T09:14:11Z</updated>
<entry>
<title>Release gorankusu v0.6.0 (2024-03-05)</title>
<updated>2024-03-05T09:14:11Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-03-05T09:10:31Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=20e45fe125803bc7fd0fd079f30bf4c099c8320a'/>
<id>urn:sha1:20e45fe125803bc7fd0fd079f30bf4c099c8320a</id>
<content type='text'>
=== Breaking changes

* target: changes Opts to non-pointer

  Previously, we use pointer to indicated that the Target can be
  attacked or not. Since HTTPTarget now have AllowAttack, this options
  can be changes to non-pointer.

* all: change the signature of default request/response dumper

  Instead of function that use the signature of HTTPRequestDumper/
  HTTPResponseDumper; change it to function that return HTTPRequestDumper/
  HTTPResponseDumper. In this way, the documentation can show the clear
  relation between function and its type.

=== New features

* all: add global HTTP headers for Target

  The Headers field on Target define the global headers that will be
  send along with all HTTPTarget or WebSocketTarget. The same header can
  also be defined on HTTPTarget that override the value of Target.

* all: add default HTTPRunHandler

  Previously, the default HTTPRunHandler is hidden, called dynamically
  based on Run is nil or not. This changes make it exported as function
  that return HTTPRunHandler to show how define and create a custom
  HTTPRunHandler.

* all: add default HTTPParamsConverter for [HTTPTarget.ParamsConverter]

  The DefaultParamsConverter define default function to convert
  [HTTPTarget.Params] to its equivalent parameters in HTTP, either as
  query in URL or as bytes in body.

  This changes introduce breaking changes in HTTPTarget where field
  ConvertParams renamed to ParamsConverter.

* all: set default HTTPTarget Attack if its not set

  Previously, the function for Attack need to be coded manually.

  This changes introduce new function DefaultHTTPAttack that generate
  HTTPAttackHandler based on the HTTPTarget method, request type, and
  Params; if AllowAttack is true and Attack is nil.

=== Bug fixes

* all: fix null navigation links

  If the navLinks fields is empty, the HTTP API will return "null" and
  cause the rendering error. This changes fix this issue by allocating
  the slice navLinks with one capabilities to make JSON always return
  "[]" if its empty.
</content>
</entry>
<entry>
<title>all: move reading GORANKUSU_DEV environment to [Environment.IsDevelopment]</title>
<updated>2024-02-20T18:51:34Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-20T18:51:22Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=f08f1c15ff863d2829af8be8ddf392e9241d0f89'/>
<id>urn:sha1:f08f1c15ff863d2829af8be8ddf392e9241d0f89</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: move constants declaration closer to its usage</title>
<updated>2024-02-20T18:45:56Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-20T18:45:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=e8d3716995e9229a61a32894689c379e22475420'/>
<id>urn:sha1:e8d3716995e9229a61a32894689c379e22475420</id>
<content type='text'>
</content>
</entry>
<entry>
<title>all: add parameter to use custom listen address in NewExample</title>
<updated>2024-02-20T18:36:39Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-20T18:36:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=f8b6b66d9b407f7441a9170b46e42d928532f732'/>
<id>urn:sha1:f8b6b66d9b407f7441a9170b46e42d928532f732</id>
<content type='text'>
This will allow running Example server with "make dev" and the test with
"make" or "make test" at the same time.
</content>
</entry>
<entry>
<title>all: add global HTTP headers for Target</title>
<updated>2024-02-20T18:34:56Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-20T18:29:25Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=9ca138628023b926ddf07cbd2e93562b8e782cf6'/>
<id>urn:sha1:9ca138628023b926ddf07cbd2e93562b8e782cf6</id>
<content type='text'>
The Headers field on Target define the global headers that will be send
along with all HTTPTarget or WebSocketTarget.
The same header can also be defined on HTTPTarget that override the
value of Target.
</content>
</entry>
<entry>
<title>all: fix null navigation links</title>
<updated>2024-02-19T06:56:42Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-19T06:56:42Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=99999635f67931e1a6deb608f13b2dc2ecd9df73'/>
<id>urn:sha1:99999635f67931e1a6deb608f13b2dc2ecd9df73</id>
<content type='text'>
If the navLinks fields is empty, the HTTP API will return "null" and make
the rendering error.
This changes fix this issue by allocating the slice navLinks with one
capabilities to make JSON always return "[]" if its empty.
</content>
</entry>
<entry>
<title>all: remove Run in Example</title>
<updated>2024-02-18T17:37:46Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-18T17:37:46Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=08de328c6bfa5719bdd7003e3064668fd4e62f27'/>
<id>urn:sha1:08de328c6bfa5719bdd7003e3064668fd4e62f27</id>
<content type='text'>
The Run handler is handled automatically.
</content>
</entry>
<entry>
<title>example: add POST header that can return custom HTTP response code</title>
<updated>2024-02-18T11:27:59Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-18T11:27:59Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=e89e0f0857a1d3a6f3079bbecea45a255df431f0'/>
<id>urn:sha1:e89e0f0857a1d3a6f3079bbecea45a255df431f0</id>
<content type='text'>
In some cases we found that if the HTTP response code is 202 the JSON
response body is not indented.
Turns out this is caused by HTTP Content-Type in response is
"text/plain".

Closes: https://todo.sr.ht/~shulhan/gorankusu/6
</content>
</entry>
<entry>
<title>all: add default HTTPRunHandler</title>
<updated>2024-02-15T18:43:53Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-15T18:37:11Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=8d27c8b6fa922fbb90bde8ba3675abf535d12422'/>
<id>urn:sha1:8d27c8b6fa922fbb90bde8ba3675abf535d12422</id>
<content type='text'>
Previously, the default HTTPRunHandler is hidden, called dynamically
based on Run is nil or not.
This changes make it exported as function that return HTTPRunHandler
to show how define and create a custom HTTPRunHandler.
</content>
</entry>
<entry>
<title>target: changes Opts to non-pointer</title>
<updated>2024-02-15T18:43:53Z</updated>
<author>
<name>Shulhan</name>
<email>ms@kilabit.info</email>
</author>
<published>2024-02-15T18:35:08Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/gorankusu/commit/?id=3209221c94634a3e49bad6c90896919745be8e85'/>
<id>urn:sha1:3209221c94634a3e49bad6c90896919745be8e85</id>
<content type='text'>
Previously, we use pointer to indicated that the Target can be attacked
or not.
Since HTTPTarget now have AllowAttack, this options can be changes to
non-pointer.
</content>
</entry>
</feed>
