Skip to content

Commit

Permalink
Release 2.0.0 rc.2 (#45)
Browse files Browse the repository at this point in the history
* refactor the existing tests to use the new k6-tdk
introduce a test which mimics a user login flow, based on the koko load test concept
introduce a test which navigates through a configurable folder tree, based on the koko load test concept
introduce a test which simulates an upload delete workflow, based on the koko load test concept
introduce a test which simulates an upload download workflow, based on the koko load test concept
introduce a test which creates and renames nested folders, based on the koko load test concept
introduce sample tests to show all contained options from the k6-tdk
introduce k6-tdk (test development kit) which exposes building blocks to work with the individual clouds (api, client, utils, auth)
introduce private esbuild package which contains shared building blocks
introduce private eslint config package which contains shared eslint configurations
introduce private tsconfig config package which contains shared typescript configurations
introduce private turbowatch package which contains shared watcher configurations
switch from yarn to pnpm
use a monorepo structure and introduce turbo, esbuild and turbowatch to speed up the development

* refactor: build k6-tdk as esm and cjs

k6-tdk now exports virtual sub packages and is now available
in cjs and
esm format

[skip ci]

* refactor: expose tdk k6 utils without the k6 namespace

@ownclouders/k6-tdk utils now export the k6 helpers directly without the
namespace

* add some more details to the readme
add test docs for each test

* fix doc typos
k6-tdk disable virtual package sideEffects explicitly

* Fix name of products

* fixes: add pr review feedback and fine tune package building

- add more detail to the navigate folder test description
- fix some wordings in the readme
- build the vLib's after esbuild emission
- use platform node as default in the shared build setup
- update watch glob expression to only watch package src and pnpm workspace dist folders

* chore: bump dependencies

* rename Authenficator interface

* Suggested doc review changes

Co-authored-by: Martin <[email protected]>

---------

Co-authored-by: Klaas Freitag <[email protected]>
Co-authored-by: Martin <[email protected]>
  • Loading branch information
3 people authored Apr 3, 2023
1 parent bfab318 commit d39e1b8
Show file tree
Hide file tree
Showing 128 changed files with 7,421 additions and 4,705 deletions.
13 changes: 0 additions & 13 deletions .babelrc

This file was deleted.

11 changes: 11 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
6 changes: 0 additions & 6 deletions .depcheckrc

This file was deleted.

4 changes: 0 additions & 4 deletions .dockerignore

This file was deleted.

10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_size = 2
indent_style = space
ij_typescript_use_double_quotes = false
ij_javascript_use_double_quotes = false
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

16 changes: 2 additions & 14 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,16 +1,4 @@
{
"plugins": ["simple-import-sort", "import"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2020,
"sourceType": "module"
},
"extends": ["plugin:@typescript-eslint/recommended", "prettier/@typescript-eslint", "plugin:prettier/recommended"],
"rules": {
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"import/first": "error",
"import/newline-after-import": "error",
"import/no-duplicates": "error"
}
"root": true,
"extends": ["@ownclouders"]
}
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.idea
*.iml
node_modules
.turbo
.pnpm-store
dist
yarn-error.log
/tests
lib
node_modules
7 changes: 0 additions & 7 deletions .prettierrc

This file was deleted.

10 changes: 10 additions & 0 deletions .syncpackrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"dependencyTypes": [
"dev",
"overrides",
"peer",
"pnpmOverrides",
"prod",
"resolutions",
]
}
20 changes: 0 additions & 20 deletions CHANGELOG.md

This file was deleted.

39 changes: 0 additions & 39 deletions Dockerfile

This file was deleted.

6 changes: 0 additions & 6 deletions Makefile

This file was deleted.

40 changes: 27 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# ownCloud cloud testing toolbox
This repository contains the tools we use to test the performance of different cloud systems.
This repository contains the tools we use to test and measure the performance of different cloud systems.

