-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Since as of now, Gocannon only supports performing load tests, in which every HTTP request is identical, it might be useful to let the user programmatically alter the program's behavior during the load test so as to allow for executing more complex load testing scenarios.
While I initially wanted to avoid embedding a compiler/runtime like LuaJIT or V8 in Gocannon due to performance considerations, similar results can be achieved by implementing support for support for Go plugins, that would make it possible to inject custom logic at program startup, teardown as well as before and after each request is sent (in an aspect-oriented programming fashion). Development of a user-defined plugin would rely on creating a new package exposing a pre-defined interface and compiling it to a shared object, which would then be accessed and executed by Gocannon at runtime (i.e. with the path to the .so file provided via --plugin=path/to/plugin.so
).