一种可实现快速提取测试log关键信息的方法

文档序号:9417396阅读:1704来源:国知局
一种可实现快速提取测试log关键信息的方法
【技术领域】
[0001]本发明涉及一种提取log信息的方法,具体地说是一种可实现快速提取测试log关键信息的方法。
【背景技术】
[0002]随着目前测试技术的不断发展,各种测试工具、测试软件及方法被越来越多的应用于服务器产品及各种部件的测试。
[0003]通常我们测试完成后会自动生成一个log日志,日志中记录了测试的平台、时间、测试内容、测试fail内容等各种信息,因日志中内容较多,我们查看这些信息时需要一个一个的搜索关键字逐条查看,这样查找的效率很低,且不方便记录和统计。例如:我们用memtest软件对一组故障内存进行分析,测试完成后我们需要在报错日志中查看它的报错时间、报错地址、报错pattern等信息,并对这些信息进行统计以便判定其失效模式,逐条记录下来耗费时间长且很容易出错。
[0004]我们分析统计测试日志中记录的各种信息时,若需要记录统计的内容或相关项较多,我们通常会把它们记录在一个excel表格中便于归纳统计,而一个一个从测试日志中查找并记录相关信息则是最繁琐和容易出错的时候,因此我们需要寻找一种简便快捷的方法进行数据分析和统计。
[0005]为此,设计一种可以实现更直观方便的查找我们需要知道的信息方法,以提高工作效率和工作准确度。

【发明内容】

