.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);
View Code

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);
            }
        }
View Code

 

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[3] == "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[2]=="emptystring")
                {
                    ags = " ";
                }
                else
                {
                    ags = tokens[2];
                }

 

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");
        }

 

转载于:https://www.cnblogs.com/cloud-test/p/3517908.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebSocket接口的自动化测试可以通过使用自动化测试框架和工具来实现。在自动化测试中,可以使用一些技术和方法来模拟和发送WebSocket请求,并对返回的数据进行验证和断言。 首先,需要准备一个可靠的自动化测试框架,如Selenium或Cypress。这些框架提供了丰富的API和工具,可用于模拟用户行为和发送WebSocket请求。 其次,需要了解WebSocket的基本原理和协议。WebSocket是一种在单个TCP通信的协议,它基于HTTP协议,但是可以提供全双工的通信能力。了解WebSocket的工作原理和相关API是进行自动化测试的关键。 接下来,需要编写测试脚本来模拟WebSocket请求和验证返回的数据。可以使用编程语言(如Python或JavaScript)来编写测试脚本,通过调用自动化测试框架提供的API来发送WebSocket请求,并对返回的数据进行验证。 在测试脚本中,可以设置WebSocket的连接参数,如URL、请求头和请求体。使用框架提供的API发送WebSocket请求后,可以通过监听和处理WebSocket的事件来获取返回的数据,并进行断言和验证。 例如,可以发送一条消息到WebSocket接口,并验证返回的数据是否符合预期。也可以模拟多个用户同时连接到WebSocket接口,测试其并发性和性能。 总之,WebSocket接口的自动化测试需要使用合适的自动化测试框架和工具,了解WebSocket的工作原理和协议,编写测试脚本来模拟和验证WebSocket请求和返回的数据。这样可以提高测试效率和质量,确保WebSocket接口的稳定和可靠性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [自动化测试笔记.zip](https://download.csdn.net/download/qq_46175823/87447655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [websocket接口自动化集成pytest测试框架](https://blog.csdn.net/jiangjunsss/article/details/127531615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值