2016-08-12 85 views
0

數據提供程序的方法,我正在開發使用測試硒(webdriver的)的Java關鍵字驅動的框架。 我有一個函數庫類,其中i保持/存儲所有這些方法需要即enterValues在輸入框中上進行測試網站/ web應用中執行,點擊按鈕/水平,選擇下拉等 我們調用所有從我Driverscript/DriverEngine這些方法讀取的TestSuite格式(.xlsx)Excel文件(使用POI API),所有的測試用例都記錄在案。 的TestSuite練成具有特定的格式即 在第一片文件,其中的TestSuite所有測試用例使用他們的運行模式「Y」或「N」記錄。 從(第二)下一張片材起,各片材被命名爲類似於測試情況下的域名(在測試套件片)和它的測試步驟。在Testsuite.xlsx文件 測試用例格式,即我們的列名如何整合中硒的webdriver關鍵字驅動框架

一步步測試== ==說明==關鍵詞==對象== ProceedonfailFlag TESTDATA

如下所示各自的價值......

01 == enterusername == enterValue == UserNameInputBox ==Ý==用戶名(用戶從TestData.xlsx文件需要)。

現在,到這裏,這是偉大的工作......

在我的應用程序中,有多個用戶相關的庫存/對象添加到應用程序形式的功能。這些對象基於用戶的要求是隨機的。 這個特性可以通過使用TestNG的@dataProvider類實現來實現。我們可以通過分別創建TestNG dataProvider類來運行這樣的用例(多次執行相同的操作)。 但是,我們無法通過集成關鍵字文件(前面提到)來實現它。我們希望像關鍵字文件中的其他方法一樣調用此函數。我完全空白這種方法。請告訴我,如何將DataProvider方法集成到KeyWord框架中,並將其作爲java中的一個操作/關鍵字/方法從和在Excel文件中調用。

更多增強功能,

我的框架純粹是基於關鍵字的。我的測試套件記錄在第一張excel文件(帶有運行模式)和測試用例從sheet-2開始。一個Driverscript使用poi api讀取excel文件。 Driver Script檢查excel中的關鍵字(如文本框中的enterValues和clickButton方法),並從關鍵字java文件中調用相同的方法。這裏沒有問題。我的測試用例以連續的方式執行,即具有所需URL的TC1-Lauch瀏覽器。 TC2:通過提供名稱,dob,性別等信息創建報價對象,並驗證基於用戶數據生成的結果。現在,第三個測試用例是TC3:將用戶的多個依賴項添加到下一個表單中作爲註冊表單。多重依賴有共同的特點,如dob,性別等,我們必須手動添加。我可以使用DataProveder概念自動化第三個測試。我的TestData excel文件在excel中具有必填字段作爲頭部,即名稱,初始,dob,性別,關係(妻子,孩子,父母等)等等和一個文件,我已經應用了testNG數據提供者excel的二維數組data.This我可以作爲一個獨立的測試單獨執行,但我想知道,如何將這個測試集成到我的關鍵字框架中,以一次性運行所有測試。請幫我解決這個問題。我對這個主題沒有很深的概念性知識。所以請以可理解的格式提供解決方案。謝謝,Vivek

我很感謝你提前。 BestRegards, 維韋克

+0

首先,如果沒有數據提供者業務,則您正在使用關鍵字框架來驅動硒並僅將testng用於斷言目的。隨着數據提供者的東西,然後testng成爲硒繞過你的關鍵字框架的驅動程序。那是對的嗎? – Grasshopper

+0

是的......謝謝,我很抱歉,如果我不能清楚地解釋它。我的框架純粹是基於關鍵字的。我的測試套件記錄在第一張excel文件(帶有運行模式)和測試用例從sheet-2開始。一個Driverscript使用poi api讀取excel文件。 Driver Script檢查excel中的關鍵字(如文本框中的enterValues和clickButton方法),並從關鍵字java文件中調用相同的方法。這裏沒有問題。 –

回答

0
  1. 在第一頁,你有測試用例的名稱添加兩列。 「Y」表示多個數據測試用例。第二個將是包含數據的excel文件的名稱,即當前dataprovider正在使用的excel。

  2. 使用您的示例轉到您的Excel工作簿中的TC3工作表。重新使用您提到的原始標題並添加到它。

    01 == == enterusername == enterValue == UserNameInputBoxŸ== USERNAME 02 == == enterdob == enterValue == DOBInputBoxŸ== DOB 03 == == enterCreator == enterValue == CreatorInputBox Ÿ==維沙爾 ... ...

更改此提及的需要從目前的數據提供程序EXECL拿起如B等的數據,其中列

01==enterusername==enterValue==UserNameInputBox==Y==$$ColB$$ 
02==enterdob==enterValue==DOBInputBox==Y==$$ColC$$ 
03==enterCreator==enterValue==CreatorInputBox==Y==Vishal 
... 
... 

所以現在你已經映射username,dob等的值映射到TC3數據excel的列。如果您檢查第3步,您可以輸入在所有TC3多個條目中保持不變的值。我使用$$$$符號來區分正常數據和列映射數據。

  1. 現在您需要修改運行關鍵字的腳本。如果您遇到多個設置爲'Y'的測試用例,則需要現在從下一列中選取數據excel的名稱。解析集合中的數據excel表單中的數據或apache poi返回的數據。

  2. 使用集合的大小創建'for循環'或'while'來限制它。現在你所擁有的是每次循環迭代你有一個TC3的運行測試數據。現在您只需將用戶名,dob等的輸入數據映射到測試數據中的值即可。將它們發送到關鍵字方法,它應該逐個執行所有數據。

  3. 請確保在您的測試用例中使用多個數據,以確保您的測試在錯誤情況下正常運行。那就是如果他們錯誤了,他們應該回到下一組數據的正確屏幕。

您可以通過查看開源的Cucumber工具來避免您已經完成的所有工作。這是一個開箱即用的解決方案,它集成了Selenium以及您想要使用的任何其他DI容器。

希望這對你有用。

+0

謝謝先生。謝謝很多 –

+0

歡迎...如果它適合你,你能接受這個答案。 – Grasshopper

相關問題