[0006]本发明的技术任务是解决现有技术的不足,克服现有技术工作效率低、准确度低的缺陷,提供一种可实现快速提取测试log关键信息的方法。
[0007]本发明的技术方案是按以下方式实现的:
一种可实现快速提取测试log关键信息的方法,该方法时按以下步骤进行的:
1)定义需要提取项目并依此生成excel文件;
2)确认是否使用默认项目:若使用默认项目,则输入Y确认;若不使用默认项目,则输入N,然后对二维数组清零后输入指定项目,按指定项目保存到二维数组;
3)读取文件中指定需要的项目信息并将项目名及对应数据写入到excel中。
[0008]上述步骤I)包括定义控制台应用程序的入口点、定义创建一个应用程序并通过BasicExcel对ecxel文件进行读写修改等操作、设置默认项目并按默认项目顺序生成excel ο
[0009]上述步骤2)中输入Y进行确认后,从test, log中读取需要的项目及对应数据并写入到excel。
[0010]上述步骤2)中输入N进行确认后,继续输入需要提取项目。
[0011]本发明的一种可实现快速提取测试log关键信息的方法与现有技术相比所产生的有益效果是:
本发明是通过C++语言编译一个简单程序实现自动读取测试日志中的信息,同时自动生成一个excel表格并将定义需要的信息记录到excel表格中去,能简便快捷的提取数据,同时高效、准确的对数据进行分析和统计,提取每一条内存的测试报错时间、SN号、通道、槽位、报错DQ、报错的Test pattern、报错次数、第几圈报错等信息,操作简单,实用性较强,对于我们的一些问题分析、产品参数性能统计等有很好的作用。
【附图说明】
[0012]附图1是本发明的流程框图。
【具体实施方式】
[0013]下面结合附图1,以内存测试日志为例,对本发明的一种可实现快速提取测试log关键信息的方法作以下详细说明。
[0014]如附图所示,本发明的一种可实现快速提取测试log关键信息的方法,该方法时按以下步骤进行的:
O定义需要提取项目并依此生成excel文件:包括定义控制台应用程序的入口点、定义创建一个应用程序并通过BasicExcel对ecxel文件进行读写修改等操作、设置默认项目并按默认项目顺序生成excel。
[0015]// LOGtoEXCEL.cpp: 定义控制台应用程序的入口点。
[0016]
定义创建一个应用程序,并通过BasicExcel对ecxel文件进行读写修改等操作: Sinclude 〃stdafx.h〃
Sinclude ,,BasicExcel.hpp〃using namespace std;using namespace YExcel;
///主函数//7/7/7/7/7/7/7
int _tmain(int argc,_TCHAR^ argv[]) //控制台应用程序函数
{
char buffer[buffersize];
FILE ^fp;
if ((fp=fopen ("test.log' ffTff)) ==NULL)
{
cout〈〈〃Cannot find test.log.〃〈〈endl ;return 0 ;
}
else cout〈〈〃test.log open success.〃〈〈endl ; // 打开 test, log 文件/设置默认项目并按默认项目顺序生成excel:char p [item number] [itemsize] = {,,DIMM—SN〃,
"Chan", "DIMM",
"DQ",
"TT rP.”
Uplime ,
〃GlobCycle〃,
//ΓΤΛJ //
lest,
〃ErrCnt〃,
} ; Il定义存储项目名的二维数组
int n_items=8 ;
2)确认是否使用默认项目;
若使用默认项目,则输入Y确认,从test, log中读取需要的项目及对应数据并写入到excel ;
若不使用默认项目,则输入N,然后对二维数组清零后输入指定项目,按指定项目保存到二维数组,继续输入需要提取项目。
[0017]int i=0;
cout〈〈〃Whether to use the default order of items?[Y/N]:〃;char a—0;cin>>a—0;if (a—0==,N,)
{
memset (p,0,sizeof (p)) ; //p 清零Λ按顺序输入项目名**#/
cout〈〈〃Please import the name of items.You should separate multiple itemswith semicolons: ,,〈〈endl;
cin.getline (buffer, 200) ; // 输入项目名cin.getline (buffer, 200) ; // 输入项目名n—items=l;
while (buffer[i++]1- \0,)
{
if (buffer [i]==,;,)
if (buffer [i+1] !=,\0,) {n—items++;} // 计算有几个项目
}
if (buffer [0] ==’ \0,) n—items=0;
cout〈〈"You have imported "<〈n_items〈〈" items, "〈〈endl;
3)读取文件中指定需要的项目信息并将项目名及对应数据写入到excel中。
[0018]
/* 写 excel 数据 **/
BasicExcel e;
if (infonum_rl.needed==l) // 是需要的信息{if ((n%n—items) ==0) // 新的一个 block
{
n—blocks++;//n—blocks 也是行向量
}
if (sheetl)// 将数据写进 excel
{
if (strcmp (rowinfol.left, "DQ") ==0 | | \ 项目名 DQstrcmp (rowinfol.left, "ErrCnO ==0 | | \ 项目名 ErrCntstrcmp (rowinfol.left, "GlobCycle") ==0 | | \ 项目名 GlobCyclestrcmp (rowinfol.left, "Chan") ==0 | | \ 项目名 Chanstrcmp (rowinfol.left, "DIMM") ==0 | | \ 项目名 DIMMstrcmp (rowinfol.left, "DIMM—SN") ==0 | | \ 项目名 DIMM—SNstrcmp (rowinfol.left, 〃Test〃) ==0) 项目名 TestΛ将log文件中指定项目等号右边的数据写入到excel#/
{
int_right=atoi(rowinfol.right);//string to intsheetl_>Cell(n—blocks,infonum—rl.1nfo—num)->SetInteger(int—right);
}
Else
{sheetl_>Cell (n_blocks,infonum_r1.1nfo_
num)->SetString(rowinfol.right);}
}
程序关闭,log日志解析完成,打开生成的excel查看信息。
[0019]本方法可以快速解析log日志,尤其是对于一些内容较复杂、项目较多的log,我们通过此方法能快速查找我们需要的信息,大大提高效率,并且不会有人为查找时可能出现的记录错误、漏失等错误。该方法操作简单,实用性较强,对于我们的一些问题分析、产品参数性能统计等有很好的作用。
【主权项】
1.一种可实现快速提取测试log关键信息的方法,其特征在于,该方法时按以下步骤进tx的: 1)定义需要提取项目并依此生成excel文件; 2)确认是否使用默认项目:若使用默认项目,则输入Y确认;若不使用默认项目,则输入N,然后对二维数组清零后输入指定项目,按指定项目保存到二维数组; 3)读取文件中指定需要的项目信息并将项目名及对应数据写入到excel中。2.根据权利要求1所述的一种可实现快速提取测试log关键信息的方法,其特征在于,上述步骤I)包括定义控制台应用程序的入口点、定义创建一个应用程序并通过BasicExcel对ecxel文件进行读写修改等操作、设置默认项目并按默认项目顺序生成excel ο3.根据权利要求1所述的一种可实现快速提取测试log关键信息的方法,其特征在于,上述步骤2)中输入Y进行确认后,从test, log中读取需要的项目及对应数据并写入到excel ο4.根据权利要求1所述的一种可实现快速提取测试log关键信息的方法,其特征在于,上述步骤2)中输入N进行确认后,继续输入需要提取项目。
【专利摘要】本发明提供一种可实现快速提取测试log关键信息的方法,该方法时按以下步骤进行的:1)定义需要提取项目并依此生成excel文件;2)确认是否使用默认项目:若使用默认项目,则输入Y确认;若不使用默认项目,则输入N,然后对二维数组清零后输入指定项目,按指定项目保存到二维数组;3)读取文件中指定需要的项目信息并将项目名及对应数据写入到excel中。本发明是通过c++语言编译一个简单程序实现自动读取测试日志中的信息,同时自动生成一个excel表格并将定义需要的信息记录到excel表格中去,能简便快捷的提取数据,同时高效、准确的对数据进行分析和统计,操作简单,实用性较强,对于我们的一些问题分析、产品参数性能统计等有很好的作用。
【IPC分类】G06F17/30
【公开号】CN105138563
【申请号】CN201510438402
【发明人】周茂庸
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年12月9日
【申请日】2015年7月23日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1