Supported clouds are:
* [ownCloud](https://github.com/owncloud/core)
* [ocis](https://github.com/owncloud/ocis)
* [nextCloud](https://github.com/nextcloud/server/)
* [ownCloud Core](https://github.com/owncloud/core)
* [Infinite Scale](https://github.com/owncloud/ocis)
* [Nextcloud](https://github.com/nextcloud/server/)

## Requirements
* [K6](https://k6.io/) (if k6 should run on the host machine)
* [Docker](https://docs.docker.com/)

## Usage
cdPerf is just a collection of prepared scripts which can used with k6 as described
cdPerf is a collection of ready to use scripts which can used via k6 as described.
[here](https://k6.io/docs/get-started/running-k6/).

## How to test
Expand All @@ -27,7 +26,8 @@ It's important to know how to compare the tests against each other and what thos

**Test setup at ownCloud:**

At ownCloud we currently test two times a day on different servers. Server (A) is intel based and server (B) amd based.
At ownCloud, k6 is used to compare the performance of the products during development. It is very helpful to understand how changes to the codebase affect the performance, between releases, but also between single commits.

The first test run, runs the tests on A which is testing a server on B and then B which is testing on A.
We collect those metrics over time to get indicators of how the performance changes over time (version to version) and how the clouds perform in comparison to each other.

Expand All @@ -41,17 +41,26 @@ We collect those metrics over time to get indicators of how the performance chan
for a more detailed instruction how to read the results you should consider reading the k6 manual,
specially the [end of test](https://k6.io/docs/results-output/end-of-test/) section.

## Test Suits
* koko
* [010-login](packages/k6-tests/src/koko/010-login.md)
* [020-navigate-file-tree](packages/k6-tests/src/koko/020-navigate-file-tree.md)
* [040-upload-delete](packages/k6-tests/src/koko/040-upload-delete.md)
* [050-upload-download](packages/k6-tests/src/koko/050-upload-download.md)
* [060-create-rename-folder](packages/k6-tests/src/koko/060-create-rename-folder.md)
* oc
* [share-upload-rename](packages/k6-tests/src/oc/share-upload-rename.md)
* sample
* [kitchen-sink](packages/k6-tests/src/sample/kitchen-sink.md)
* surf
* [upload](packages/k6-tests/src/surf/upload.md)

## Details
Read more about [considerations](docs/considerations.md) of performance measurement.
A precise description of what a test does and what the requirements are can be found in the respective test folder.

## Available tests
* [share-upload-rename](src/tests/share-upload-rename/default.md)
* [surf-upload](src/tests/surf/upload.md)

## Dashboard
To visualize the test results you need an influxdb and grafana instance running.
At ownCloud, we are using [https://github.com/owncloud-devops/k6-benchmark-visualization](https://github.com/owncloud-devops/k6-benchmark-visualization)
To visualize the test results, tools such as InfluxDB + Grafana are needed. To explain how the results can be visualized would go beyond the scope of this document and is also not the purpose of cdPerf. All necessary steps and a precise description of what is necessary can be found [here](https://k6.io/docs/results-output/real-time/).

## Security
If you find a security issue please contact [[email protected]](mailto:[email protected]) first
Expand All @@ -62,6 +71,11 @@ Fork -> Patch -> Push -> Pull Request
## License
Apache-2.0

## Dictonary
* **oCis**: [ownCloud Infinite Scale](https://github.com/owncloud/ocis)
* **k6-tdk**: k6 test development kit
* **cdPerf**: cloud performance

## Copyright
```console
Copyright (c) 2023 ownCloud GmbH <https://owncloud.com>
Expand Down
53 changes: 0 additions & 53 deletions changelog/CHANGELOG.tmpl

This file was deleted.

6 changes: 0 additions & 6 deletions changelog/README.md

This file was deleted.

11 changes: 0 additions & 11 deletions changelog/TEMPLATE

This file was deleted.

Empty file removed changelog/unreleased/.keep
Empty file.

This file was deleted.

5 changes: 0 additions & 5 deletions changelog/unreleased/enhancement-upload-delete-trash-tests.md

This file was deleted.

3 changes: 0 additions & 3 deletions entrypoint

This file was deleted.

18 changes: 0 additions & 18 deletions go.mod

This file was deleted.

38 changes: 0 additions & 38 deletions go.sum

This file was deleted.

Loading

0 comments on commit d39e1b8

Please sign in to comment.