このシナリオでは、すべての環境をデータプロバイダまたはそれ以外の方法で順番に繰り返していきたいと思っています。 LTIは以下の通り:私の添付Excelは1つの環境のためにTestNGでDataDrivenテストを使用して異なるEnvに対して@BeforeTestからURLを取得する方法
コードファイルを参照してください。注:クラス名を変更するだけで、他のすべての環境に対して同じコードが繰り返されます。私が直面しています
public class LTI_ENV {
public WebDriver driver;
private String sTestCaseName;
private int iTestCaseRow;
@BeforeTest
public void beforeMethod() throws Exception {
DOMConfigurator.configure("log4j.xml");
// Getting the Test Case name, as it will going to use in so many places
// The main use is to get the TestCase row from the Test Data Excel sheet
sTestCaseName = this.toString();
// From above method we get long test case name including package and class name etc.
// The below method will refine your test case name, exactly the name use have used
//Here I want to parameterize URL for each test ,is there any method that I can do ???
//My application have 3 module i.e for LTI –Env
//1)Account Management (need to check pass?fail)
//2)Prep and rating (need to check pass?fail)
//3)Risk Eval (need to check pass?fail)
sTestCaseName = Utils.getTestCaseName(this.toString());
Log.startTestCase(sTestCaseName);
ExcelUtils.setExcelFile(Constant.Path_TestData + Constant.File_TestData,"Sheet1");
iTestCaseRow = ExcelUtils.getRowContains(sTestCaseName,Constant.Col_TestCaseName);
driver = Utils.OpenBrowser(iTestCaseRow);
new BaseClass(driver);
}
@Test(priority=1)
public void AccountManagement() throws Exception {
try {
AccountCreation_Action.Execute(iTestCaseRow);
AM_SubmissionLOB_Action.Execute(iTestCaseRow);
AM_Classification_Action.Execute(iTestCaseRow);
//Verification_Action1.Execute();
if (BaseClass.bResult==true) {
ExcelUtils.setCellData("Pass", iTestCaseRow, Constant.Col_ResultStatus);
} else {
throw new Exception("Test Case Failed because of Verification");
}
} catch (Exception e) {
ExcelUtils.setCellData("Fail", iTestCaseRow, Constant.Col_ResultStatus);
Utils.takeScreenshot(driver, sTestCaseName);
// This will print the error log message
Log.error(e.getMessage());
// Again throwing the exception to fail the test completely in the TestNG results
throw (e);
}
}
@Test(priority=2,dependsOnMethods="AccountManagement")
public void PrepandRating() throws Exception {
try {
GenInfopage_Action.Execute(iTestCaseRow);
LocationSchedulePage_Actions.Execute(iTestCaseRow);
PolicyCoveragePage_Action.Execute(iTestCaseRow);
LocationInfo_Page_Action.Execute(iTestCaseRow);
LocationSchedulePage_Actions.Execute(iTestCaseRow);
AutoVehicleCoveragePage_Action.Execute(iTestCaseRow);
AutoPolicyCoveragePage_Action.Execute(iTestCaseRow);
PremiumSummaryPage_Action.Execute(iTestCaseRow);
//Verification_Action2.Execute();
if (BaseClass.bResult==true) {
ExcelUtils.setCellData("Pass", iTestCaseRow+2, Constant.Col_ResultStatus);
} else {
throw new Exception("Test Case Failed because of Verification");
}
} catch (Exception e) {
ExcelUtils[enter image description here][1].setCellData("Fail", iTestCaseRow+2, Constant.Col_ResultStatus);
Utils.takeScreenshot(driver, sTestCaseName);
Log.error(e.getMessage());
throw (e);
}
}
@Test(priority=3,dependsOnMethods="PrepandRating")
public void RiskEval() throws Exception {
//will update code for this module
}
// Its time to close the finish the test case
@AfterTest
public void afterTest() {
// Printing beautiful logs to end the test case
Log.endTestCase(sTestCaseName);
// Closing the driver
driver.quit(); //I need to close all the browser and then will launch again for other environment tests
}
}
課題は以下のとおりです。
は、上記のコードでは私が最初に私が唯一の環境を実行することができる午前したがって、ここで
Utils.getTestCaseName(this.toString());
を使用してExcelTestCaseName
欄にテストケース名を探しています一度に。私は私のテスト実行ステータスは/実行された場合のテストケースを実行したいは、そうでなければ、私はTestNGのを使用してこのシナリオを書くにはどうすればよい
をスキップ? @BeforeTest
のように、各テスト環境のURLを取得する必要があります。 http://toolsqa.wpengine.com/selenium-webdriver/selenium-automation-hybrid-framework
なぜあなたはより多くのアクセス可能なものにExcelファイルのうち、その構成を移動しませんか? – jonrsharpe
実際には、これは私の毎日のSmoketestセットです...もっと使いやすいように、私はこのチェックポイント(Run/Norun)をExcelファイルに保存したかったのです。 このようにして退縮を設定したいと思っています。 他にも解決策はありますか? –
また、すべてのテストケースのXMLファイルのパス(LTI.xml、PTE、.xml、LTQ.xml、INT.xml)をそれぞれExcelの行に保存してから、dataproviderを使用してRun状態とXMLパスをパラメータとして取得しました。 –