追求代码质量 - 用JUnitPerf进行性能测试 - 编程入门网
即 迫使测试失败 。否则,测试样例将完整运行,然后失败。区别很微妙:在一个失败的样例中, 不带可选标志运行测试可以帮您了解运行总时间。传入 false 值却意味着得不 到运行总时间。
例如,在清单 2 中,我在运行 testCreate() 时设定了一个两秒钟的上限。 如果执行总时间超过了这个时间,测试样例将失败。由于我并未传入可选的 boolean 参数,该测试将完整运行,而不管运行会持续多久。 清单 2. 为生成 TimedTest 而实现的 suite 方法
此测试通常在 JUnit 框架中运行 —— 现有的 Ant 任务、Eclipse 运行器 等等,会像运行任何其他 JUnit 测试一样运行这个测试。惟一的不同是,该测 试将发生在计时器的上下文中。 过度的负载测试 与在测试场景中验证一个方法(或系列方法)的时间限制正好相反, JUnitPerf 也方便了负载测试。正如在 TimedTest 中一样,JUnitPerf 的 LoadTest 也像装饰器一样运行,它通过将 JUnit Test 和额外的线程信息绑定 起来,从而模拟负载。 使用 LoadTest,可以指定要模拟的用户(线程)数量,甚至为这些线程的启 动提供计时机制。JUnitPerf 提供两类 Timer:ConstantTimer 和 RandomTimer 。通过为 LoadTest 提供这两类计时器,可以更真实地模拟用户负载。如果没有 Timer,所有线程都会同时启动。 清单 3 是用 ConstantTimer 实现的含 10 个模拟用户的负载测试: 清单 3. 为生成负载测试而实现的 suite 方法
请注意,testCreate() 方法运行 10 次,每个线程间隔 100 毫 秒启动。未设定时间限制 —— 这些方法完整运行,如果其中任何的 方法执行失败,JUnit 会相应地报告失败。 追求代码质量 - 用JUnitPerf进行性能测试(3)时间:2010-12-10 IBM Andrew Glover用样式进行装饰 装饰 器并不局限于单个的装饰物。例如,在 Java™ I/O 中,可以为 FileInputStream 装饰上一个带 BufferedReader 的 InputStreamReader(只要 记住:BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("infilename"), "UTF8")))。 装饰可以有多个层次,JUnitPerf 的 TimedTest 和 LoadTest 也是一样。当 这两个类彼此装饰时,将导致一些强制的测试场景,例如像这样的场景:在一项 业务中放置了负载并应用了时间限制。或者,我们可以仅仅将之前的两个测试场 景以如下方式结合起来: 在 testCreate() 方法中放置一项负载。 规定每个线程必须在该时间限制内结束。 我通过为一个标准 Test 装饰上 LoadTest(由 TimedTest 装饰)应用了上述规范,清单 4 显示了 其结果。 清单 4. 经装饰的负载和时限测试
正如您所看到的那样,testCreate() 方法运行 10 次(每隔 100 毫秒启动 一个线程),且每个线程必须在 2 秒内完成,否则整个测试场景将失败。 使用注意 尽管 JUnitPerf 是一个性能测试框架, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |