我正在使用 TestNG 运行测试,但我想动态限制测试服务器上的负载。 为此,我想在运行时验证我没有每秒向服务器发送超过 X 个请求,如果我在上面,则让线程 hibernate 。
我的问题是:如何获取运行时的线程数?
我正在查看 ITestContext,但它似乎不存在。
最佳答案
在您正在运行的 TestNG 标记测试中,Thread.activeCount() 会为您提供当前 TestNG 组中的线程数。如果你的threadPoolSize设置为1,那么这个数字就是1。如果你的threadPoolSize大于1,那么这个数字就是threadPoolSize + 1,因为除了pool size之外还有一个TestNG manager thread。对于您动态创建的线程,您需要构造它们并传入您的 TestNG ThreadGroup。示例:
Thread aNewWorkerThread = new Thread( Thread.currentThread().getThreadGroup(), yourRunnableThingHere );
这些线程在处于 Activity 状态时应反射(reflect)在您的 Thread.activeCount() 返回值中。
关于java - 如何在运行时获取 TestNG 线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534140/