`
flysnowxf
  • 浏览: 577672 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java并发测试用例模板

    博客分类:
  • Java
阅读更多
这里申请了1000个线程,并且执行1000次任务。当所有任务完成后,main退出。
public class Test {
     public static void main(String[] args) {
          int count = 1000;
          ExecutorService executorService = Executors.newFixedThreadPool(count);
          for (int i = 0; i < count; i++)
               executorService.execute(new Test().new Task());

          executorService.shutdown();
          while (!executorService.isTerminated()) {
               try {
                    Thread.sleep(10);
               } catch (InterruptedException e) {
                    e.printStackTrace();
               }
          }
     }

     public class Task implements Runnable {

          @Override
          public void run() {
               try {
                    // 测试内容
               } catch (Exception e) {
                    e.printStackTrace();
               }
          }
     }
}
如果要实现真正的并发同时执行,可通过CyclicBarrier来控制。
public class Test {
     public static void main(String[] args) {
          int count = 1000;
          CyclicBarrier cyclicBarrier = new CyclicBarrier(count);
          ExecutorService executorService = Executors.newFixedThreadPool(count);
          for (int i = 0; i < count; i++)
               executorService.execute(new Test().new Task(cyclicBarrier));

          executorService.shutdown();
          while (!executorService.isTerminated()) {
               try {
                    Thread.sleep(10);
               } catch (InterruptedException e) {
                    e.printStackTrace();
               }
          }
     }

     public class Task implements Runnable {
          private CyclicBarrier cyclicBarrier;

          public Task(CyclicBarrier cyclicBarrier) {
               this.cyclicBarrier = cyclicBarrier;
          }

          @Override
          public void run() {
               try {
                    // 等待所有任务准备就绪
                    cyclicBarrier.await();
                    // 测试内容
               } catch (Exception e) {
                    e.printStackTrace();
               }
          }
     }
}
分享到:
评论
3 楼 flysnowxf 2014-05-26  
shibin_1109 写道
10-16行为什么要让没有执行完的线程睡眠呢?找了好久不理解为什么?还有那个Thread是正在执行的线程么?


很久没来这里了,不好意思。在main函数这个Thread中,Thread.sleep(10)指的就是这个main进程。executorService是异步执行任务的,如果不通过executorService.isTerminated()来休眠main进程,那么1000个Task任务都没有执行完,main就先执行完了然后关掉了整个程序。你去掉while那段代码试试,你会发现刚运行然后程序就结束了。
2 楼 shibin_1109 2014-03-31  
10-16行为什么要让没有执行完的线程睡眠呢?找了好久不理解为什么?还有那个Thread是正在执行的线程么?
1 楼 xuhang1128 2013-07-23  
good!

相关推荐

    软件测试用例模板一详细用例(经典)

    ### 软件测试用例模板详解 #### 一、文档基本信息 - **用例编号**:`TestCase_LinkWorks_WorkEvaluate` - **项目名称**:`LinkWorks` - **模块名称**:`WorkEvaluate模块` - **项目承担部门**:研发中心-质量管理...

    loadrunner性能测试用例模板

    总结来说,“loadrunner性能测试用例模板”提供了一个结构化的框架,帮助测试团队规范性能测试过程,确保测试的全面性和准确性。使用该模板,可以有效地规划和执行性能测试,从而找出系统的性能短板,优化系统设计,...

    jpa测试用例(很详细的介绍)

    - 负载测试,模拟大量并发请求,观察JPA在高负载下的表现。 5. **异常处理** - 测试JPA如何处理数据库异常,如UniqueConstraintViolationException(唯一约束违反异常)或OptimisticLockingFailureException...

    testng测试报告模板BeautifulReport.7z

    TestNG是一款功能强大的Java测试框架,它为开发者提供了灵活的注解、测试配置、执行模型以及丰富的报告选项。"testng测试报告模板BeautifulReport.7z"是一个包含资源的压缩包,专门用于自定义TestNG测试执行后的报告...

    orientdb-test:东方高并发大提交测试用例

    **东方高并发大提交测试用例 - OrientDB与Java** OrientDB是一款开源的多模式数据库管理系统,支持图、文档、键值等多种数据模型。在处理高并发和大数据量的场景下,数据库性能的测试至关重要,以确保系统稳定性和...

    测试工程师简历模板.docx

    3. **自动化测试**:精通Java和Python语言进行UI自动化测试,能够搭建自动化测试环境,编写测试脚本并跟踪Bug。 4. **接口调试**:熟悉Fiddler和Postman这两个接口调试工具,能有效地进行接口测试和调试。 在...

    C++、JAVA+、C软件测试面试题

    2. **多线程**:设计并发测试用例,检验线程安全性和同步机制的有效性。 3. **异常处理**:同样需要关注异常的捕获和处理,以及如何编写健壮的异常测试。 4. **反射API**:测试代码利用反射进行动态操作,确保安全和...

    随便记录,基于springboot的java游戏服务器基础模板已测试

    4. `src/test/java`:测试代码目录,包含JUnit测试用例。 5. `.gitignore`:定义了版本控制系统应忽略的文件和目录。 6. `LICENSE`:项目许可文件,规定了他人可以如何使用和分发该项目的条款。 通过这些组件,...

    2021年全国职业院校技能大赛高职组软件测试赛项竞赛任务书.docx

    本任务要求参赛选手设计功能测试用例,按照《A3-功能测试用例模板》完毕功能测试用例文档。 (三)执行功能测试 本任务要求参赛选手执行功能测试,按照《A4-功能测试Bug缺陷报告清单模板》完毕功能测试Bug缺陷报告...

    jcstress 线程测试工具

    它提供了丰富的测试用例模板,允许开发者创建自定义的并发测试,以确保程序在多线程环境下的正确性和性能。 1. **并发问题**:jcstress帮助识别的问题类型包括: - **竞态条件**:当多个线程访问同一资源且至少有...

    IV-Functional-Tests:图像验证的功能测试用例

    开发者可以按照这个模板创建自己的测试用例,或者直接运行现有的测试用例来验证自己的图像验证系统。 6. JUnit与测试框架:在Java中,JUnit是最常用的单元测试框架,用于编写和运行可重复的测试。TestNG是另一个...

    java技术白皮书模板.doc.zip

    9. 测试策略:介绍测试框架、用例设计和测试结果,确保产品的质量。 10. 附录:可能包含参考资料、技术术语解释或其他补充信息。 三、Java技术的应用 1. Java基础:Java作为多平台的编程语言,其面向对象的特性、...

    Google-Code-Jam-Template:一个包含使用示例的 Java 模板,用于快速设置 Google Code Jam 问题的输入、输出和测试用例

    这个“Google-Code-Jam-Template”就是为这个目的而设计的,它是一个用Java编写的模板,包含了输入、输出以及测试用例的处理。 首先,让我们深入了解一下Java在处理GCJ问题时的一些关键知识点: 1. **输入处理**:...

    java、c++、软件测试面试题

    7. **测试文档**:编写测试计划、测试用例、测试报告等重要文档的能力。 以上是根据提供的标题和描述,结合标签内容整理出的Java、C++和软件测试的主要面试知识点。对于每个知识点,都需要深入理解并能够实际应用,...

    基于springboot的java游戏服务器基础模板.zip

    10. **单元测试和集成测试**:SpringBoot支持JUnit和Mockito等测试框架,便于编写和执行测试用例,确保代码质量。 压缩包中的文件可能包括了源码文件、配置文件、资源文件等,如pom.xml(Maven配置文件)、...

    基于Appium的Android自动化框架AppiumAir设计源码

    该框架允许测试用例按模块划分和顺序执行,支持连续执行多个测试用例而无需重启APP。测试失败时自动截图、录制视频并收集错误信息,以高亮方式显示在列表中,并提供了全新的报告模板,内容详尽且样式新颖。手机连接...

    性能测试模板.zip

    性能测试是IT行业中一个至关重要的环节,特别是在企业级应用中,确保系统在高负载和大量用户并发时仍能...模板通常包括详细的测试计划、测试用例、指标定义、执行步骤以及结果分析指南,为测试工作提供了清晰的路径。

    基于Java实现的基于模板的网页结构化信息精准抽取组件。.zip

    3. **测试文件**:用于验证组件功能的正确性和性能的测试用例。 4. **日志文件**:记录组件运行时的事件和错误,方便调试和优化。 5. **文档**:可能包含使用说明、设计文档和技术细节,帮助用户理解组件的运作...

    软件测试报告-大作业-图片服务器项目。

    在性能测试环节,LoadRunner被用来模拟多用户并发访问,评估系统在高负载下的表现。学生需录制性能测试脚本,设计测试场景(如controller),并分析测试结果,理解系统的响应时间、吞吐量和资源利用率等关键指标。...

Global site tag (gtag.js) - Google Analytics