测试路上,温和的坚持着,并且微笑...... 测试路上,我正在为下一个目标努力着,已经有近两年测试工作经验的我,每每看到测试工程师的职场规划,让我深刻的感悟到,要想让自己热爱的测试道路越走越宽,需要实践与理论结合,用理论规范实践,使实践更专业化;信息化时代,更加需要资源共享,思想交流,而我所学也来源于互联网上的前辈们,兄弟姐妹们. 所以在这个繁忙的工作学习里,在这个不断给自己充电的时间里,将自己的所学,所得,所感用博客的方式展现给大家,感谢在测试路上帮助过我的人,也希望能给需要帮助的人尽点微薄之力......

软件测试工具介绍

上一篇 / 下一篇  2008-08-12 21:42:52 / 个人分类:测试工具

p-unit 简介

   p-unit 是一款开放源码的性能测试框架,和 JUnit 不同,JUnit 关注的是测试案例的正确性,而 p-unit 不仅关注测试案例的正确性,还收集测试案例的性能参数,默认情况下,p-unit 收集测试案例的时间和内存消耗情况,可以产生文件,图片,和 PDF 格式的报表。此外,p-unit 还支持参数化测试,多线程测试以及不同 Java 虚拟机性能之间的比较。

  或许我们已经习惯了使用 JUnit 来写单元测试来保证代码质量(我也一直这么做),但可能经常碰到这样的问题:程序多线程下正确性如何? 如何测试程序的性能? 当有多个方案可以选择时,技术上如何比较不同方案的性能?
 
  对于问题 1,我们或许听天由命?或是凭借人工分析,或是根据用户反馈?很多软件单线程下的单元测试覆盖率相当高,从而保证了代码的健壮性。然而多线程测试时常被忽略,这并不代表多线程测试不重要,相反,修正一个用户报告的多线程 BUG 往往比单线程的要高出很多,因为测试案例经常不是 100% 可重现的。这更要求程序员在开发阶段充分的重视。目前多线程单元测试力度不够的一个重要原因是没有一个像 JUnit 那样易用的测试工具,另外重复写测试案例往往不被程序员接受。
 
  对于问题 2,一个成熟的关心性能的产品往往有一个性能测试平台。这个测试平台应该关注的是测试业务逻辑本身,而无需关心如何运行测试案例。你是否为写这样的测试平台痛苦过?以及花费时间在产生一些直观的报表上面?
 
  对于问题 3,我们往往写一个原型来比较不同产品之间的性能,如何比较执行速度和内存消耗?或是选择最适合你的虚拟机?
 
  p-unit 就是这么一款开源的性能测试软件,它能帮助你很好的解决上述问题。p-unit 可以: 多线程支持:同一个测试案例可以单线程执行,也可以多线程执行,测试案例开发者只需写一套测试案例。 参数化测试案例:很多测试案例,需要测试同一功能在不同数量级上的性能表现。 不同虚拟机性能测试:只需指定虚拟机路径,即可测试同一个测试案例在不同虚拟机上的表现,报表上可以非常直观显示性能差别。 事件机制构架:punit 是基于事件机制构架的,如果用户想定制报表,只需实现事件响应器,并注册该响应器到 punit 核心即可。


  多线程执行测试案例

    在了解如何多线程执行测试案例之前,我们先了解一下如何利用 p-unit 单线程执行测试案例。不同于 JUnit, p-unit 测试用例无需继承任何测试类或是实现接口,即可执行 test 开始的方法。尽管 JUnit 4 中加入了注释(Annotation) 的特性,但测试方法前缀为 "test" 仍然是测试者们的首选。因此如果你的 JUnit 测试案例遵循的是 test 命名规则,那么 p-uni t可以兼容运行 JUnit 测试案例。

  
StressMark 简介  

   StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。
 
   我们可以利用StressMark软件完成的典型测试任务包括:

       1. 在多线程环境下测试一个软件模块、一段关键算法是否可以正确运行,即代码是否是多线程安全的。 

       2. 测试一个软件模块、一段关键算法在并发执行时的效率,如每个线程的平均执行时间等。
 
       3. 模拟一个服务程序的多个客户端,测试该服务程序对并发请求的响应是否正确。
 
       4. 模拟一个服务程序的多个客户端,测试该服务程序在并发请求的情况下,对每个客户请求的响应效率。
 
       5. 使用一台或多台高配置的测试计算机(多CPU,大内存),每台计算机上运行一套StressMark,每套StressMark模拟多个客户线程,以此测试服务程序在大压力情况下的响应能力,这一方法甚至可以测出服务程序支持的并发数上限。
 
    因为StressMark软件的源代码是完全开放的,基于这套源代码,你完全可以改造出符合你的特定需求的自动测试程序,使StressMark可以完成更多的测试任务。
基本概念

       测试包:用户根据特定测试需求制订的,包含一个或多个不同测试用例及其配置方式的描述性大纲。
 
       测试用例:指对一项特定的测试任务的描述,包括测试目标,输入数据,测试方法,实现代码等。在 StressMark 中,测试用例对应于一段具体的待测试代码,该测试代码由测试者提供,并被嵌入到 StressMark 工程中。测试时,可以对一个测试用例起多个测试客户(线程)同时运行,也就是说,一个测试用例同时可以有多个运行实例。还可以对特定的测试用例指定测试次数,即指定在该测试用例的每个实例中,重复执行多少次测试代码。根据需要,用户也可以指定每两次重复之间的时间间隔。

       测试客户:或称测试线程。指测试时某特定测试用例的一个具体的实例。该实例以线程方式运行,并与该测试用例的其他实例同时启动。用户可以在测试包中为每个测试用例配置测试客户(线程)的数目。
 
       测试次数:某特定测试用例的每一个测试客户(线程)中,待测试代码的重复执行次数。用户可以在测试包中为每个测试用例配置测试次数。
 
       间隔时间:某特定测试用例的每一个测试客户(线程)中,待测试代码两次重复执行之间的间隔时间。单位是毫秒。间隔时间可以在测试包中指定。


TAG: 测试工具

引用 删除 caohuanlai   /   2011-03-01 09:29:12
1
 

评分:0

我来说两句

Open Toolbar