p-unit 教程4 -- 测试不同运行环境
p-unit最新介绍已在developerWorks发表,请点击这里查阅我们已经看到了p-unit如何支持多线程,以及参数化测试案例, 今天介绍的是一个p-unit的高级功能,测试同一个测试案例在不同虚拟机上的性能。你能想像的最小工作量是什么?对,写测试案例,配置虚拟机参数。p-unit也是这么要求开发者的,需要开发者指定虚拟机的java可执行程序路径以及classpath,然后调用runner.
·
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的报表:
欲知如何产生报表 -- 且听下回分解(或更可能的是你已经知道了 )
更多推荐
已为社区贡献3条内容
所有评论(0)