java - 如何在运行时获取 TestNG 线程数

标签 java multithreading testng

我正在使用 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/

相关文章:

java - 将图标添加到 JList 项目

java - 分配 AsyncTask 返回的值

c++ - 如何检测错误共享会降低性能?

ant - 在没有 testng.xml 文件的情况下运行 testng

java - Eclipse TestNG java.lang.AssertionError

java - 如何在 POJO 类中存储 TestNG 数据提供程序值

java - 我怎样才能完成这个 stateQuiz.java 程序

java - 你将如何处理重写方法的异常

java - 如何使用户输入与变量相关?

java - 在单核处理器上使用并行流会比使用顺序流慢吗?