Plugin test frameworks is designed for verifying the plugin function and compatible status. As there are dozens of plugins and
Plugin test framework is designed for verifying the plugins' function and compatible status. As there are dozens of plugins and
hundreds versions need to be verified, it is impossible to do manually.
hundreds of versions need to be verified, it is impossible to do manually.
The test framework uses container based tech stack, requires a set of real services with agent installed, then the test mock
The test framework uses container based tech stack, requires a set of real services with agent installed, then the test mock
OAP backend is running to check the segment and register data sent from agents.
OAP backend is running to check the segments and register data sent from agents.
Every plugin maintained in the main repo is required having its test cases, also matching the versions in the supported list doc.
Every plugin maintained in the main repo requires corresponding test cases, also matching the versions in the supported list doc.
## Environment Requirements
## Environment Requirements
...
@@ -559,41 +559,23 @@ rather than recompiling it every time.
...
@@ -559,41 +559,23 @@ rather than recompiling it every time.
Use `${SKYWALKING_HOME}/test/plugin/run.sh -h` to know more command options.
Use `${SKYWALKING_HOME}/test/plugin/run.sh -h` to know more command options.
If the local test passed, then you could add it to `.github/workflows/plugins-test.yaml` file, which will drive the tests running on the Github Action of official SkyWalking repository. Please check the prev agent related PRs, and add your case to the fastest group, in order to make the whole test finished as soon as possible.
If the local test passed, then you could add it to `.github/workflows/plugins-test.<n>.yaml` file, which will drive the tests running on the Github Actions of official SkyWalking repository.
Based on your plugin's name, please add the test case into file `.github/workflows/plugins-test.<n>.yaml`, by alphabetical orders.
Every test case is a Github Action Step. Please use the scenario name, version range and version number to combine the name,
Every test case is a Github Actions Job. Please use the `<scenario name> + <version range> + (<supported version count>)` as the Job `title`, and the scenario directory as the Job `name`,
take the existing one as a reference.
mostly you'll just need to decide which file (`plugins-test.<n>.yaml`) to add your test case, and simply put one line (as follows) in it, take the existed cases as examples.
For example:
```yaml
jobs:
Here is a group named 'Kafka'. The latest step is Kafka scenario.
PluginsTest:
```
name:Plugin
Kafka:
runs-on:ubuntu-18.04
runs-on:ubuntu-18.04
timeout-minutes:90
timeout-minutes:90
strategy:
strategy:
fail-fast:true
fail-fast:true
steps:
matrix:
- uses: actions/checkout@v2
case:
# In the checkout@v2, it doesn't support git submodule. Execute the commands manually.
# ...
- name: checkout submodules
-{name:'<yourcasename>',title:'<PluginName,i.e.Spring>(<SupportedVersionCount,i.e12>)'}# <<== insert one line by alphabetical orders