WEB开发网
开发学院软件开发Java CIM 事件统一自动化测试框架 阅读

CIM 事件统一自动化测试框架

 2009-12-18 00:00:00 来源:WEB开发网   
核心提示: 对测试结果智能分析该框架可以对测试结果进行智能分析,并根据需要提供特定的结果,CIM 事件统一自动化测试框架(4),无需测试人员手动检查返回的消息是否符合期望,从而在显著提高测试效率的同时降低了出错率,在用户指定的日志文件中输出“Fail”log.println(&quo

对测试结果智能分析

该框架可以对测试结果进行智能分析,并根据需要提供特定的结果,无需测试人员手动检查返回的消息是否符合期望,从而在显著提高测试效率的同时降低了出错率。

具体实现机制为:线程 1 根据触发的事件得到一个期望的消息列表,线程 2 则将监听到的消息解析后存入一个实际的消息列表中。等到线程 1 取消消息订阅之后,线程 2 将实际的消息列表发送给线程 1。线程 1 将实际的消息列表与期望的消息列表进行对比,来判断是否期望监听的消息都被监听到,而不期望监听的消息都没有被监听,最终输出一个日志文件,记录监听到的所有消息及错误信息。

测试人员还可以通过改写配置文件中的 LogLevel 变量来选择日志文件中所包含内容的多少,LogLevel 变量的默认值为 0,即日志文件只包含错误信息。也可将其置为 1,则日志文件将包含所有监听到的消息和错误信息。

以下是智能分析并生成日志文件的代码段:

int result = compareResult(expect_list, actual_list); // 比较期望消息列表和实际消息列表 
if (result == 0) { // 两个列表内容相同,在用户指定的日志文件中输出“Success” 
  log.println("Success", 0, LogFileName);   
} else {  // 两个列表内容不同,在用户指定的日志文件中输出“Fail” 
  log.println("Fail", 0, LogFileName); 
} 

以下是 compareResult 方法的代码:

public static int compareResult(ArrayList<InvokeResult> expect, 
  ArrayList<InvokeResult> actual)  
{ 
  int error = 0; 
  if (expect.size() != actual.size())  // 首先比较两个列表中的消息数量是否相同 
  { 
    log.println(actual.size()+" Indication backs, but expected " + 
      expect.size(), 0, LogFileName); 
    // 如果不同,在用户指定的日志文件中记录 
    error++; 
  } 
 //检查是否期望返回的消息都正确返回了 
for (int i=0; i < expect.size(); i++) 
{ 
  int find = 0; 
  InvokeResult tmp = expect.get(i); 
  for (int j=0; j<actual.size(); j++) 
  { 
    InvokeResult tmp_actual = actual.get(j); 
    if (tmp.compare(tmp_actual)==0) 
      find = 1; 
  } 
  if(find==0) //如果有期望的列表没有正确返回,则在用户指定的日志文件中记录该错误 
  { 
    log.println(tmp.getOperation() +" " + tmp.getCop() + 
      " has no indication back." , 0, LogFileName); 
    error++; 
  } 
} 
// 检查是否实际返回的消息都是订阅的消息  
for (int i=0; i < actual.size(); i++) 
{ 
  int find = 0; 
  InvokeResult tmp = actual.get(i); 
  for (int j=0; j<expect.size(); j++) 
  { 
    InvokeResult tmp_expect = expect.get(j); 
    if (tmp.compare(tmp_expect)==0) 
      find = 1; 
  } 
  if(find==0) // 如果返回了没有订阅的消息,则在用户指定的日志文件中记录该错误 
  { 
    log.println("Actually returned indication "+tmp.getOperation() +" " + 
      tmp.getCop() + " is not subscribed", 0, LogFileName); 
    error++; 
  } 
} 
 
if(error!=0) 
  return -1; 
else 
  return 0; 
} 

上一页  1 2 3 4 5 6  下一页

Tags:CIM 事件 统一

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接