use of com.tencent.wstt.apt.chart.DataProvider in project GT by Tencent.
the class TestTaskManager method initTest.
/**
* @Title: initTest
* @Description: 根据测试场景配置来初始化测试
* void
* @throws
*/
public boolean initTest() {
clear();
//获取进程列表
int pkgNumber = TestSence.getInstance().pkgInfos.size();
String[] pkgNames = new String[pkgNumber];
String[] pkgAbbreviation = new String[pkgNumber];
//取进程名的后缀
for (int i = 0; i < pkgNumber; i++) {
pkgNames[i] = TestSence.getInstance().pkgInfos.get(i).contents[PkgInfo.NAME_INDEX];
int index = pkgNames[i].lastIndexOf(".");
;
pkgAbbreviation[i] = pkgNames[i].substring(index + 1, pkgNames[i].length());
}
CPUView cpuViewPart = (CPUView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(CPUView.ID);
MemoryView memViewPart = (MemoryView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(MemoryView.ID);
//设置当前测试场景的结果保存目录
Date curDate = new Date(System.currentTimeMillis());
TestSence.getInstance().curDir = Constant.SIMPLE_DATE_FORMAT_SECOND.format(curDate);
APTConsoleFactory.getInstance().APTPrint("测试开始时间:" + TestSence.getInstance().curDir);
if (TestSence.getInstance().itemTestSwitch[Constant.CPU_INDEX]) {
if (cpuViewPart == null) {
return false;
}
//打开文件
if (!(WriteFileUtil.getInstance().openWriteFile(TestSence.getInstance().curDir, Constant.TEXT_ITEM_TITLES[Constant.CPU_INDEX], TestSence.bufThreshold[0]))) {
APTConsoleFactory.getInstance().APTPrint("创建CPU结果文件失败");
return false;
}
//写文件头
if (!APTLogFileParse.writeAPTLogFileHeader(Constant.CPU_INDEX)) {
APTConsoleFactory.getInstance().APTPrint("写CPU文件头部失败");
return false;
}
cpuViewPart.cpuRealTimeChart.initDataset(pkgAbbreviation, new String[] { Constant.CPU_ITEM_TITLES[Constant.CPU_PERSENT_INDEX] });
DataProvider dataProvider = new CPUProvider(pkgNames, DeviceInfo.getInstance().androidVersion, TestSence.getInstance().cpuTestMethod);
dataProvider.attach(new ChartObserver(cpuViewPart.cpuRealTimeChart));
dataProvider.attach(new TableAllDataObserver(cpuViewPart.cpuViewer, pkgAbbreviation, new String[] { Constant.CPU_ITEM_TITLES[Constant.CPU_PERSENT_INDEX] }));
dataProvider.attach(new FileObserver(Constant.TEXT_ITEM_TITLES[Constant.CPU_INDEX]));
TestTask tt = new TestTask(dataProvider, TestSence.getInstance().itemTestPeriod[Constant.CPU_INDEX]);
addTestTask(tt);
cpuViewPart.setCpuTableViewerFilter(new TableViewFilter(pkgAbbreviation, new String[] { Constant.CPU_ITEM_TITLES[Constant.CPU_PERSENT_INDEX] }));
if (TestSence.getInstance().isTestJiffies) {
DevicesView dv = (DevicesView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(DevicesView.ID);
if (dv == null) {
return false;
}
List<PkgInfo> pkgInfos = TestSence.getInstance().pkgInfos;
String[] pids = new String[pkgInfos.size()];
for (int i = 0; i < pids.length; i++) {
pids[i] = pkgInfos.get(i).contents[PkgInfo.PID_INDEX];
}
DataProvider jiffiesDataProvider = new JiffiesProviderNew(pkgNumber);
cpuViewPart.setJiffiesTableViewerFilter(new TableViewFilter(pkgAbbreviation, new String[] { Constant.CPU_ITEM_TITLES[Constant.CPU_JIFFIES_INDEX] }));
//jiffiesDataProvider.attach(new TableAllDataObserver(cpuViewPart.jiffiesViewer, pkgAbbreviation, new String[]{Constant.CPU_ITEM_TITLES[Constant.CPU_JIFFIES_INDEX]}));
jiffiesDataProvider.attach(new JiffiesTableObserver(cpuViewPart.jiffiesViewer, pkgAbbreviation));
jiffiesDataProvider.attach(new PidUpdateObserver(dv.targetPkgTableViewer, pids));
TestTask jiffiesTT = new TestTask(jiffiesDataProvider, TestSence.getInstance().itemTestPeriod[Constant.CPU_INDEX]);
addTestTask(jiffiesTT);
}
APTConsoleFactory.getInstance().APTPrint("CPU测试Ready");
}
//内存测试
if (TestSence.getInstance().itemTestSwitch[Constant.MEM_INDEX]) {
if (memViewPart == null) {
return false;
}
//打开文件
if (!(WriteFileUtil.getInstance().openWriteFile(TestSence.getInstance().curDir, Constant.TEXT_ITEM_TITLES[Constant.MEM_INDEX], TestSence.bufThreshold[1]))) {
APTConsoleFactory.getInstance().APTPrint("创建内存结果文件失败");
return false;
}
//写文件头
if (!APTLogFileParse.writeAPTLogFileHeader(Constant.MEM_INDEX)) {
APTConsoleFactory.getInstance().APTPrint("写内存文件头部失败");
return false;
}
//填充数据
memViewPart.memRealTimeChart.initDataset(pkgAbbreviation, Constant.MEM_ITEM_TITLES);
memViewPart.setTableViewerFilter(new TableViewFilter(pkgAbbreviation, Constant.MEM_ITEM_TITLES));
//初始化内存视图的数据提供者
DataProvider dataProvider = new MemProvider(pkgNames, DeviceInfo.getInstance().androidVersion);
//主持内存数据的观察者
dataProvider.attach(new ChartObserver(memViewPart.memRealTimeChart));
dataProvider.attach(new TableAllDataObserver(memViewPart.viewer, pkgAbbreviation, Constant.MEM_ITEM_TITLES));
dataProvider.attach(new FileObserver(Constant.TEXT_ITEM_TITLES[Constant.MEM_INDEX]));
if (TestSence.getInstance().isDumpHprof) {
dataProvider.attach(new HprofDumpObserver(pkgNames));
}
//构建测试任务
TestTask tt = new TestTask(dataProvider, TestSence.getInstance().itemTestPeriod[Constant.MEM_INDEX]);
addTestTask(tt);
memViewPart.setTableViewerFilter(new TableViewFilter(pkgAbbreviation, Constant.MEM_ITEM_TITLES));
APTConsoleFactory.getInstance().APTPrint("内存测试Ready");
}
APTConsoleFactory.getInstance().APTPrint("开始测试更新");
GetCurCheckedStateUtil.update();
return true;
}
Aggregations