您的位置:首页 > 其它

.NET自动化测试---API轻量级测试

2011-03-26 16:03 267 查看
自动化测试相对于手工测试有以下优点

a.Speed--快速地进行成千上万个测试用例;

b.Accuracy--不受人为的因素的干扰,例如记录错误的结果;

c.Precision--每次都以同样的方式运行;

d.Efficiency--晚上白天都可以进行测试;

e.Skill-Building--培养技能,手工测试非常枯燥乏味,提高不了技能。

我们知道API(Application Programing Interface)测试是软件自动化测试的基础,API测试用来验证组成软件的那些单个方法的正确性;API测试也称为单元测试-Unit Test、模块测试-Module Test、组件测试-Component Test和元件测试-Element Test。 不管怎么叫,背后的意思是:必须确定系统中每个单独的模块必须正常工作。

待测方法的代码如下:

View Code

using System;
using System.IO;

namespace ApiTestExample
{
class Program
{
static void Main(string[] args)
{
FileStream ifs=null;
StreamReader sr = null;
StreamWriter sw = null;
FileStream fs = null;
try
{
ifs = new FileStream("E:\\C#\\C#.NET例子程序\\testcase.txt", FileMode.Open);
sr = new StreamReader(ifs);
string stamp = DateTime.Now.ToString();
stamp = stamp.Replace(":","-");//这里不进行符号替换,创建不来文件,以为:这个符号不能用于创建文件问
fs=File.Create("E:\\C#\\C#.NET例子程序\\"+stamp +"  testresult.txt");
sw = new StreamWriter(fs);
string line, caseID, method;
string[] tokens, tempInput;
string expected;
double actual = 0.0;
int numPass = 0, numFail = 0;

Console.WriteLine("\nCaseID Result Method Details");
Console.WriteLine("===============================");

while ((line =sr.ReadLine())!=null)
{
tokens = line.Split(':');
caseID =tokens [0];
method =tokens[1];
tempInput =tokens[2].Split (' ');
expected=tokens [3];

int[] input=new int[tempInput.Length ];
for (int i = 0; i < input.Length ; i++)
{
input[i] = int.Parse(tempInput [i]);
}

if (method == "ArihthmeticMean")
{
actual = ArihthmeticMean(input[0], input[1]);
if (actual.ToString() == expected)
{
Console.WriteLine(caseID + "  Pass  " + method + "  actual=" + actual.ToString());
//记录测试
sw.WriteLine(caseID + "  Pass  " + method + "  actual=" + actual.ToString());
++numPass;
}
else
{
Console.WriteLine(caseID + " Fail " + method + " actual=" + actual.ToString());
//记录测试
sw.WriteLine(caseID + " Fail " + method + " actual=" + actual.ToString());
++numFail;
}

}
else
{
Console.WriteLine(caseID +"    "+method +"not yet implement");
sw.WriteLine(caseID + "    " + method + "not yet implement");
}

}

Console.WriteLine("===========================end test run===============");
Console.WriteLine("pass="+numPass +"Fail="+numFail );
}
catch(Exception ex)
{
Console.WriteLine("Fatal error"+ex.Message );
}
finally
{
//注意打开的文件资源一定要关闭,还有注意顺序
ifs.Close();
sr.Close();
sw.Close();
fs.Close();

}

}

//待测方法ArihthmeticMean
public static double ArihthmeticMean(double i,double j)
{
double result=0.0;
result = Math.Max(i,j);
return result;
}
}
}


结果如下:
CaseID Result Method Details
===============================
0001 Pass ArihthmeticMean actual=8
0002 Fail ArihthmeticMean actual=2
0003 Pass ArihthmeticMean actual=8
0004 Fail ArihthmeticMean actual=3
0005 Pass ArihthmeticMean actual=555
0006 Fail ArihthmeticMean actual=444
0007 Pass ArihthmeticMean actual=8
0008 Fail ArihthmeticMean actual=2
===========================end test run===============
pass=4Fail=4

测试结果文件2011-3-26 16-01-02 testresult.txt,内容如下

0001 Pass ArihthmeticMean actual=8
0002 Fail ArihthmeticMean actual=2
0003 Pass ArihthmeticMean actual=8
0004 Fail ArihthmeticMean actual=3
0005 Pass ArihthmeticMean actual=555
0006 Fail ArihthmeticMean actual=444
0007 Pass ArihthmeticMean actual=8
0008 Fail ArihthmeticMean actual=2



至此,API自动化测试介绍基本完毕,请多多指教,谢谢!


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: