I have been working on Openwrt devices that we heavily modify for our purpose & setup at their client location.
We have started to spend time setting up a testbed which could stress test our routers (& newer versions of it) with the actual work that a network client does - connect with the router (DHCP), do network jobs like downloading/uploading data, disconnect & go away. All these network clients are inside a PC & I do not want an 'expensive docker/VM' setup. All these clients should be able to run on command line or through a bash script that fires multiple of them.
A good start point that I have identified is https://github.com/saravana815/dhtest . This small piece of code can test DHCP server of our router running from the PC. Multiple of these can be fired simultaneously.
I also looked at https://github.com/saminiir/level-ip which does TCP-IP job from command line but I could not figure out an easy way to extend dhtest with this.
In final setup - I should be able to create a text file with each line as a task. Something like
When a network client is spawned, it should first obtain IP address through DHCP (which is what dhtest is doing), then start following the file to do the job one by one. All job completion should be logged in completion.log with time taken to complete the job. Any error (during dhcp or file download/upload case) should be logged in error.log with the error reason.
Please ensure that multiple of these programs could be launched simulatenously & they should obtain their own IP address & do the job listed in the file independently.
Bonus: If you are able to also create a provision of writing a wrapper script that takes number of clients to be launched & then launches them in background- that would be bonus. That plus if you able to do this whole project within 3 days, I am willing to throw in additional $25. Please note, 3 days is not the first turn-around. You should ideally be able to wind it all up within a day or max 2. 3rd day is kept for testing & reporting any issue.