自动化测试

最近因为项目需要,所以之前不怎么常做的测试也轮到我头上来了,于是根据需要,就有了这么一个简单的功能:定时自动测试,顾名思义,每天固定的时间,测试网站,所以不可能说我每天设定个闹钟起来手动操作,当然是完全由计算机来自动定时执行。功能并不是很复杂,我做了个简单的Demo来留作备注。以下是测试类的代码:

UnitTest1.cs(单元测试的方法都写在这里面,我这里简单的举了一个登陆的例子)

using Microsoft.VisualStudio.TestTools.UnitTesting;
using WatiN.Core;

namespace TestProject
{
    /// <summary>
    /// Summary description for UnitTest1
    /// </summary>
    [TestClass]
    public partial class UnitTest1
    {
        [TestMethod]
        public void AutoTest()
        {
            string url = "http://localhost:2765/TestWeb/Default.aspx";//设定测试的网址
            var ie = new IE();//声明一个IE对象
            ie.GoTo(url);//打开网址
            ie.WaitForComplete();//等待自动填充表单
            ie.TextField(Find.ById("uName")).Value = "Eric";//自动填充用户名
            ie.TextField(Find.ById("uPwd")).Value = "Tang";//自动填充密码
            ie.Button(Find.ById("subBtn")).Click();

            ie.WaitForComplete();
            string result = ie.Span(Find.ById("loginResult")).InnerHtml;//获取登陆结果

            Assert.IsTrue(result == "true");//如果结果为true,则登陆成功!

            ie.Close();//最后测试完成之后关闭IE浏览器
        }
    }
}


自动填充截图如下:

然后,自动点击Submit按钮,跳转到登陆提示页,获取登陆结果

如下所示:


OK,如果span中的内容为“true”,那么就说明我们成功登陆了。到此,测试项目就完成了,接下来我们要把测试项目生成一下,然后写个简单的小脚本AutoTest.cmd,以便于每天能够自动执行。

AutoTest.cmd

@echo off
set DLLPath=F:\EricTang_SlefProject\DoNet\Test\TestProject-EBPP.dll
set resultPath=F:\EricTang_SlefProject\DoNet\Test\TestResults
rd F:\EricTang_SlefProject\DoNet\Test\TestResults /s/q
"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe" /testcontainer:"%DLLPath%" /test:AutoTest

pause

然后要将测试项目的bin\Debug\目录下的dll等文件都拷贝出来,放在一个文件夹中,例如F:\EricTang_SlefProject\DoNet\Test,同时,cmd脚本的DLLPath变量也要指定到测试项目的DLL文件,文件列表如下图所示:


双击其中的AutoTest.cmd脚本,就会立刻执行测试,测试完成,自动关闭浏览器,效果如下:


OK,这样儿一个可以直接执行测试项目的脚本就完成了,接下来的工作就不用废话了,只需要在计划任务中添加该脚本并指定定期执行的时间。或者也可以参考我的C#操作计划任务这篇文章,加以改进运用,同时,也可以在测试结束之后发送邮件,发送邮件的代码网上一抓一大把,在此不在赘述。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值