owncloud / cdperf Goto Github PK
View Code? Open in Web Editor NEW:atom_symbol: ownCloud cloud performance test
Home Page: https://owncloud.github.io/
License: Apache License 2.0
:atom_symbol: ownCloud cloud performance test
Home Page: https://owncloud.github.io/
License: Apache License 2.0
Infinite Scale 2.0.0-beta.7
root@oC-performance-test-INTEL ~/cdperf # ./scripts/cdperf --k6-scripts=tests/cdperf/issue-github-ocis-1399-share-with-new-user.js --cloud-docker-image=owncloud/ocis:latest@sha256:74fe1bf8b1067842bf0b987373626434ffb530e3829d671f9fb94631288cc435 --cloud-vendor=ocis --k6-test-host=https://localhost:9200 --k6-docker=false
Error: No such volume: ocis-config-k6
=========================================
generated OCIS Config
=========================================
configpath : /etc/ocis/ocis.yaml
user : admin
password : admin
docker.io/owncloud/ocis@sha256:74fe1bf8b1067842bf0b987373626434ffb530e3829d671f9fb94631288cc435: Pulling from owncloud/ocis
Digest: sha256:74fe1bf8b1067842bf0b987373626434ffb530e3829d671f9fb94631288cc435
Status: Image is up to date for owncloud/ocis@sha256:74fe1bf8b1067842bf0b987373626434ffb530e3829d671f9fb94631288cc435
2bbe6f65ea14bcb5e06c36c4cd60274f24e9c15bdf92f5069a0462d71e25763c
waiting for 'ocis' on 'https://localhost:9200'
waiting for 'ocis' on 'https://localhost:9200'
/\ |‾‾| /‾‾/ /‾‾/
/\ / \ | |/ / / /
/ \/ \ | ( / ‾‾\
/ \ | |\ \ | (‾) |
/ __________ \ |__| \__\ \_____/ .io
execution: local
script: /root/cdperf/tests/cdperf/issue-github-ocis-1399-share-with-new-user.js
output: -
scenarios: (100.00%) 1 scenario, 3 max VUs, 1h0m30s max duration (incl. graceful stop):
* default: 3 iterations shared among 3 VUs (maxDuration: 1h0m0s, gracefulStop: 30s)
ERRO[0041] TypeError: Cannot read property 'childNodes' of undefined
running at file:///root/cdperf/tests/cdperf/issue-github-ocis-1399-share-with-new-user.js:1:4080(130)
default at native executor=shared-iterations scenario=default source=stacktrace
ERRO[0041] TypeError: Cannot read property 'childNodes' of undefined
running at file:///root/cdperf/tests/cdperf/issue-github-ocis-1399-share-with-new-user.js:1:4080(130)
default at native executor=shared-iterations scenario=default source=stacktrace
ERRO[0041] TypeError: Cannot read property 'childNodes' of undefined
running at file:///root/cdperf/tests/cdperf/issue-github-ocis-1399-share-with-new-user.js:1:4080(130)
default at native executor=shared-iterations scenario=default source=stacktrace
running (0h00m41.9s), 0/3 VUs, 3 complete and 0 interrupted iterations
default ✓ [======================================] 3 VUs 0h00m41.8s/1h0m0s 3/3 shared iters
✗ users create status is 200
↳ 0% — ✓ 0 / ✗ 3
✓ dav create status is 201
✗ dav create status is 204
↳ 0% — ✓ 0 / ✗ 3
✓ dav upload status is 201
✓ share create status is 200
checks.......................................: 99.60% ✓ 1506 ✗ 6
cloud_default_play_dav_create_error_rate.....: 1 min=1 max=1
cloud_default_play_dav_create_trend..........: avg=265.06ms min=259.76ms med=266.85ms max=268.56ms p(90)=268.22ms p(95)=268.39ms
cloud_default_play_dav_delete_trend..........: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
{ asset:KB10 }.............................: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
cloud_default_play_dav_download_trend........: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
{ asset:KB10 }.............................: avg=0s min=0s med=0s max=0s p(90)=0s p(95)=0s
cloud_default_play_dav_upload_trend..........: avg=80.15ms min=51.53ms med=80.09ms max=200.06ms p(90)=93.4ms p(95)=97.99ms
{ asset:KB10 }.............................: avg=80.15ms min=51.53ms med=80.09ms max=200.06ms p(90)=93.4ms p(95)=97.99ms
cloud_default_play_share_create_trend........: avg=74.62ms min=57.57ms med=75.17ms max=91.12ms p(90)=87.93ms p(95)=89.53ms
cloud_default_play_users_create_error_rate...: 1 min=1 max=1
cloud_default_play_users_create_trend........: avg=399.21ms min=394.72ms med=395.18ms max=407.73ms p(90)=405.22ms p(95)=406.48ms
data_received................................: 940 kB 22 kB/s
data_sent....................................: 16 MB 377 kB/s
http_req_blocked.............................: avg=19.14µs min=1.91µs med=5.47µs max=10.34ms p(90)=6.64µs p(95)=7.31µs
http_req_connecting..........................: avg=603ns min=0s med=0s max=430.86µs p(90)=0s p(95)=0s
http_req_duration............................: avg=81.14ms min=51.53ms med=80.12ms max=407.73ms p(90)=93.77ms p(95)=98.41ms
{ expected_response:true }.................: avg=80.51ms min=51.53ms med=80.11ms max=268.56ms p(90)=93.53ms p(95)=98.23ms
http_req_failed..............................: 0.19% ✓ 3 ✗ 1506
http_req_receiving...........................: avg=93.93µs min=27.36µs med=93.14µs max=914.09µs p(90)=118.31µs p(95)=126.41µs
http_req_sending.............................: avg=126.17µs min=30.89µs med=130.05µs max=511.95µs p(90)=146.52µs p(95)=159.41µs
http_req_tls_handshaking.....................: avg=12.66µs min=0s med=0s max=9.79ms p(90)=0s p(95)=0s
http_req_waiting.............................: avg=80.92ms min=51.33ms med=79.89ms max=407.49ms p(90)=93.56ms p(95)=98.18ms
http_reqs....................................: 1509 36.024807/s
iteration_duration...........................: avg=41.44s min=41.11s med=41.37s max=41.83s p(90)=41.74s p(95)=41.79s
iterations...................................: 3 0.07162/s
vus..........................................: 3 min=3 max=3
vus_max......................................: 3 min=3 max=3
2bbe6f65ea14`
OIDC auth does not use /.well-known/openid-configuration. We should use it to also support eg. Keycloak.
See
cdperf/src/lib/auth/openIDConnect.ts
Lines 21 to 23 in 3b88374
his is about extending the cdperf tooling
Tasks
[ ] create a framework for cdperf ramp-up tests allowing picking from different user personas
[ ] create a bash script to start cdperf parameters
Acceptance criteria
[ ] start cdperf and parse parameters specifing the persona and amount of personas the tests utilize
[ ] create an empty dummy persona (just doing propfinds)
TODOS:
I have attempted to use this repository to run performance tests with out Owncloud 10.1.1 instance but realised the URL path attribute for all testcases is wrong for our installation, our path needs /plus/
prepended to all API requests (eg. download /remote.php/webdav/${path}
=> /plus/remote.php/webdav/${path}
) for it to work.
I'm unsure if this is a common issue or specific to our case, would you accept a PR to include an optional prefix to the path URLs for API calls?
I have attempted using a sharing test with our Owncloud 10.1.1 instance (which already works for create / upload testcases in this repository).
but consistently to receive a 401 Unauthorized
response, even when the headers included a valid Authorization
header (basic auth).
The following was the response body returned:
<?xml version="1.0"?>
<ocs>
<meta>
<status>failure</status>
<statuscode>997</statuscode>
<message>Unauthorised</message>
</meta>
<data/>
</ocs>
Testcase
Share with new user
By comparing the request with that in the Owncloud web user interface, the frontend is also sending the header
OCS-APIREQUEST: true
Once I change share.ts to include this header specifically, and re-compile and re-run, the test passes without any issue.
Is this required to be added to specific endpoints, or at a global level? I'm unsure why this is required in this case and wanted to confirm more details before submitting a PR.
Uploads currently use a simple Webdav PUT request to upload files. All clients use the TUS procotol for uploads, so the cdperf tools should use it, too.
See
Lines 120 to 133 in 3b88374
This issue lists all open and needed steps on the road to 2.0.0.
The roadmap could grow over time, no concrete release date so far.
not sure what else is needed since the testing starts in the near future and we have to see whats missing or not... roadmap could extend depending on the results.
I ran login test with 100 vus using this command in readme:
docker run -e BASE_URL=https://cloud-domain.org:80 -e PLATFORM=ownCloudServer -e AUTH_ADAPTER=basicAuth -e ADMIN_LOGIN=main -e ADMIN_PASSWORD=secret --rm -i grafana/k6 run --vus 100 - < artifacts/koko-010-login.js
But I got this error about K6 timedout:
"level=error msg="setup() execution timed out after 60 seconds" hint="You can increase the time limit via the setupTimeout option"
Could you please fix this with timed out configuration ?
I also try to modified 010-login.ts
file but don't know how to build that TS file in to JS file looks like the file in artifact
folder.
Thanks!
For testing ocis we need more realistic user models that present an actual workflow a user would do.
These users need to be integrated into: #27
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.