Senior QA Engineer Task
Senior QA Engineer Task
Senior QA Engineer Task
Your task is to create a test suite for the JSON-RPC API of the Nethermind Ethereum client. After completing the task, establish a private
GitHub repository and invite the following members:
kamil@nethermind.io
wojciech.zieba@nethermind.io
daniel@nethermind.io
Note that go must be installed on the machine prior to running the above commands.
Consult the Sedge documentation: https://docs.sedge.nethermind.io/ for more information.
4. Run Sedge tool using the provided commands to generate the necessary environment for testing.
5. Ensure client synchronization completed by creating a JSON-RPC call within the GitHub action that verifies the eth_syncing call
returns “false”. (https://docs.nethermind.io/nethermind/ethereum-client/json-rpc/eth#eth_syncing).
Retrieve the chain head from a synced node using the eth_blockNumber API call.
(https://docs.nethermind.io/nethermind/ethereum-client/json-rpc/eth#eth_blocknumber).
Obtain block details using the eth_getBlockByNumber endpoint.(https://docs.nethermind.io/nethermind/ethereum-client/json-
rpc/eth#eth_getblockbynumber).
Ensure the response is not empty, contains block data, and is free of error information.
Prepare additional relevant scenarios.
Execute the getBlockByNumber endpoint for a selected block head (always using the same block number consistently).
Assess endpoint behavior when executed 1,000 and 10,000 times with different levels of parallelism, simulating high load by
multiple users on public JSON-RPC API.
Prepare a report based on the results.
Test 3: Test Suite Extension for Selected Endpoint
For any chosen JSON-RPC endpoint from the Nethermind documentation, prepare additional scenarios (both verification and
performance tests). https://docs.nethermind.io/nethermind/ethereum-client/json-rpc
During the preparation of the solution, ensure readability, reusability, and performance. If possible, make it easy to switch between
verification and performance scenarios.
You can use any programming language and tools. Ensure that each scenario can be executed by GitHub Action(s).
Also please create a Readme.md file in Your solution where you can put any important informations about implementation details,
possible improvements which can be applied but will require more time and any testing reports (you can include performance report in
there also).