Expand description
Library part of iapyx which serves as a core lib for this testing CLI wallet. Idea behind split was to enable api interface for integration tests without spawning CLI process but directly operates on API level
Modules
Structs
- Struct responsible to simulate real user calls send to Catalyst Backend. It uses combination of request generators with given proportions defined in settings. The idea is that if properly configured it can simulate REST API calls which will be generated from user using mobile apps. Usually users can be divided in 3 categories:
- Responsible for all wallet operations from voting to retrieving information about proposals or voting power
- Builder for wallet controller
- Responsible for controlling more than one wallet at one time. Useful for load scenario or wallets which handles many users
- Load scenario for node only calls. It uses
WalletRequestGen
orBatchWalletRequestGen
based on configuration of requests per step setting. - Node Load configuration struct. It defines all aspects of load run.
- Servicing station load scenario. Basically responsible for generating load on static resources. All calls are read only, therefore logic is simple and no need to track state of state.
- Responsible for providing information about status for given ids collection. It can work over a batch of ids by preparing request to Jormungandr V1 REST Api. Basically it query statues for given ids and prepare
Status
struct for each id - Wallet object, which wraps struct from chain-wallet-libs project in order to preserve production behavior for wallet. One addition to that struct is a cache of recently send transaction which needs to be “confirmed” to remove any data which enable track them in blockchain
- Vote request generator. Implements
RequestGenerator
interface which incorporates generator to load testing framework. Responsibility is to keep track of wallets under tests and prepare each time valid vote transaction whenever asked. There are two challenges:
Enums
- Generator errors
- Builder errors
- Controller related Errors
- Errors for
MultiController
- Errors for node load
- Servicing station errors
- Wallet error