使用firefox外掛套件產生c#測試專案語法
1.找Firefox 套件selenium IDE 安裝,有些人在firefox broswer的右上角會出現selenium icon,但姐運氣不好沒出現,沒關係,在menu裡一樣可以找得到
2.利用selenium IDE 套件錄製步驟
包括開啟指定的url,登入後畫面UI的呈現
需注意的是在測試時多半是以html裡的id來取得element(有些element沒有id的,工具使用element xpath找畫面UI時很容易失敗),好驗證測試的結果,為此姐還特地讓UI的element補上了id
3.利用selenium IDE 套件執行一下剛剛錄製的步驟
(在左上有一個速度拖拉bar調到slow)
你會看到firefox在逐步執行你剛剛錄的動作,確認有沒有問題,有時候可能JS執行錯誤需要修正一下,也可以自己再insert new command,或是在selenium IDE套件開啟的狀態下,在執行網頁上找一個你想驗證的element,然後指著element按右鍵,在下面會有一個assertText id=@#$%^&*....的選項,selenium IDE套件會把你想要的element寫到步驟裡去
4.利用selenium IDE 套件匯出
其實我不太清楚Remote Control和WebDriver差在哪裡,因為在c#裡使用WebDriver所以我選這個,而且我只需要裡面webdriver的步驟而已,其他method並沒用到
還希望知道的朋友幫忙說明一下這之間的差別
這時候差不多完成.net測試專案的1/2.....
...但前面準備UI的測試腳本已經OK,撐一下!一鼓作氣一次完成!
5.在.net IDE介面裡,到Nut Get封裝管理員裡安裝套件selenium webdriver
6.下載geckodriver.exe放到bin目錄裡,selenium 套件靠它create web broswer instance
https://github.com/mozilla/geckodriver/releases
7.-->3秒鐘快速解釋測試專案裡的方法元素
在這裡 請容 姐 快速簡介一下關於測試專案裡的方法,以便於後面快速上手
一般來說測試專案裡都需要
// Arrange 建立物件(例如取資料用的物件)
// Act 執行(物件的執行方法)
// Assert (驗證的方法)
所以你的專案(測試目標)本身要設計寫的容易被測試(這需要時間和經驗的累積,沒關係慢慢來,再厲害的大神第一次也都是撞的滿頭包)
然後.net裡測試專案有很多attribute(我指的是method前上方第一行中括號那個)
我用到的有[TestClass][ClassInitialize][TestMethod][ClassCleanup()]
網路上我有查到TestInitialize ,TestCleanup但實際放到專案裡我能用的是上面4個
無論你程式method擺放位置
它在.net的測試總管裡執行順序永遠會是[TestClass]->[ClassInitialize]->[TestMethod]->[ClassCleanup()]
這樣你就可以在測試前insert一些測試資料,測試結束之後把資料刪除
7. Net IDE載入剛剛Firefox selenium IDE pluging錄製的步驟
剛剛用firefox的selenium IDE套件匯出的c#檔案,這時派上用場了
點開後找[Test]開頭的method,
driver.FindElement(By.Id("aLogin")).Click();
driver.FindElement(By.Id("idUserName")).Click();
driver.FindElement(By.Id("idPassword")).Click();...................
把步驟copy到你開測試專案裡的Test Method
8.你說沒有Method?好啦,我知道你要sample Code...
public class 測試web的類別名稱
{
private static IWebDriver driver; //提供一個web driver
private static StringBuilder verificationErrors;//記錄error用
private bool acceptNextAlert = true; //步驟是否允許下一步
[ClassInitialize]
public static void Initialize(TestContext testContext)
{
driver = new FirefoxDriver();
baseURL = "開啟web時指向的網址";
verificationErrors = new StringBuilder();;//記錄erro初始化
}
[ClassCleanup()]
public static void Cleanup()
{
try
{
driver.Quit();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
//Assert.AreEqual("", verificationErrors.ToString());
}
[TestMethod]
public void Web_Forestage_Club_31_Normal_Login_Authority()
{
//剛剛錄的步驟貼在這裡....
}
}
9.Net的測試總管裡找到你的測試專案,執行it
我第一次寫測試時還想說。。。奇怪,怎麼要執行它的時候跟我說這是類別庫無法直接起始
然後會議討論時提出來問有寫的同事,他說這你就要了解.net的測試了,它有他自己的測試方法,要學習去用它的測試總管
我如果寫到這就ending,不會的人大概看了會想扁人,就是不會才來看文章才會問
測試專案跟一般開發時寫web,console或winforn,exe不一樣,它編譯後的確是dll檔案
在測試->視窗->測試總管,開啟後,會看到你的測試專案在裡面,選取你的專案執行或偵測
End.
希望在code的路上有幫到需要的人.Good luck
沒有留言:
張貼留言