1
- # 🤖 Stress bot
1
+ # 🤖 XMTP Stress Bot
2
2
3
3
A lightweight toolkit for app developers to test messaging functionality against XMTP bots.
4
4
5
- ### Prerequisites
5
+ ## 📋 Prerequisites
6
6
7
7
- Node.js (20.18.0)
8
8
- Yarn
9
9
10
- ### Installation
10
+ ## 🔧 Installation
11
11
12
12
``` bash
13
13
git clone https://github.com/xmtp/xmtp-qa-testing
14
14
cd xmtp-qa-testing
15
15
yarn install
16
+
16
17
# Run the bot
17
18
yarn bot:stress
18
19
```
@@ -29,50 +30,52 @@ yarn bot:stress
29
30
Create a ` .env ` file with the following configuration:
30
31
31
32
``` bash
32
- LOGGING_LEVEL=" off" # off, error, warn, info, debug, trace
33
- XMTP_ENV=" dev" # dev, production
34
- OPENAI_API_KEY=" sk-proj-..." # OpenAI API key
33
+ LOGGING_LEVEL=" off" # Options: off, error, warn, info, debug, trace
34
+ XMTP_ENV=" dev" # Options: dev, production
35
+ OPENAI_API_KEY=" sk-proj-..." # OpenAI API key
35
36
```
36
37
37
- ## 🧪 Considerations
38
+ ## 🧪 Worker Behavior
38
39
39
- - If a worker does not exist, its keys are created.
40
- - If worker exists uses the existing env file keys and .data folder
41
- - If the data folder doesnt exist, it creates one
42
- - Workers prefixed with "random" have keys that are stored only in memory.
40
+ - New workers have their keys automatically created
41
+ - Existing workers use their stored keys from the env file and .data folder
42
+ - If the data folder doesn't exist, one is created automatically
43
+ - Workers prefixed with "random" have keys that are stored only in memory
43
44
44
- ## Test Environment
45
+ ## 📱 Test Environment Specification
45
46
46
- - Device: [ iPhone 16 Pro Max]
47
- - Network: [ Wifi]
48
- - XMTP Environment: [ dev]
49
- - App Version: [ 1.0.0]
47
+ | Parameter | Value |
48
+ | ---------------- | ----------------- |
49
+ | Device | iPhone 16 Pro Max |
50
+ | Network | WiFi |
51
+ | XMTP Environment | dev |
52
+ | App Version | 1.0.0 |
50
53
51
- ## Stress Test Verification Matrix
54
+ ## 🔍 Stress Test Verification Matrix
52
55
53
56
| Test Scenario | Workers | App Launch | Message Loading | UI Performance | Stream Status | Message Sending | Status | Notes |
54
57
| ------------- | ------- | ---------- | --------------- | -------------- | ------------- | --------------- | ------ | ----- |
55
- | Light Load | 5 | < 2s | Instant | No Lag | Connected | Instant | ❌ | |
56
- | Medium Load | 10 | < 3s | < 1s | Minimal Lag | Connected | < 1s | ❌ | |
57
- | Heavy Load | 20 | < 4s | < 2s | Acceptable | Connected | < 2s | ❌ | |
58
- | Extreme Load | 50 | < 5s | < 3s | Responsive | Connected | < 3s | ❌ | |
58
+ | Light Load | 5 | < 2s | Instant | No Lag | Connected | Instant | ⬜ | |
59
+ | Medium Load | 10 | < 3s | < 1s | Minimal Lag | Connected | < 1s | ⬜ | |
60
+ | Heavy Load | 20 | < 4s | < 2s | Acceptable | Connected | < 2s | ⬜ | |
61
+ | Extreme Load | 50 | < 5s | < 3s | Responsive | Connected | < 3s | ⬜ | |
59
62
60
- ## Legend
63
+ ## 🔑 Legend
61
64
62
65
- ⬜ Not Tested
63
66
- ✅ Passed
64
67
- ❌ Failed
65
68
- ⚠️ Partial Pass
66
69
67
- ## Test Execution Log
70
+ ## 📝 Test Execution Log
68
71
69
72
| Date | Tester | Environment | Notes |
70
73
| ---- | ------ | ----------- | ----- |
71
74
| | | | |
72
75
73
- ### Resources
76
+ ## 📂 Project Structure
74
77
75
- - ** Local:** Work in local network with [ dev section ] ( /dev/ )
76
- - ** Workers:** Predefined workers like ` bob ` , ` alice ` , ` randomguy ` with [ workers] ( /workers/ )
77
- - ** Helpers:** Utility functions in the [ helpers section ] ( /helpers/ )
78
- - ** Scripts:** Automation scripts in the [ scripts section ] ( /scripts/ )
78
+ - ** Local:** Working in local network with resources in the [ dev] ( /dev/ ) directory
79
+ - ** Workers:** Predefined workers like ` bob ` , ` alice ` , ` randomguy ` in the [ workers] ( /workers/ ) directory
80
+ - ** Helpers:** Utility functions in the [ helpers] ( /helpers/ ) directory
81
+ - ** Scripts:** Automation scripts in the [ scripts] ( /scripts/ ) directory
0 commit comments