Waitin is used to write a simple automated login test.CodeImplement login testing for batch accounts.
The Code is as follows:
Using System;
Using System. Collections. Generic;
Using System. LINQ;
Using System. text;
Using Watin. core;
Namespace Leleapplication1
{
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");
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)
{< br> This . loginurl = loginurl;
This . loginsuccessforwaredurl = loginsuccessforwaredurl;
This . usernamefieldname = usernamefieldname;
This . passwordfieldname = passwordfieldname;
This . loginbuttonname = loginbuttonname;
}
Public VoidExecutetest (StringUsername,StringPassword,BoolLoginsuccess)
{
StringMSG =String. Format ("Username: {0}, password: {1}, expected login: {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 ();
BoolLoginissuccess = 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