您的位置:首页 > 其它

使用NUnit进行并发测试

2008-03-06 14:24 495 查看
下面的代码将演示如何使用NUnit进行并发测试,启动多线程插入多个数据,并在插入完数据后删除数据


using System;


using System.Collections.Generic;


using System.Text;


using NUnit.Framework;


using WYEng.SQLServerDAL;


using System.Threading;


using System.Data;


using System.Data.SqlClient;




namespace WYEng.TestUnit




...{


[TestFixture]


public class ExamComputerInfo




...{


SQLServerDAL.ExamComputerInfo computerInfo;


WYEng.Model.ExamComputerInfo mCompuerInfo;


private int j = 0;


private int computerID = 0;


private string PARAM_COMPUTERID = "@ComputerID";


[SetUp]


public void CreateObject()




...{


computerInfo = new WYEng.SQLServerDAL.ExamComputerInfo();


mCompuerInfo = new WYEng.Model.ExamComputerInfo();


TestGetComputerID();


}




[TearDown]


public void DeleteObject()




...{


TestDeleteComputerInfo();


computerInfo = null;


mCompuerInfo = null;




}


private void TestGetComputerID()




...{


computerID = XPWY.DBUtility.DBHelperSQL.GetMaxID("ComputerID", "ExamComputerInfo");


}


private void TestDeleteComputerInfo()




...{


Console.WriteLine(computerID.ToString());


string strSql = "DELETE FROM ExamComputerInfo WHERE ComputerID>=@ComputerID";


SqlParameter pram = new SqlParameter(PARAM_COMPUTERID, SqlDbType.Int);


pram.Value = computerID;


XPWY.DBUtility.DBHelperSQL.ExecuteSql(strSql,pram);


}


[Test]


[Ignore("为了测试并发插入的问题,屏蔽该方法")]


public void GetComputerInfo()




...{


Thread[] threads = new Thread[1000];


for (int i = 0; i < 1000; i++)




...{


Thread t = new Thread(new ThreadStart(Func));


threads[i] = t;


}


for (int i = 0; i < 1000; i++)




...{


threads[i].Start();


}






}


private void Func()




...{


mCompuerInfo = computerInfo.GetComputerInfo(1);


Assert.AreEqual(mCompuerInfo.ComputerName, "YMF-XPWY");


}


[Test]


public void GetComputerInfoByMAC()




...{


mCompuerInfo = computerInfo.GetComputerInfoByMAC("00:1B:FC:64:6C:A3");


Assert.AreEqual(mCompuerInfo.ComputerName, "YMF-XPWY");//正常条件


mCompuerInfo = computerInfo.GetComputerInfoByMAC("00:sdfsdfsdf");


Assert.AreEqual(mCompuerInfo, null);//边界条件


}




[Test]


public void TestInsertCPInfoWhileMorePeoper()




...{


Thread[] threads = new Thread[1000];


for (int i = 0; i < 1000; i++)




...{


j++;


threads[i] = new Thread(new ThreadStart(TestInsertCPInfo));


threads[i].Start();


}


}


private void TestInsertCPInfo()




...{


mCompuerInfo.AudioDapater = j.ToString();


mCompuerInfo.BrowserInfo = j.ToString();


mCompuerInfo.ComputerName = "fw";


mCompuerInfo.EthernetAddress = "asdsad";


mCompuerInfo.ExamSeatNo = j;


mCompuerInfo.IpAddress = "192.168.0.1";


mCompuerInfo.IsTestPassed = true; ;


mCompuerInfo.NotPassedError = "yes";


mCompuerInfo.OSName = "OSName";


mCompuerInfo.OSVersion = "1.0.1";


computerInfo.InsertCPInfo(mCompuerInfo);


}


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: