p-unit 教程4 -- 测试不同运行环境
2007-05-23 14:46
417 查看
p-unit最新介绍已在developerWorks发表,请点击这里查阅
我们已经看到了p-unit如何支持多线程,以及参数化测试案例, 今天介绍的是一个p-unit的高级功能,测试同一个测试案例在不同虚拟机上的性能。你能想像的最小工作量是什么?对,写测试案例,配置虚拟机参数。p-unit也是这么要求开发者的,需要开发者指定虚拟机的java可执行程序路径以及classpath,然后调用runner.runVMs(Class clazz)即可。 下面是实例代码:
public static void main(String[] args) {
SoloRunner runner = new SoloRunner();
runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
runner.runVMs(ListTestClass.class, new VM[] { VMConfig.HARMONY, VMConfig.SUN });
}
public class VMConfig {
private static String CLASSPATH = " -cp correct_classpath_including_all_jars_and_path"; //$NON-NLS-1$
private static String HARMONY_PATH = "harmony_path//bin//java" + CLASSPATH; //$NON-NLS-1$
private static String SUN_PATH = "sun_path//bin//java" + CLASSPATH; //$NON-NLS-1$
public static VM HARMONY = new VM(HARMONY_PATH, "HARMONY"); //$NON-NLS-1$
public static VM SUN = new VM(SUN_PATH, "SUN"); //$NON-NLS-1$
}
public class ListTestClass {
private static final int LIST_COUNT = 100000;
private static Object element = new Object();
private Random indexGenerator = new Random();;
public void testInsertArrayList() {
ArrayList arrayList = new ArrayList(LIST_COUNT);
insertSequence(arrayList);
insertRandom(arrayList);
}
public void testInsertVector() {
Vector vector = new Vector(LIST_COUNT);
insertSequence(vector);
insertRandom(vector);
}
public void insertSequence(List list) {
for (int i = 0; i < LIST_COUNT; ++i) {
list.add(element);
}
}
public void insertRandom(List list) {
for (int i = 0; i < LIST_COUNT; ++i) {
list.add(indexGenerator .nextInt(LIST_COUNT),element);
}
}
}
运行结果为两张pp的报表:
欲知如何产生报表 -- 且听下回分解(或更可能的是你已经知道了
)
我们已经看到了p-unit如何支持多线程,以及参数化测试案例, 今天介绍的是一个p-unit的高级功能,测试同一个测试案例在不同虚拟机上的性能。你能想像的最小工作量是什么?对,写测试案例,配置虚拟机参数。p-unit也是这么要求开发者的,需要开发者指定虚拟机的java可执行程序路径以及classpath,然后调用runner.runVMs(Class clazz)即可。 下面是实例代码:
public static void main(String[] args) {
SoloRunner runner = new SoloRunner();
runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
runner.runVMs(ListTestClass.class, new VM[] { VMConfig.HARMONY, VMConfig.SUN });
}
public class VMConfig {
private static String CLASSPATH = " -cp correct_classpath_including_all_jars_and_path"; //$NON-NLS-1$
private static String HARMONY_PATH = "harmony_path//bin//java" + CLASSPATH; //$NON-NLS-1$
private static String SUN_PATH = "sun_path//bin//java" + CLASSPATH; //$NON-NLS-1$
public static VM HARMONY = new VM(HARMONY_PATH, "HARMONY"); //$NON-NLS-1$
public static VM SUN = new VM(SUN_PATH, "SUN"); //$NON-NLS-1$
}
public class ListTestClass {
private static final int LIST_COUNT = 100000;
private static Object element = new Object();
private Random indexGenerator = new Random();;
public void testInsertArrayList() {
ArrayList arrayList = new ArrayList(LIST_COUNT);
insertSequence(arrayList);
insertRandom(arrayList);
}
public void testInsertVector() {
Vector vector = new Vector(LIST_COUNT);
insertSequence(vector);
insertRandom(vector);
}
public void insertSequence(List list) {
for (int i = 0; i < LIST_COUNT; ++i) {
list.add(element);
}
}
public void insertRandom(List list) {
for (int i = 0; i < LIST_COUNT; ++i) {
list.add(indexGenerator .nextInt(LIST_COUNT),element);
}
}
}
运行结果为两张pp的报表:
欲知如何产生报表 -- 且听下回分解(或更可能的是你已经知道了
)
相关文章推荐
- Python中unittest 用不同的参数组合,测试同样的行为;使test case根据参数多次运行
- Vmware vSphere 5.0实战教程之一 vSphere高级应用测试环境搭建
- 【Nutch2.3基础教程】集成Nutch/Hadoop/Hbase/Solr构建搜索引擎:安装及运行【集群环境】
- 通过Maven配置测试环境和开发环境连接不同的数据库
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)三
- Python 3基础教程1-环境安装和运行环境
- 在安卓开发环境下写一个main测试类运行报错ShouldNotReachHere
- 编译和测试环境——VMware:简介和教程
- maven: 开发、测试和生产环境使用不同的配置文件例子
- parasoft Jtest 使用教程:修改规则与运行简单的用户自定义测试配置
- Vmware vSphere 5.0实战教程之一 vSphere高级应用测试环境搭建 推荐
- Maven 如何为不同的环境打包 —— 开发、测试和产品环境
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- 虚拟测试环境运行报告(091121)搭建完成
- JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)[示例代码下载]
- 一次测试环境运行正常,而生产环境运行失败的问题排查
- 【转】JavaScript组件之JQuery(A~Z)教程(基于Asp.net运行环境)
- docker实战1 (docker-toolbox的安装,docker基础命令详解[运行,容器导入/导出,镜像导入/导出,数据卷,网络],构建100个docker实例的测试环境)
- 云主机搭建php+mysql运行环境教程(护卫神 PHP套件)
- asp+sql server 2005运行环境搭建与测试