使用NUnit进行并发测试

Jewel ·
更新时间:2024-09-21
· 626 次阅读

下面的代码将演示如何使用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); } } }



并发 并发测试 nunit 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章