zoukankan      html  css  js  c++  java
  • 通用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<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 { getset; }
                    public string Password { getset; }
                    public bool ShouldSuccess { getset; }
                }


                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 { getprivate set; }
                public bool BrowserVisible { getset; }

                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);
                    }
                }
            }
        }

    源代码下载 

  • 相关阅读:
    Servlet常用类
    Java库使用----xstream1.3.1
    字符串处理---统计每一行字符串当中的字符“u”个数
    读写锁
    求阶乘
    Fibonacci数列
    22.2-按照升序显示不重复的单词
    22.1-在散列集上进行集合操作
    完美世界-2015校园招聘-java服务器工程师-成都站
    运用jQuery写的验证表单
  • 原文地址:https://www.cnblogs.com/aarond/p/WaitiN.html
Copyright © 2011-2022 走看看