Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akiomik/xk6-nostr
An xk6 extension for nostr
https://github.com/akiomik/xk6-nostr
k6 k6-extension load-testing nostr xk6
Last synced: 22 days ago
JSON representation
An xk6 extension for nostr
- Host: GitHub
- URL: https://github.com/akiomik/xk6-nostr
- Owner: akiomik
- License: apache-2.0
- Created: 2023-10-17T11:50:46.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-10T09:47:37.000Z (5 months ago)
- Last Synced: 2024-07-30T21:05:34.134Z (4 months ago)
- Topics: k6, k6-extension, load-testing, nostr, xk6
- Language: Go
- Homepage: https://bolt.fun/project/xk6-nostr
- Size: 43.9 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xk6-nostr
A load testing extension for [Nostr](https://nostr.com) using [k6](https://k6.io).
## Build
1. Download `xk6`:
```bash
go install go.k6.io/xk6/cmd/xk6@latest
```2. Build the k6 with extension:
```
xk6 build --with github.com/akiomik/xk6-nostr@latest
```## Development
### Build
```bash
make build
```### Testing
```bash
make test
```### Execute example scripts
```bash
# NOTE: k6 is built with `make build`
./k6 run --vus 5 --duration 1m examples/publish.js
```## Examples
You can find more examples in [examples/](https://github.com/akiomik/xk6-nostr/tree/main/examples).
```javascript
import nostr from 'k6/x/nostr';
import event from 'k6/x/nostr/event';
import { check } from 'k6';const relay = nostr.relayConnect("ws://127.0.0.1:7777");
const sk = nostr.generatePrivateKey();export default function () {
const now = Math.round(new Date().getTime() / 1000);
const ev = event.sign({ content: Math.random(), kind: 1, created_at: now }, sk);
const status = relay.publish(ev);
check(status, { 'status is success': (s) => s.string() === 'success' });
}export function teardown() {
relay.close();
}
```