ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ
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. (File.java:127)
Π² jxl.Workbook.getWorkbook (Workbook.java:221)
Π² jxl.Workbook.getWorkbook (Workbook.java: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 (ScenarioFactory.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>
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» Excel, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅?
Π€Π°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
<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>
ΠΠΈΡΡ Excel:
Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ Π»ΠΈΡΡ Excel. ΠΠΎ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π»ΠΈΡΡΠ° Excel, Π° ΠΈΠΌΡ Π»ΠΈΡΡΠ° - test.xls.
Π‘Π¦ΠΠΠΠ ΠΠ: ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ | | | | | |
- | - | - | - | - | - | -
ΠΠΠ’Π-ΠΠΠΠΠ«Π: {"ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅": "ΠΡΠΎΠ²Π΅ΡΠΈΡΡ", "Π³ΡΡΠΏΠΏΡ": [ΠΠ«Π "," Π Π΅Π³ΡΠ΅ΡΡΠΈΡ "]," Π°Π²ΡΠΎΡ ":" ΠΡΡΠ½ "}
| | | | | | | | |
| ΠΠ°Π½Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊ '$ {unix.command.ondot-status}' Π½Π° 'virtual.machine' | |
| ΠΠ°ΡΠ΅ΠΌ ondot-status Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ | | | | |
ΠΠΠΠΠ¦ | | | | | | | | |
Π€ΠΎΡΠΌΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄Π»Ρ Excel, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΡΡ ΠΈ ΡΠ°ΠΉΠ» Excel.
<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>
Π‘Π¦ΠΠΠΠ ΠΠ | SearchProduct | {"description": "ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ°", "groups": ["SMOKE"]}
- | - | -
launchApp | |
searchForProduct | ["Π ΡΠ±Π°ΡΠΊΠ°"] |
ΠΠΠΠΠ¦ | |
ΠΠ΄Π΅ΡΡ 1-ΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°Π³Π° (Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ), Π° 2-ΠΉ ΡΡΠΎΠ»Π±Π΅Ρ - ΡΠΏΠΈΡΠΊΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
Π ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
@QAFTestStep(description = "I search for product {0}")
public void searchForProduct(String product) {
//to-do
}
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠΎΡΠΌΠ°Ρ Excel, Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΡ. Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°?
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ | Π’Π΅ΡΡ | {"description": "ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ°", "groups": ["SMOKE"]}
- | - | -
Π·Π°ΠΏΡΡΡΠΈΡΡ | ["ΠΡΠΈΠ²Π΅Ρ"] |
ΠΠΠΠΠ¦ | |
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ½Π΅ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠ΄ΠΎΠ² :)
ΠΠ°ΡΠ°Π½Π΅Π΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ :)
ΠΠΎΡ ΠΎΠΆΠ΅, Π²Π°Ρ Excel Π½Π΅ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ xls.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΠΌΠΈΡ :) ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» :) ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π²ΠΎΠ΄ Π² ΡΠ°ΠΉΠ»Π΅ Excel, ΠΈ ΠΌΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π΄Π°Ρ Π² Π»ΠΈΡΡΠ΅, Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ.
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π³Π° Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π»ΠΈΡΡΠ° Excel, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ? :)
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π³Π° Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠΎ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ :) ΠΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ :) Π― ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π» ΡΡΠ΅Π½Π°ΡΠΈΠΉ bdd Π² ΡΠ°Π±Π»ΠΈΡΡ Excel :) ΠΈ ΠΎΠ½ ΠΏΡΠΎΡΠΈΡΠ°Π» Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· xml ΠΈ ΡΠ°ΠΉΠ»Π° ΡΠ²ΠΎΠΉΡΡΠ² :)
Happy :) Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ ΠΠΌΠΈΡ :)
ΠΡΠΈΠ²Π΅Ρ, ΠΠΌΠΈΡ,
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ JSONArray ΠΈΠ»ΠΈ JsonObject Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ExcelTestFactory.
ΠΠΈΠΆΠ΅ ΠΌΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²Π²ΠΎΠ΄Π°:
["ΠΈΠΌΡ ΡΠ·Π»Π°", ["Π°", "Π±", "Π²"]]
Π― Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠ°Π»ΠΈ Π²Π΅ΡΡ ΠΌΠΈΡ. QAF Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ Π² Π½Π΅ΠΌ Π·Π°ΠΏΡΡΠ°Ρ.
ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ :)
ΠΠ°ΡΠ°Π½Π΅Π΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΡΠ°ΠΉΠ»Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π‘ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ,
Π‘Π