mirror of
https://github.com/nspcc-dev/xk6-neofs.git
synced 2026-03-01 04:29:30 +00:00
No description
|
|
||
|---|---|---|
| .github | ||
| examples | ||
| internal | ||
| scenarios | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| neofs.go | ||
| README.md | ||
k6 extension to test and benchmark NeoFS related protocols.
xk6-neofs
Build
To build a k6 binary with this extension, first ensure you have the prerequisites:
- Go
- Git
- Clone this repository
git clone github.com/nspcc-dev/xk6-neofs
cd xk6-neofs
- Install
xk6framework for extendingk6:
make install_xk6
- Build the binary:
make build
- Run k6:
./xk6-neofs run test-script.js
API
Native
Create native client with connect method. Arguments:
- neofs storage node endpoint
- hex encoded private key (empty value produces random key)
- dial timeout in seconds (0 for the default value)
- stream timeout in seconds (0 for the default value)
import native from 'k6/x/neofs/native';
const neofs_cli = native.connect("s01.neofs.devenv:8080", "", 0, 0)
Methods
putContainer(params). Theparamsis a dictionary (e.g.{acl:'public-read-write',placement_policy:'REP 3',name:'container-name',name_global_scope:'false'}). Returns dictionary withsuccessboolean flag,container_idstring, anderrorstring.setBufferSize(size). Sets internal buffer size for data upload and download. Default is 64 KiB.put(container_id, headers, payload). Returns dictionary withsuccessboolean flag,object_idstring, anderrorstring.get(container_id, object_id). Returns dictionary withsuccessboolean flag, anderrorstring.onsite(container_id, payload). Returns NeoFS object instance with prepared headers. Invokeput(headers)method on this object to upload it into NeoFS. It returns dictionary withsuccessboolean flag,object_idstring anderrorstring.
S3
Create s3 client with connect method. Arguments:
- s3 gateway endpoint
Credentials are taken from default AWS configuration files and ENVs.
import s3 from 'k6/x/neofs/s3';
const s3_cli = s3.connect("http://s3.neofs.devenv:8080")
You can also provide additional options:
import s3 from 'k6/x/neofs/s3';
const s3_cli = s3.connect("http://s3.neofs.devenv:8080", {'no_verify_ssl': 'true', 'timeout': '60s'})
no_verify_ss- Bool. Iftrue- skip verifying the s3 certificate chain and host name (useful if s3 uses self-signed certificates)timeout- Duration. Set timeout for requests (in http client). If omitted or zero - timeout is infinite.
Methods
createBucket(bucket, params). Returns dictionary withsuccessboolean flag anderrorstring. Theparamsis a dictionary (e.g.{acl:'private',lock_enabled:'true',location_constraint:'ru'})put(bucket, key, payload). Returns dictionary withsuccessboolean flag anderrorstring.get(bucket, key). Returns dictionary withsuccessboolean flag anderrorstring.
Examples
See native protocol and s3 test suit examples in examples dir.