Testing of API(15步)

本文详细介绍了一个15步骤的API测试整体思路,包括测试用例数据的准备、读取及解析,测试结果的记录与总结等关键环节,并通过具体示例展示了整个测试流程。

API测试的整体思路:(15步)

 

1,用文本存储用于测试用例的数据

   问题:如何在一个简单的文本里闯将并存储用于API测试用例的数据。
   方法:使用冒号作为分隔符的文本文件,这个文件包含一个唯一的测试用例ID,一个或者多个输入值和期望结果


2,读入测试用例数据

   问题:如何从测试用例文件(简单的文本文件)中读入每条测试用例。
   方法:通过while循环遍历测试用例文件的每一行,使用System.IO.StreamReader对象读入测试用例


3,将从文本中读出的string数据解析为测试用例

   问题:如何解析出由字符分隔开的测试用例的各个字段。
   方法:使用String.Split()方法,把分隔符作为方法的输入传给Split()方法,然后将返回值存入一个字符数组。
         Split()方法的参数是一个字符数组。


4,把数据转换为合适的类型

   问题:如何把测试用例的输入数据或者期望结果从string类型转换为其他的数据类型,这样就可以把转化后的数据传给待测方法或者把期望结果与实际结果进行比较。
   方法:通过选用合适的静态Parsee()方法,实施显式的类型转换。
 

5,判定测试用例是否通过
   问题:如何判定API测试用例是通过还是失败。
   方法:调用待测方法,传给它测试用例的输入,得到返回值,然后通过actual.ToString()转换成实际值的字符串与从测试用例中读入的期望结果expect的字符串比较,实质是进行字符串比较。看是否一致


6,记录测试用例结果

   问题:如何把测试用例的结果存入独立于测试程序的简单文本文件。
   方法:在处理测试用例的主循环中,使用一个System.IO.StreamWriter对象,把测试用例ID和测试结果写到一个文本文件中。


7,给测试用例加上时间戳

   问题:如何给测试用例结果加上时间戳,以便于区分不同批次的运行结果。
   方法:把DateTime.Now.ToString("s")属性作为字符串参数传给CreateDirectory()这个静态方法,创建一个带有时间戳的文件夹。或者,把DateTime.Now.ToString("s")属性作为字符串参数传给FileStream()的构造函数,来创建一个带时间戳的文件名。


8,通过计算对测试结果进行总结

   问题:如何计算测试用例的结果以追踪通过的(pass)用力和失败用例的个数。
   方法:使用简单的整数计数器,在每次开始运行测试的时候,把计数器初始化为0。


9,获得测试运行的总时间

   问题:如何获得测试运行的总时间
   方法:通过把DateTime.Now属性记录测试开始运行的时间start,以及测试结束的时间end,然后用一个TimeSpan对象=end-start计算本次运行的总时间。


10,处理输入为空或者期望值为空的情况
   问题:如何验证待测程序的API方法能否正确地处理传给它的null参数。
   方法:使用一个特殊的字符串标记来表示测试用例数据文件里的null值。在测试套件里添加相应的处理逻辑,把null标记转换成null输入值。


11,处理“方法抛出异常”的情况

   问题:如何测试一个抛出异常的方法。
   方法:在测试用例数据文件中嵌入一个特殊的字符串标记,用来表示应该有一个异常被抛出,把待调用的待测方法放到一个try块里,这样如果有异常抛出,就可以捕获它。


12,处理输入参数为空字符串的情况
   问题:如何测试传给待测API方法的参数为空字符串的情况
   方法:使用一个特殊的字符串标记来表示测试用例文件中的空字符串,并且在测试套件中加入相应的逻辑处理分支,把真正的空字符串作为参数传给待测得API方法。


13,编写程序,在测试用例失败时发送警告邮件。  
   问题:如何编写程序让测试套件在测试用例失败的时候发送邮件信息,或者将测试结果报告以邮件的方式发送。
   方法:使用System.Web.Mail命名空间里的MailMessage来创建一个MailMessage对象。然后为这个对象提供To和Subject等属性值,并且把测试用例失败的详细信息添加到它的Body属性。


14,自动运行测试套件。
   问题:如何让测试套件在某一时间自动开始运行
   方法:通过Windows Task Scheduler在Windows环境下可以很容易地实现任务调度。


15,多个轻量级测试套件自动执行

   问题:如何自顺次执行多个轻量级
   方法:如果有好几个轻量级自动化测试套件需要运行,则可以通过创建批处理.bat文件,在里面加上运行它们的命令,来实现批量处理。 此外,如果测试套件本身就能把测试用例结果记录到了外部文件,那么只需要在Bat里面写顺次执行他们的命令就好了。如果测试套件只是把测试用例结果输出到命令行程序,则可以通过系统重定向很容易把这些结果存储到外部文件。

****************************************************************************

待测方法:

 

用文本记录的测试Case信息数据:

 

测试程序:

 

测试输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值