How to simulate the failure of elasticsearch?

I found that for some simple failures, I can do it easily with the help of tools, such as network partitioning, nodes being killed, but there are still many abnormal cases that are not good to simulate, for example, there are many cases where the slice of elasticsearch cannot be assigned, and I want to simulate each kind of case that cannot be assigned, it is rather troublesome, is there any ready-made tool for simulating abnormalities to help me do this?