利用ADO进行初步的存储过程自动化测试

上一篇 / 下一篇  2012-04-05 21:31:53 / 天气: 晴朗 / 心情: 平静 / 精华(1) / 置顶(1) / 个人分类:测试技术

  测试存储过程首先想到的方法当然是利用PL/SQL里自带的测试功能了.通过传入所需要的参数来进行简单的测试,可以很快的知晓该存储过程是否有不对的地方.然后这样的手工做法在后期的维护方面需要花的时间和精力太多了.

   所以,大家可以考虑下利用ADO来调用存储过程,然后准备好测试数据,通过传入对应的参数来调用存储过程.这时,你只需要运行一下就能知道哪个存储过程有问题,哪个还需要改进.

  应广大道友的要求,下面利用个实例进行简单的分析下具体的操作流程.

  首先在数据库中有个简单的存储过程:

create   proc   test  
      @userid int,   
      @Flag int   Out  
  As  
      Begin   
          delete from Table_list whereUser_id=@userid

  set Flag=1

end

该存储过程就是根据传入的userid来删除数据库表Table_list对应的数据,然后抛出结果1.(这里就不做删除是否成功的判断了,力求简化,sorry。)

然后,我们利用ADO来调用该存储过程。

我使用的是C#语言,

public int DeleteUser(int userid )

{

SqlConnection c = new SqlConnection(Connection);//Connection为连接数据库的字符串
            Oc.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = Oc;
            SqlTransaction t = Oc.BeginTransaction();
            cmd.Transaction = ot;
            cmd.CommandType = CommandType.StoredProcedure;//定义调用的是存储过程
            cmd.CommandText = “test";//存储过程名
            cmd.Parameters.Add("userid ", SqlDbType.Int).Value = userid ;
            cmd.Parameters.Add("Flag ", SqlDbType.Int, 1).Direction = ParameterDirection.Output;//注意:还有种返回值是ReturnValue,这与存储过程定义的要一致
            cmd.ExecuteNonQuery();
            ot.Commit();//有些存储过程需要手动提交
            Oc.Close();
            return Convert.ToInt32(cmd.Parameters["Flag"].Value.ToString());//把输出的值获取到后返回

}

把调用该存储过程封装成个方法,在以后使用的时候就可以直接利用面向对象原理直接调用就可以了.

这样就把一个存储过程通过代码来完成了调用,接下来就是准备好测试数据进行批量的调用,把这些代码写成一个程序后,直接运行,如果出现错误,则把错误输出到txt或者其他方式提供给用户,这样就可以看到哪个存储过程出现了错误了.程序写得好是关键,可以很清楚的定位到某个存储的某个错误.

  由于时间匆忙,可能很多地方没说清楚,大家可以直接问我,希望不要拍我砖,实在是太忙了.

这次只是初步的进行简单的自动化,下篇将带来些逻辑性强点的自动化批量测试.


TAG: 测试 存储过程

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 5382
  • 日志数: 4
  • 建立时间: 2011-07-27
  • 更新时间: 2018-09-13

RSS订阅

Open Toolbar