UFT中C#编写单API测试TXT
上一篇 /
下一篇 2014-07-21 17:03:44
/ 精华(1)
/ 个人分类:测试脚本
namespace Script
{
using System;
using System.Xml;
using System.Xml.Schema;
using HP.ST.Ext.BasicActivities;
using HP.ST.Fwk.RunTimeFWK;
using HP.ST.Fwk.RunTimeFWK.ActivityFWK;
using HP.ST.Fwk.RunTimeFWK.Utilities;
using HP.ST.Fwk.RunTimeFWK.CompositeActivities;
using HP.ST.Ext.CustomDataProviders.Extensions;
using HP.ST.Ext.CustomDataProviders.ExcelFileArguments;
using System.IO; //System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类.需自行添加
public class xscj2
{
public static double a1(int[] a)
{
double result=0;int i=0;
while (i<a.Length)
result+=a[i++];
return result/a.Length;
}
}//测试的API类,以求算数平均值为例
[Serializable()]
public class TestUserCode : TestEntities
{
public void CodeActivity19_OnExecuteEvent(object sender, STActivityBaseEventArgs args)
{
FileStream ifs=new FileStream("E:/TestCase.txt",FileMode.Open); //打开测试用例
StreamReader str =new StreamReader(ifs); //读取用例内容
string stamp = DateTime.Now.ToString("s");//获取当前时间为string类型
stamp = stamp.Replace(":", "-");//用-代替时间中的:
FileStream file=new FileStream("E:/TestResult"+stamp+".txt",FileMode.CreateNew); //创建测试结果存储文件
StreamWriter writer=new StreamWriter(file);//创建写方法
string line,caseID,method;
string[] takens,tempInput;
string expected;
double actual=0.0;
int numPass=0,numFail=0,numUnavi=0;
writer.WriteLine("\nCaseID Result Method Details");
writer.WriteLine("\n============================================\n");
while((line=str.ReadLine())!=null)
{
takens=line.Split(':');//测试用例中的数据是采用:进行区分的的,先分割出不同的不同的数据段
caseID=takens[0];
method=takens[1];
tempInput=takens[2].Split(' ');//输入数据是采用空格进行区分的
expected = takens[3];
int[] input=new int[tempInput.Length];
for(int i=0;i<tempInput.Length;i++)
{
input[i]=int.Parse(tempInput[i]);//将测试数据转化为int类型,并赋值到新的数组
}
if(method=="test1")//判断测试名称是否正确
{
actual=xscj2.a1(input); //用例数据输入产生的实际测试结果
if(actual==double.Parse(expected)) //判断测试结果是否与预期测试结果一致
{
Console.WriteLine(caseID + " Pass " + method + " actual = " + actual.ToString("F4"));
writer.WriteLine(caseID + " Pass " + method + " actual = " + actual.ToString("F4"));
++numPass;
}
else
{
Console.WriteLine(caseID + " Fail " + method + " actual = " + actual.ToString("F4"));
writer.WriteLine(caseID + " Fail " + method + " actual = " + actual.ToString("F4"));
++numFail;
}
}
else
{
Console.WriteLine(caseID + " " + method + " Not yet implemented");
writer.WriteLine(caseID + " " + method + " Not yet implemented");
++numUnavi;
}
} //测试用例循环
writer.WriteLine("\n==================end test==================");
writer.WriteLine("\nPass = " + numPass );
writer.WriteLine("\nFail = " + numFail);
writer.WriteLine("\nUnavailable = "+numUnavi);//输出测试结果
str.Close();
ifs.Close();
writer.Close();
file.Close();
//结束测试关闭测试打开的一些文件
}
}
}
花了两天时间看别人的脚本,然后花了一天时间写出来的东东,虽然还很稚嫩,但是是一个新的开始,加油!
附上测试用例txt的文档。
测试用例注解:测试用例编号 测试名称 输入数据 预期结果
001:test1:1 2 3 4 5 6 7:1
收藏
举报
TAG: