Visual Studio Unit Test 單元測試 通常拿來測試 業務邏輯層/資料存取層
等無關UI的開發過程中的單元測試
搭配Selenium 可以錄製或自行寫測試腳本
來驗證UI上的 資料是否如預期 顯示, 進入UAT後的測試好幫手
參考:
1.安裝Selenium
http://www.c-sharpcorner.com/UploadFile/093731/introduction-to-selenium-webdriver-with-C-Sharp-in-visual-studio/
2.使用說明
http://www.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations
安裝事項
1.使用nuget 搜尋selenium
安裝
Selenium WebDriver
Selenium Support
Selenium Chrome (or Selenium IEDriver or ...)
2.常用功能
1.設定option
//ChromeOption
var options = new ChromeOptionsWithPrefs();
options.prefs = new Dictionary<string, object>
{
{ "intl.accept_languages", "nl" }
};
driver = new ChromeDriver(options);
//IEOption
//起始網頁
//設定ie忽略保護模式問題
//避免錯誤:Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.
var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
2.開啟網址
driver.Navigate().GoToUrl("http://abc.com");
3.切換frame
//切換到左邊frame
driver.SwitchTo.Frame("left");
//點選主功能:管理
var manager=driver.FindElement(By.LinkText("管理"));
manager.Click();
//切換到原始parent frame
driver.SwitchTo.DefaultContent();
//點選子功能:會員管理
var member=driver.FindElement(By.LinkText("會員管理"));
member.Click();
4.尋找html element
//尋找id
var txtUserID = driver.FindElement(By.Id("txtUserID"));
txtUserID.Clear();
txtUserID.SendKey("my id");
//尋找password 可用id, xpath,tag,class
var txtPassword = driver.FindElement(By.xpath("//input[@class='passwordStyle']"));
txtPassword.Clear();
txtPassword.SendKey("my password ");
5.觸發Click 或事件
//呼叫Click
var btnLogin = driver.FindElement(By.Id("btnLogin"));
btnLogin.Click();
6.驗證UI結果
//讀取標籤內容
var lblMsg = driver.FindElement(By.Id("lblMsg"));
var msg=lblMsg.Text;
Assert.AreEqual("100筆",msg);