我想对我的软件进行压力测试。我有多个具有不同运行时间的测试用例。
目前,我正在运行具有所需选项的压力实用程序,并在另一个终端中运行测试用例。一旦测试用例结束,我就用 ctr+C 终止压力过程。
现在,我想创建一个脚本,该脚本将运行压力实用程序,然后运行测试用例,并且应该能够在测试用例结束后终止压力进程。
我现在有一个解决方法,可以解决压力问题,即 --timeout 选项。所以我运行如下:
stress -c 16 --timeout 3600
./runme //Testcase script
一小时后,压力实用程序完成。但上述解决方法存在以下问题,即 ./runme 可能需要 1 分钟到 2-3 小时的时间。所以我不能提前设置超时值。
请建议一种方法来处理这个问题。
答案1
stresser
在后台运行你的程序并注意它pid
稍后将用于杀死它。现在开始您testcases
的foreground
.完成后testsuites
,你继续杀死现在stresser
:
stress -c 16 & #<--- note no timeoutoption given and assuming now it runs forever
pid_stress=$!
./rune //Testcases script
kill -9 "$pid_stress"