.net软件自动化测试笔记(API-2)
1.9获得测试运行时间
如何获得测试运行的总时间
设计:DateTime.Now属性记录测试开始运行时间,以及测试结束时间,用一个TimeSpan对象计算本次运行的总时间
- DateTime starTime = DateTime.Now;
- while ((line=sr.ReadLine())!=null)
- {
- //运行测试
- }
- DateTime endTime = DateTime.Now;
- TimeSpan testTime = endTime - starTime;
- Console.WriteLine("Test use time="+testTime);
1.10处理输入为空或期望值为空的情况
如何验证待测程序的API方法能否正确的处理传给它的null参数
设计:使用一个特殊的字符串标记来表示测试用例数据文件的null值,在测试套件添加相应的处理逻辑,把null标记转换成null输入值
- public static double ArithmeticMean(params int[] vals)
- {
- if(vals==null)
- {
- return 0.0;
- }
- double sum = 0.0;
- foreach (int v in vals )
- {
- sum += v;
- return (double) (sum/vals.Length);
- }
- }
1.11处理“方法抛出异常”的情况
如何测试一个抛出异常的方法
设计:在测试用例数据文件嵌入一个特殊的字符串标记,用来表示应该有一个异常抛出,把待调用的待测方法放到一个try块里,可以捕获异常
*******
不要把那些调用不抛出异常的待测方法的代码放到try块里,因为如有异常抛出的话,你会得到pass的结果
如下测试数据:
004:GeometricMean:1 2 4 8 16 32:6.6569
005:GeometricMean:0 0 0 0:Exception
006:GeometricMean:2 4 8:4.0000
- MathLib.Methods m=new Methods();
- if (tokens[] == "Exception")
- {
- try
- {
- actual = m.GeometriMean(input);
- }
- catch (Exception ex)
- {
- Console.WriteLine(caseID+"Pass");
- continue;
- }
- Console.WriteLine(caseID+"*Fail* no exception throw" );
- }
如果找到“Exception”输入值,就转到try块里执行GeometricMean();如果没有找到,程序转到catch块,并打印出结果,然后执行continu,进入下一关测试;
1.12处理输入参数为空字符串的情况
如何测试传给待测API方法的参数为空字符串的情况
设计:使用一个特殊字符串标记来表示测试用例文件中的空字符串,并在测试套件中加入相应的逻辑处理分支
001:SubString:put:computer:true
002:SubString:xyz:computer:flase
003:SubString:emptystring:computer:true(emptystring作为特殊标记字符串:空字符串)
- string ags;
- if (tokens[]=="emptystring")
- {
- ags = " ";
- }
- else
- {
- ags = tokens[];
- }
1.13在测试用例失败时发送警告邮件
如何编写程序让测试套件在测试用例失败的时候发送邮件信息
设计:使用System.Web.Mail命名空间的MailMessage类创建一个MailMessage对象,然后对这个对象提供To和Subject等属性,把测试用例失败详细信息添加到Body属性
- else
- {
- Console.WriteLine("*Fail*.Sending e-mail");
- try
- {
- MailMessage mail=new MailMessage();
- mail.From = "Test Automation Harness";
- mail.To = "excamp@mail.com";//通知邮箱地址
- mail.Subject = "Test Case Failure";//主题
- mail.Priority = MailPriority.High();
- mail.BodyEncoding = System.Text.Encoding.ASCII;//编码格式
- mail.BodyFormat = MailFormat.Html;
- mail.Body = "Test case"+caseID+"fail";//邮件内容
- SmtpMail.SmtpServer = "127.0.0.1";
- SmtpMail.Send(mail);
- }
- catch (Exception ex)
- {
- Console.WriteLine("Fatal error sending mail:"+ex.Message);
- }
- }
1.14自动运行测试套件
如何让测试套件自动运行
设计:1)好几个轻量级自动化测试套件需要运行,可以创建一个.bat文件,在这个文件里加上运行他们的命令;
2)用c#写一个主测试套件(master harness),让主测试套件来协调并调用其他自动化测试套件,
使用System.Diagnostics.Process命名空间的Start()方法来编写代码用于调用其他测试套件
eg:1)
@echo off
echo Starting test automation sequence
echo.
d:\xxx\xxx\xxx.exe
d:\xxx\xxx\xxx.exe
d:\xxx\xxx\xxx.exe
echo.
echo Test autonmation sequence complete
如果测试套件没有把测试结果记录到外部文件
@echo off
echo Starting test automation sequence
echo.
d:\xxx\xxx\xxx.exe > d:\xxx\xxx.Result1.txt
d:\xxx\xxx\xxx.exe > d:\xxx\xxx.Result2.txt
d:\xxx\xxx\xxx.exe > d:\xxx\xxx.Result3.txt
echo.
echo Test autonmation sequence complete
eg2):
- public void MasterStart()
- {
- Console.WriteLine("Starting automation sequence\n");
- Process.Start("d:\\xxx\\xxx\\xxx.exe");
- Process.Start("d:\\xxx\\xxx\\xxx.exe");
- Process.Start("d:\\xxx\\xxx\\xxx.exe");
- Console.WriteLine("\n Test automation sequence complete \n");
- }
.net软件自动化测试笔记(API-2)的更多相关文章
- .net软件自动化测试笔记(API-1)
.net 软件测试自动化之道 API(Application Programming Interface)包括单元测试(Unit Testing),模块测试(Module Testing),组件测试( ...
- 《软件自动化测试开发-Java和Python测试开发实用指南》出版了
1.关于书中下载链接的问题:出现404,页面不存在 解答:大小写要区分,l和1不能弄错了 2.关于勘误,出现极个别漏子少字错字 解答:后续版本会改进,目前能理解就好了 ---------------- ...
- Atitit Atitit.软件兼容性原理----------API兼容 Qa7
Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...
- 基于ruby的watir自动化测试 笔记二
基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...
- 篇4 安卓app自动化测试-Appium API进阶
篇4 安卓app自动化测试-Appium API进阶 --lamecho辣么丑 1.1概要 大家好! 我是lamecho(辣么丑),今天是<安卓app自动化测试& ...
- 用selenium工具做软件自动化测试的面试题及答案
1.selenium中如何判断元素是否存在? 答:isElementPresent 2.selenium中hidden或者是display = none的元素是否可以定位到? 答:不可以定位到 3.s ...
- Vue学习笔记-API调试工具--->国产apipost按装(比postman好按装好用)
一 使用环境: windows 7 64位操作系统 二 Vue学习笔记-API调试工具--->apipost按装 1.下载: https://www.apipost.cn/ (比postm ...
- VectorCAST软件自动化测试方案
VectorCAST 是主要用于对C/C++/Ada程序进行软件自动化测试,并能够在Windows和Linux等多种开发环境下运行.其主要功能包含自动化的单元测试.集 成测试.覆盖率分析.回归测试.代 ...
- 使用Wisdom RESTClient自动化测试REST API,如何取消对返回的body内容的校验?
使用Wisdom RESTClient V1.1 自动化测试API,默认是对返回HTTP状态码和body内容进行校验的. 如果您的API返回body内容是变化的,可以通过设置来取消对body内容的校验 ...
随机推荐
- 用Java开发一个本地服务管理软件
一.最终界面先贴上最终效果图,图1为初始化界面,图二为点击启动/停止之后的中间过渡状态,图三为启动成功后弹出的提示框 把动态gif图片嵌入到jpg背景图中?用Adobe ImageReady即可办到 ...
- Python3 IO
在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中 ...
- AJAX安全-Session做Token
个人思路,请大神看到了指点 个人理解token是防止扫号机或者恶意注册.恶意发表灌水,有些JS写的token算法,也会被抓出来被利用,个人感觉还是用会过期的Session做token更好,服务器存储, ...
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息:1.cin1 ...
- IOS中利用宏将RGB值转换为UIColor(转)
可以在pch文件中定义宏,这样整个项目就都可以用了! #define UIColorFromRGBValue(rgbValue) [UIColor colorWithRed:((float)((rgb ...
- An error occurred while collecting items to be installed session context was:(profile=DefaultProfile... 解决方案
遇到同样问题的小伙伴请:点击Eclipse上方工具栏中help --> Install new software... --> 看图 点击进红框的位置在打开的窗口中,将窗口右侧的Avail ...
- mysql查看表结构命令
mysql查看表结构命令 mysql查看表结构命令,如下: desc 表名;show columns from 表名;describe 表名;show create table 表名; use inf ...
- 【Http】Http权威指南
God Is Coder 2012-10-17 22:25 阅读:77 评论:0 <http权威指南>阅读笔记(十二) God Is Coder 2012-10-17 22:04 阅读 ...
- [转载]C#读写配置文件(XML文件)
.xml文件格式如下 [xhtml] view plaincopy <?xml version="1.0" encoding="utf-8"?> & ...
- Firefly官方教程之Netconnect使用文档
1.distributed说明该模块包含了服务端与客户端通信的一些处理方法,包括发送数据的封装,协议头的封装,tcp通信时进行分包,处理粘包问题.2.结构解析 LiberateFactory,协议工厂 ...