批量账号的login测试功能实现 用WaitiN写了个简单的login自动化测试,能够使用少量的代码实现批量账号的login测试很简单的,代码如下: 复制代码 代码如下:using System; using System.Collections.Generic; using System.Linq; using System.Text; using WatiN.Core; namespace ConsoleApplication1 { class Program { [STAThread] static void Main(string[] args) { List Accounts = new List(); Accounts.Add(new LoginTester.LoginAccount() { UserName = "your user account", Password = "aaaaa", ShouldSuccess = false }); Accounts.Add(new LoginTester.LoginAccount() { UserName = "your user account", Password = "", ShouldSuccess = false }); Accounts.Add(new LoginTester.LoginAccount() { UserName = "your user account", Password = "your password", ShouldSuccess = true }); LoginTester tester = new LoginTester("http://passport.cnblogs.com/login.aspx", "http://home.cnblogs.com", "tbUserName", "tbPassword", "btnLogin"); tester.BrowserVisible = true; Accounts.ForEach(t=>tester.ExecuteTest(t.UserName, t.Password, t.ShouldSuccess)); Console.WriteLine("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"); Console.WriteLine("************Test Report Summary****************"); Console.WriteLine(tester.ReportSummary); } public class LoginTester { public class LoginAccount { public string UserName { get; set; } public string Password { get; set; } public bool ShouldSuccess { get; set; } } private string loginUrl = string.Empty; private string loginSuccessForwaredUrl = string.Empty; private string loginButtonName = string.Empty; private string userNameFieldName = string.Empty; private string passwordFieldName = string.Empty; public string ReportSummary { get; private set; } public bool BrowserVisible { get; set; } public LoginTester(string loginUrl, string loginSuccessForwaredUrl, string userNameFieldName, string passwordFieldName, string loginButtonName) { this.loginUrl = loginUrl; this.loginSuccessForwaredUrl = loginSuccessForwaredUrl; this.userNameFieldName = userNameFieldName; this.passwordFieldName = passwordFieldName; this.loginButtonName = loginButtonName; } public void ExecuteTest(string userName, string password, bool loginSuccess) { string msg = string.Format("用户名: {0}, 密码: {1}, 期望能否登录: {2}", userName, password, loginSuccess); using (IE browser = new IE(this.loginUrl)) { browser.Visible = this.BrowserVisible; browser.TextField(Find.ByName(this.userNameFieldName)).TypeText(userName); browser.TextField(Find.ByName(this.passwordFieldName)).TypeText(password); browser.Button(Find.ByName(this.loginButtonName)).Click(); bool loginIsSuccess = browser.Url.IndexOf(this.loginSuccessForwaredUrl, StringComparison.OrdinalIgnoreCase) >= 0; msg = string.Format("{0}\r\n {1}", msg, loginIsSuccess == loginSuccess ? "Successful" : "Failed"); ReportSummary += msg+"\r\n"; Console.WriteLine(msg); } } } }源代码下载