рдиреЛрдЯ: рдХреЗрд╡рд▓ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд░реНрдерд┐рдд рд╣реИ
1. Create a xls file under scenario
2.In the config file use the ExcelTestFactory class
3.Execute
рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
jxl.read.biff.BiffException: OLE рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде
jxl.read.biff.CompoundFile.(CompoundFile.java:116) рдкрд░
jxl.read.biff.File рдкрд░ (рдлрд╛рдЗрд▓.рдЬрд╛рд╡рд╛:резреирен)
jxl.Workbook.getWorkbook рдкрд░ (рд╡рд░реНрдХрдмреБрдХ.рдЬрд╛рд╡рд╛:реиреирез)
jxl.Workbook.getWorkbook рдкрд░ (рд╡рд░реНрдХрдмреБрдХ.рдЬрд╛рд╡рд╛:198)
com.qmetry.qaf.automation.step.client.excel.ExcelScenarioFileParser.parseFile(ExcelScenarioFileParser.java:46) рдкрд░
com.qmetry.qaf.automation.step.client.excel.ExcelScenarioFileParser.parse(ExcelScenarioFileParser.java:60) рдкрд░
com.qmetry.qaf.automation.step.client.ScenarioFactory.process (рдкрд░рд┐рджреГрд╢реНрдпFactory.java:110) рдкрд░
com.qmetry.qaf.automation.step.client.ScenarioFactory.getTestsFromFile(ScenarioFactory.java:82) рдкрд░
sun.reflect.NativeMethodAccessorImpl.invoke0 (рдореВрд▓ рд╡рд┐рдзрд┐) рдкрд░
sun.reflect.NativeMethodAccessorImpl.invoke (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
sun.reflect.DelegatingMethodAccessorImpl.invoke (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
java.lang.reflect.Method.invoke (рдЕрдЬреНрдЮрд╛рдд рд╕реНрд░реЛрдд) рдкрд░
org.testng.internal.FactoryMethod.invoke (FactoryMethod.java:90) рдкрд░
org.testng.internal.TestNGClassFinder рдкрд░ред (TestNGClassFinder.java:150)
org.testng.TestRunner.initMethods (TestRunner.java:451) рдкрд░
org.testng.TestRunner.init рдкрд░ (TestRunner.java:270)
org.testng.TestRunner.init рдкрд░ (TestRunner.java:240)
org.testng.TestRunner.(TestRunner.java:192) рдкрд░
org.testng.remote.support.RemoteTestNG6_9_10$1.newTestRunner(RemoteTestNG6_9_10.java:29) рдкрд░
org.testng.remote.support.RemoteTestNG6_9_10$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_9_10.java:65) рдкрд░
org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:594) рдкрд░
org.testng.SuiteRunner.init рдкрд░ (SuiteRunner.java:168)
org.testng.SuiteRunner рдкрд░ред(SuiteRunner.java:117)
org.testng.TestNG.createSuiteRunner рдкрд░ (TestNG.java:1319)
org.testng.TestNG.createSuiteRunners рдкрд░ (TestNG.java:1306)
org.testng.TestNG.runSuitesLocally рдкрд░ (TestNG.java:1160)
org.testng.TestNG.run рдкрд░ (TestNG.java:1064)
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114) рдкрд░
org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:251) рдкрд░
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77) рдкрд░
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓:
</classes>
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓:
<test name="Test" enabled="true">
<parameter name="scenario.file.loc" value="./scenarios/Platform_Automation/test.xls"></parameter>
<classes>
<class name="com.qmetry.qaf.automation.step.client.excel.ExcelTestFactory" />
</classes>
</test>
рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ:
рдореИрдВ рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдБред рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИ рдФрд░ рд╢реАрдЯ рдХрд╛ рдирд╛рдо test.xls рд╣реИред
рдкрд░рд┐рджреГрд╢реНрдп: рдмреИрдЪрдкреНрд░реЛрд╕реЗрд╕рд░ | | | | | |
-- | -- | -- | -- | -- | -- | --
рдореЗрдЯрд╛-рдбреЗрдЯрд╛: {"рд╡рд┐рд╡рд░рдг": "рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ", "рд╕рдореВрд╣": [рд╕реНрдореЛрдХ", "рд░рд┐рдЧреНрд░реЗрд╢рди"], "рд▓реЗрдЦрдХ": "рдЕрд░реБрдг"}
| | | | | | | | |
| 'рд╡рд░реНрдЪреБрдЕрд▓.рдорд╢реАрди' рдкрд░ '${unix.command.ondot-status}' рдЪрд▓рд╛рдП рдЧрдП | |
| рдлрд┐рд░ рд╕рдХреНрд░рд┐рдп рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП ondot-status | | | | |
рдЕрдВрдд | | | | | | | | |
рдПрдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдкрдиреЗ рдЬреЛ рдкреНрд░рд╛рд░реВрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЧрд▓рдд рдкреНрд░рд╛рд░реВрдк рд╣реИред
рдиреАрдЪреЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
<test name="Test" enabled="true">
<parameter name="scenario.file.loc" value="./scenarios/test.xls"></parameter>
<classes>
<class name="com.qmetry.qaf.automation.step.client.excel.ExcelTestFactory" />
</classes>
</test>
рдкрд░рд┐рджреГрд╢реНрдп | рдЦреЛрдЬ рдЙрддреНрдкрд╛рдж | {"рд╡рд┐рд╡рд░рдг": "рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрд╛рдж рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ", "рд╕рдореВрд╣": ["рд╕реНрдореЛрдХ"]}
-- | -- | --
рд▓реЙрдиреНрдЪрдРрдк | |
рд╕рд░реНрдЪрдлреЙрд░рдкреНрд░реЛрдбрдХреНрдЯ | ["рд╢рд░реНрдЯ"] |
рдЕрдВрдд | |
рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдХреЙрд▓рдо рд╕реНрдЯреЗрдкрдирд╛рдо (рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рдХреЙрд▓рдо рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред
рдФрд░ рдЪрд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ
@QAFTestStep(description = "I search for product {0}")
public void searchForProduct(String product) {
//to-do
}
рдореИрдВрдиреЗ рдПрдХреНрд╕реЗрд▓ рдкреНрд░рд╛рд░реВрдк рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ?
рдкрд░рд┐рджреГрд╢реНрдп | рдЯреЗрд╕реНрдЯ | {"рд╡рд┐рд╡рд░рдг": "рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЛрдЬ рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрд╛рдж рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ", "рд╕рдореВрд╣": ["рд╕реНрдореЛрдХ"]}
-- | -- | --
рднрд╛рдЧреЛ | ["рдирдорд╕реНрдХрд╛рд░"] |
рдЕрдВрдд | |
рд╕рд╛рде рд╣реА, рдЕрдЧрд░ рдореИрдВ рдПрдХрд╛рдзрд┐рдХ рдЗрдирдкреБрдЯ рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП :)
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж :)
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдПрдХреНрд╕реЗрд▓ рдЙрдЪрд┐рдд xls рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж рдЕрдорд┐рдд :) рд╡рд╣ рд╕рд╣реА рдерд╛ред рдореИрдВ рджреВрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ :) рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рд╕рд╛рде рд╣реА, рдореИрдВ рдПрдХреНрд╕реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рд╡рд┐рдзрд┐ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬреЛ рдЗрдирдкреБрдЯ рдореИрдВ рд╢реАрдЯ рдореЗрдВ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдЙрдкрд░реЛрдХреНрдд рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рдХреЗ рд▓рд┐рдП рдЪрд░рдг рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? :)
рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЪрд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдзрдиреНрдпрд╡рд╛рдж :) рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ :) рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХреНрд╕реЗрд▓ рд╢реАрдЯ рдореЗрдВ рдмреАрдбреАрдбреА рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реВрдВ :) рдФрд░ рдпрд╣ рдПрдХреНрд╕рдПрдордПрд▓ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ :)
рд╣реИрдкреНрдкреА :) рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЕрдорд┐рдд :)
рд╣рд╛рдп рдЕрдорд┐рдд,
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред рдореБрдЭреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ JSONArray рдпрд╛ JsonObject рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рдПрдХреНрд╕реЗрд▓рдЯреЗрд╕реНрдЯ рдлреИрдХреНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдиреАрдЪреЗ рдореЗрд░рд╛ рдирдореВрдирд╛ рдЗрдирдкреБрдЯ рд╣реИ:
["рдиреЛрдбрдирд╛рдо", ["рдП", "рдмреА", "рд╕реА"]]
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдкрдврд╝реЗред рдХреНрдпреВрдПрдПрдл рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ :)
рдорджрдж рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рджред
рд╕рд╛рде рд╣реА, рдореИрдВ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рдмрд╛рд╣рд░реА рдЯреАрдо рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИред
рд╕рдВрд╡реЗрджрдирд╛рдкреВрд░реНрдг рд╕рдВрдмрдВрдз,
рд╕реА.рдХреЗ.