Test your app
Be sure to test your app before launching.
Test cases
Here's a list of recommended test cases.
Be sure to test using different devices (mobile, desktop), browsers, window sizes, and inbox sizes.
Wallet connection
- Connect your preexisting wallet
- Connect a new wallet using “get a wallet” functionality
- Disconnect your wallet
- Reconnect your wallet after disconnection
Identity resolution
- Verify that your ENS domain appears
- Verify that your ENS avatar appears
- Verify that your recipient’s ENS domain appears
- Verify that your recipient’s ENS avatar appears
Messaging
- Start a new conversation with an 0x address as the recipient
- Start a new conversation with an ENS address as the recipient
- Send a short message (<10 characters)
- Send a medium message (<200 characters)
- Send a long message (>200 characters)
- Receive a short message (<10 characters)
- Receive a medium message (<200 characters)
- Receive a long message (>200 characters)
- Scroll through the conversation list
- Scroll through a conversation
Need an address to message? See Use test message bots and addresses
Performance
Test your app's performance against these performance benchmarks.
Start by creating a test wallet with ~2,000 conversations and 1,000 messages per conversation. Run the following performance tests:
- For a cold start (first load):
- Test that the app is interactive in <15 sec
- For a warm cache (subsequent loads and refreshes):
- Test that the app is interactive in <1 sec
- Sender UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second
- Recipient UX: Time between sending a message and displaying the message in the conversation thread: ≤1 second
Create a test wallet
It's important to test your app's performance when handling a wallet address with more than just a few conversations and messages. To do this, you can use the xmtp-debug
repo to easily populate a test wallet with X number of conversations, each with Y number of messages, on the XMTP network of your choice.
Get a test wallet address.
Run
git clone https://github.com/xmtp/xmtp-debug.git
.Run
cd xmtp-debug
.Run
npm i
.Run
npm start -- --env=dev fill-conversation-list $TEST_WALLET_ADDRESS $NUM_CONVERSATIONS $NUM_MESSAGES_PER_CONVERSATION
.For example, run
npm start -- --env=dev fill-conversation-list 0x78b97401850c335abf936C41F4D7a38A2F92D1D2 500 1
to populate test wallet0x78b97401850c335abf936C41F4D7a38A2F92D1D2
with 500 conversations, each with 1 message, on the XMTPdev
network.
Populating test wallets might cause you to hit the XMTP network rate limit. If this happens, wait 5 minutes and try again.
Use test message bots and addresses
If helpful for testing, you can create your own message bot, such as gm.yourappname.eth
, using ChainJet or the XMTP Bot Starter. You can use the message bot to receive and send test messages.
If needed, you can also use these addresses for testing:
gm.xmtp.eth (0x937C0d4a6294cdfa575de17382c7076b579DC176)
Message this XMTP message bot to get an immediate automated reply.
hi.xmtp.eth (0x194c31cAe1418D5256E8c58e0d08Aee1046C6Ed0)
Message the XMTP Labs team and a human will reply, though not as quickly as gm.xmtp.eth! 🤖