Batch account login test function implementation

  • 2020-05-17 05:18:56
  • OfStack

Wrote a simple login automation test with WaitiN, can use a small amount of code to achieve the batch account login test
The code is as follows:


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<LoginTester.LoginAccount> Accounts = new List<LoginTester.LoginAccount>(); 
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(" The user name : {0},  password : {1},  Expect to be able to log in : {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); 
} 
} 
} 
}

Source code download

Related articles: