/** 单线程压力测试 */ @Test public void testGetTraceId_SingleTreand() throws Exception { long counts = 100000; // 每轮方法调用次数 int rounds = 3; // 跑n轮,求平均值 long[] results = new long[rounds]; for (int i = 0; i < rounds; i++) { long startTime = System.currentTimeMillis(); for (long j = 0; j < counts; j++) { generater.getTraceId(); } long endTime = System.currentTimeMillis(); results[i] = (endTime - startTime); } long sum = 0; for (int i = 0; i < rounds; i++) { sum += results[i]; } System.out.println("单线程测试"); System.out.println("轮数=" + rounds); System.out.println("每轮提交量=" + counts); System.out.println("平均耗时=" + sum / rounds + " ms"); System.out.printf("Tps=%.1f 次/ms\n", 1.0 * counts / (sum / rounds)); System.out.println("------------------------"); Thread.sleep(10); }
/** 功能性测试 */ @Test public void testGetTraceId_BasicFunction() throws Exception { System.out.println("基本功能测试"); for (int i = 0; i < 3; i++) { System.out.println(generater.getTraceId()); } System.out.println("------------------------"); Thread.sleep(10); }
/** 数据重复性测试 */ @Test public void testGetTraceId_CompleteFunction() throws Exception { System.out.println("数据重复性测试"); long counts = 100000; // 100w次跟踪 BinaryReadWrite readWriter = new BinaryReadWrite(); Long old = 0L; for (int i = 0; i < counts; i++) { Long buildData = generater.getTraceId(); Assert.assertTrue(old < buildData); readWriter.writeLong(buildData); old = buildData; } readWriter.flushWrite(); System.out.println("-->没有重复数据"); System.out.println("ID存储到" + readWriter.getS_FilePath() + "下"); System.out.println("------------------------"); Thread.sleep(10); }